22 namespace ThermoHydroMechanics
24 template <
typename BMatricesType,
typename ShapeMatrixTypeDisplacement,
25 typename ShapeMatricesTypePressure,
int DisplacementDim,
int NPoints>
36 static const int kelvin_vector_size =
39 eps.setZero(kelvin_vector_size);
40 eps_prev.setZero(kelvin_vector_size);
41 eps_m.setZero(kelvin_vector_size);
48 typename ShapeMatrixTypeDisplacement::template MatrixType<
49 DisplacementDim, NPoints * DisplacementDim>
55 typename ShapeMatrixTypeDisplacement::NodalRowVectorType
N_u;
56 typename ShapeMatrixTypeDisplacement::GlobalDimNodalMatrixType
dNdx_u;
58 typename ShapeMatricesTypePressure::NodalRowVectorType
N_p;
59 typename ShapeMatricesTypePressure::GlobalDimNodalMatrixType
dNdx_p;
63 DisplacementDim>::MaterialStateVariables>
80 double const temperature_prev)
83 variable_array_prev[
static_cast<int>(
91 variable_array_prev[
static_cast<int>(
93 .emplace<double>(temperature_prev);
96 variable_array_prev, variable_array, t, x_position, dt,
100 OGS_FATAL(
"Computation of local constitutive relation failed.");
std::array< VariableType, static_cast< int >(Variable::number_of_variables)> VariableArray
Eigen::Matrix< double, kelvin_vector_dimensions(DisplacementDim), 1, Eigen::ColMajor > KelvinVectorType
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.
Eigen::Matrix< double, kelvin_vector_dimensions(DisplacementDim), kelvin_vector_dimensions(DisplacementDim), Eigen::RowMajor > KelvinMatrixType
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
ShapeMatrixTypeDisplacement::template MatrixType< DisplacementDim, NPoints *DisplacementDim > N_u_op
ShapeMatricesTypePressure::GlobalDimNodalMatrixType dNdx_p
BMatricesType::KelvinVectorType eps_m
BMatricesType::KelvinVectorType eps_m_prev
BMatricesType::KelvinMatrixType updateConstitutiveRelation(MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x_position, double const dt, double const temperature_prev)
ShapeMatricesTypePressure::NodalRowVectorType N_p
std::unique_ptr< typename MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables > material_state_variables
BMatricesType::KelvinVectorType sigma_eff
MaterialLib::Solids::MechanicsBase< DisplacementDim > const & solid_material
ShapeMatrixTypeDisplacement::NodalRowVectorType N_u
BMatricesType::KelvinVectorType eps
ShapeMatrixTypeDisplacement::GlobalDimNodalMatrixType dNdx_u
double integration_weight
IntegrationPointData(MaterialLib::Solids::MechanicsBase< DisplacementDim > const &solid_material)
BMatricesType::KelvinVectorType sigma_eff_prev
BMatricesType::KelvinVectorType eps_prev