19template <
int DisplacementDim>
 
   36        double lambda(
double const t, 
X const& x)
 const 
 
   44        double mu(
double const t, 
X const& x)
 const 
 
 
   71        : 
_mp(std::move(material_properties))
 
 
   85        return eps.dot(sigma) / 2;
 
 
   89        std::tuple<typename MechanicsBase<DisplacementDim>::KelvinVector,
 
   91                       DisplacementDim>::MaterialStateVariables>,
 
   99            material_state_variables) 
const override;
 
  103                                  double const T) 
const;
 
 
  123template <
int DisplacementDim>
 
  126                        double const shear_modulus)
 
  131    KelvinMatrix tangentStiffness = KelvinMatrix::Zero();
 
  132    tangentStiffness.template topLeftCorner<3, 3>().setConstant(
 
  133        first_lame_parameter);
 
  134    tangentStiffness.noalias() += 2 * shear_modulus * KelvinMatrix::Identity();
 
  135    return tangentStiffness;
 
 
Variables specific to the material model.
 
P const  & _youngs_modulus
 
MaterialProperties(P const &youngs_modulus, P const &poissons_ratio)
 
double bulk_modulus(double const t, X const &x) const
the bulk modulus.
 
double mu(double const t, X const &x) const
Lamé's second parameter, the shear modulus.
 
double lambda(double const t, X const &x) const
Lamé's first parameter.
 
P const  & _poissons_ratio
 
std::optional< std::tuple< typename MechanicsBase< DisplacementDim >::KelvinVector, std::unique_ptr< typename MechanicsBase< DisplacementDim >::MaterialStateVariables >, typename MechanicsBase< DisplacementDim >::KelvinMatrix > > integrateStress(MaterialPropertyLib::VariableArray const &variable_array_prev, MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x, double const, typename MechanicsBase< DisplacementDim >::MaterialStateVariables const &material_state_variables) const override
 
double computeFreeEnergyDensity(double const, ParameterLib::SpatialPosition const &, double const, KelvinVector const &eps, KelvinVector const &sigma, typename MechanicsBase< DisplacementDim >::MaterialStateVariables const &) const override
 
double getBulkModulus(double const t, ParameterLib::SpatialPosition const &x, KelvinMatrix const *const) const override
 
LinearElasticIsotropic(MaterialProperties material_properties)
 
MathLib::KelvinVector::KelvinVectorType< DisplacementDim > KelvinVector
 
KelvinMatrix getElasticTensor(double const t, ParameterLib::SpatialPosition const &x, double const T) const
 
MaterialProperties getMaterialProperties() const
 
static int const KelvinVectorSize
 
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > KelvinMatrix
 
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > elasticTangentStiffness(double const first_lame_parameter, double const shear_modulus)
 
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.
 
Eigen::Matrix< double, kelvin_vector_dimensions(DisplacementDim), 1, Eigen::ColMajor > KelvinVectorType
 
Eigen::Matrix< double, kelvin_vector_dimensions(DisplacementDim), kelvin_vector_dimensions(DisplacementDim), Eigen::RowMajor > KelvinMatrixType
 
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > KelvinMatrix