Isotropic linear elasticity¶
Overview¶
This interface represents an isotropic linear elastic model. In Mandel notation the stiffness tensor is
![\left[\begin{array}{cccccc}
C_{1111} & C_{1122} & C_{1122} & 0 & 0 & 0\\
C_{1122} & C_{1111} & C_{1122} & 0 & 0 & 0\\
C_{1122} & C_{1122} & C_{1111} & 0 & 0 & 0\\
0 & 0 & 0 & 2C_{1212} & 0 & 0\\
0 & 0 & 0 & 0 & 2C_{1212} & 0\\
0 & 0 & 0 & 0 & 0 & 2C_{1212}
\end{array}\right].](_images/math/321afa6ecedf2395b08f2d2e6da56e4923e6f76d.png)
In NEML
,
, and
are determined
by two scalar elasticity constants, some combination of the Young’s modulus
, the Poisson’s ratio
, the shear modulus
,
and the bulk modulus:math:K.
The input to this interfaces is the temperature
.
Internally the object first converts the provide constants to the bulk and shear
modulus and then constructs the stiffness tensor as

The compliance tensor is the matrix inverse of the stiffness tensor in Mandel notation. However, the implementation uses an analytic formula based on the scalar elastic constants to improve performance. Simple formulas link the bulk and shear moduli to the other scalar elastic constants.
Parameters¶
The user provides two modulus values m1 and m2 and two strings
defining which constants are being provided, m1_type and m2_type.
Valid moduli types are "shear", "bulk", "youngs", and
"poissons".
The implementation checks to ensure the user provides valid moduli types
and that they provided two unique moduli.
Any combination of two scalar elastic constants fully defines the isotropic
elasticity tensor
Class description¶
-
class IsotropicLinearElasticModel : public neml::LinearElasticModel¶
Isotropic shear modulus generating properties from shear and bulk models.
Public Functions
-
IsotropicLinearElasticModel(ParameterSet ¶ms)¶
See detailed documentation for how to initialize with elastic constants.
-
virtual void C(double T, double *const Cv) const¶
Implement the stiffness tensor.
-
virtual void S(double T, double *const Sv) const¶
Implement the compliance tensor.
-
virtual double E(double T) const¶
The Young’s modulus.
-
virtual double nu(double T) const¶
Poisson’s ratio.
-
virtual double K(double T) const¶
The bulk modulus.
Public Static Functions
-
static std::string type()¶
The string type for the object system.
-
static std::unique_ptr<NEMLObject> initialize(ParameterSet ¶ms)¶
Setup default parameters for the object system.
-
static ParameterSet parameters()¶
Initialize from a parameter set.
-
IsotropicLinearElasticModel(ParameterSet ¶ms)¶