23namespace RichardsMechanics
25template <
typename BMatricesType,
typename ShapeMatrixTypeDisplacement,
26 typename ShapeMatricesTypePressure,
int DisplacementDim,
int NPoints>
29 typename ShapeMatrixTypeDisplacement::NodalRowVectorType
N_u;
30 typename ShapeMatrixTypeDisplacement::GlobalDimNodalMatrixType
dNdx_u;
32 typename ShapeMatricesTypePressure::NodalRowVectorType
N_p;
33 typename ShapeMatricesTypePressure::GlobalDimNodalMatrixType
dNdx_p;
37 MathLib::KelvinVector::
42 double const temperature,
46 MaterialStateVariables const& material_state_variables)
55 variable_array.
stress.emplace<
KV>(KV::Zero());
59 variable_array_prev.
stress.emplace<
KV>(KV::Zero());
64 variable_array_prev, variable_array, t, x_position, dt,
65 material_state_variables);
69 OGS_FATAL(
"Computation of elastic tangent stiffness failed.");
73 std::move(std::get<2>(*solution));
83 double const temperature,
87 DisplacementDim>>
const& sigma_eff_prev,
89 DisplacementDim>
const&
92 DisplacementDim>>
const& eps_m_prev,
96 DisplacementDim>::MaterialStateVariables>& material_state_variables)
99 variable_array_prev.
stress = sigma_eff_prev->sigma_eff;
106 variable_array_prev, variable_array, t, x_position, dt,
107 *material_state_variables);
111 OGS_FATAL(
"Computation of local constitutive relation failed.");
115 std::tie(sigma_eff.
sigma_eff, material_state_variables, C) =
116 std::move(*solution);
KelvinVector mechanical_strain
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
virtual std::optional< std::tuple< KelvinVector, std::unique_ptr< MaterialStateVariables >, KelvinMatrix > > integrateStress(MaterialPropertyLib::VariableArray const &variable_array_prev, MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x, double const dt, MaterialStateVariables const &material_state_variables) const =0
MathLib::KelvinVector::KelvinVectorType< DisplacementDim > sigma_eff
Represents a previous state of type T.
ShapeMatrixTypeDisplacement::NodalRowVectorType N_u
ShapeMatricesTypePressure::GlobalDimNodalMatrixType dNdx_p
ShapeMatrixTypeDisplacement::GlobalDimNodalMatrixType dNdx_u
ShapeMatricesTypePressure::NodalRowVectorType N_p
static BMatricesType::KelvinMatrixType updateConstitutiveRelation(MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x_position, double const dt, double const temperature, ProcessLib::ConstitutiveRelations::EffectiveStressData< DisplacementDim > &sigma_eff, PrevState< ProcessLib::ConstitutiveRelations::EffectiveStressData< DisplacementDim > > const &sigma_eff_prev, ProcessLib::ConstitutiveRelations::MechanicalStrainData< DisplacementDim > const &, PrevState< ProcessLib::ConstitutiveRelations::MechanicalStrainData< DisplacementDim > > const &eps_m_prev, MaterialLib::Solids::MechanicsBase< DisplacementDim > const &solid_material, std::unique_ptr< typename MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables > &material_state_variables)
static MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > computeElasticTangentStiffness(double const t, ParameterLib::SpatialPosition const &x_position, double const dt, double const temperature, MaterialLib::Solids::MechanicsBase< DisplacementDim > const &solid_material, typename MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables const &material_state_variables)
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
double integration_weight