13template <
int DisplacementDim>
30 double lambda(
double const t,
X const& x)
const
38 double mu(
double const t,
X const& x)
const
67 :
_mp(std::move(material_properties)),
_strength(std::move(strength))
81 return eps.dot(sigma) / 2;
85 std::tuple<typename MechanicsBase<DisplacementDim>::KelvinVector,
87 DisplacementDim>::MaterialStateVariables>,
95 material_state_variables)
const override;
99 double const T)
const;
107 return _mp.bulk_modulus(t, x);
Variables specific to the material model.
MaterialProperties(P const &youngs_modulus, P const &poissons_ratio)
P const & _poissons_ratio
double lambda(double const t, X const &x) const
Lamé's first parameter.
double mu(double const t, X const &x) const
Lamé's second parameter, the shear modulus.
P const & _youngs_modulus
double bulk_modulus(double const t, X const &x) const
the bulk modulus.
ParameterLib::Parameter< double > P
ParameterLib::SpatialPosition X
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > KelvinMatrix
MathLib::KelvinVector::KelvinVectorType< DisplacementDim > KelvinVector
KelvinMatrix getElasticTensor(double const t, ParameterLib::SpatialPosition const &x, double const T) const
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
LinearElasticIsotropicSoftening(MaterialProperties material_properties, P const &strength)
MaterialProperties getMaterialProperties() const
static int const KelvinVectorSize
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
ParameterLib::Parameter< double > P
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