Elasticity models

Overview

Currently, NEML only has small strain linear elasticity models. Such models implement the LinearElasticModel interface, defined as:

\mathbf{\mathfrak{C}}, \mathbf{\mathfrak{S}}, E, \nu, \mu, K \leftarrow
\mathcal{E}\left(T\right)

where \mathbf{\mathfrak{C}} is the stiffness tensor, \mathbf{\mathfrak{S}} is the compliance tensor, E is the Young’s modulus, \nu is the Poisson’s ratio, \mu is the shear modulus, and K is the bulk modulus. The material model integration algorithms use the stiffness and compliance directly. The interface returns the scalar elastic properties for use in calculating material properties, for example the shear modulus is used in calculating normalized activation energy for the Regime switching model.

Implementations

Class description

class LinearElasticModel : public neml::NEMLObject

Interface of all linear elastic models.

Subclassed by neml::CubicLinearElasticModel, neml::IsotropicLinearElasticModel, neml::TransverseIsotropicLinearElasticModel

Public Functions

LinearElasticModel(ParameterSet &params)
virtual void C(double T, double *const Cv) const = 0

The stiffness tensor, in Mandel notation.

virtual void S(double T, double *const Sv) const = 0

The compliance tensor, in Mandel notation.

SymSymR4 C(double T) const

The stiffness tensor in a tensor object.

SymSymR4 S(double T) const

The compliance tensor in a tensor object.

SymSymR4 C(double T, const Orientation &Q) const

The rotated stiffness tensor in a tensor object.

SymSymR4 S(double T, const Orientation &Q) const

The rotated compliance tensor in a tensor object.

virtual double G(double T) const

An effective shear modulus.

virtual double G(double T, const Orientation &Q, const Vector &b, const Vector &n) const