OGS
ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints > Struct Template Referencefinal

Detailed Description

template<typename BMatricesType, typename ShapeMatrixTypeDisplacement, typename ShapeMatricesTypePressure, int DisplacementDim, int NPoints>
struct ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >

Definition at line 27 of file IntegrationPointData.h.

#include <IntegrationPointData.h>

Public Member Functions

 IntegrationPointData (MaterialLib::Solids::MechanicsBase< DisplacementDim > const &solid_material)
 
void pushBackState ()
 
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > computeElasticTangentStiffness (double const t, ParameterLib::SpatialPosition const &x_position, double const dt, double const temperature)
 
BMatricesType::KelvinMatrixType updateConstitutiveRelation (MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x_position, double const dt, double const temperature_prev)
 
BMatricesType::KelvinMatrixType updateConstitutiveRelationIce (MaterialLib::Solids::MechanicsBase< DisplacementDim > const &ice_constitutive_relation, MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x_position, double const dt, double const temperature_prev)
 

Public Attributes

BMatricesType::KelvinVectorType sigma_eff
 
BMatricesType::KelvinVectorType sigma_eff_prev
 
BMatricesType::KelvinVectorType eps
 
BMatricesType::KelvinVectorType eps0
 
BMatricesType::KelvinVectorType eps0_prev
 
BMatricesType::KelvinVectorType eps_m
 
BMatricesType::KelvinVectorType eps_m_prev
 
BMatricesType::KelvinVectorType sigma_eff_ice
 
BMatricesType::KelvinVectorType sigma_eff_ice_prev
 
BMatricesType::KelvinVectorType eps_m_ice
 
BMatricesType::KelvinVectorType eps_m_ice_prev
 
ShapeMatrixTypeDisplacement::NodalRowVectorType N_u
 
ShapeMatrixTypeDisplacement::GlobalDimNodalMatrixType dNdx_u
 
ShapeMatricesTypePressure::NodalRowVectorType N
 
ShapeMatricesTypePressure::GlobalDimNodalMatrixType dNdx
 
MaterialLib::Solids::MechanicsBase< DisplacementDim > const & solid_material
 
std::unique_ptr< typename MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables > material_state_variables
 
double phi_fr = std::numeric_limits<double>::quiet_NaN()
 
double phi_fr_prev = std::numeric_limits<double>::quiet_NaN()
 
double integration_weight
 
double porosity
 
 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
 

Constructor & Destructor Documentation

◆ IntegrationPointData()

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::IntegrationPointData ( MaterialLib::Solids::MechanicsBase< DisplacementDim > const & solid_material)
inlineexplicit

Definition at line 29 of file IntegrationPointData.h.

34 solid_material.createMaterialStateVariables())
35 {
36 // Initialize current time step values
37 static const int kelvin_vector_size =
39 sigma_eff.setZero(kelvin_vector_size);
40 sigma_eff_ice.setZero(kelvin_vector_size);
41 eps.setZero(kelvin_vector_size);
42 eps0.setZero(kelvin_vector_size);
43 eps0_prev.setZero(kelvin_vector_size);
44 eps_m.setZero(kelvin_vector_size);
45 eps_m_prev.resize(kelvin_vector_size);
46 eps_m_ice.setZero(kelvin_vector_size);
47 eps_m_ice_prev.resize(kelvin_vector_size);
48
49 // Previous time step values are not initialized and are set later.
50 sigma_eff_prev.resize(kelvin_vector_size);
51 sigma_eff_ice_prev.resize(kelvin_vector_size);
52 }
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.
std::unique_ptr< typename MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables > material_state_variables
MaterialLib::Solids::MechanicsBase< DisplacementDim > const & solid_material

References ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps0, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps0_prev, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps_m, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps_m_ice, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps_m_ice_prev, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps_m_prev, MathLib::KelvinVector::kelvin_vector_dimensions(), ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff_ice, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff_ice_prev, and ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff_prev.

Member Function Documentation

◆ computeElasticTangentStiffness()

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::computeElasticTangentStiffness ( double const t,
ParameterLib::SpatialPosition const & x_position,
double const dt,
double const temperature )
inline

Definition at line 90 of file IntegrationPointData.h.

95 {
96 namespace MPL = MaterialPropertyLib;
97
98 MPL::VariableArray variable_array;
99 MPL::VariableArray variable_array_prev;
100
102
103 variable_array.stress.emplace<KV>(KV::Zero());
104 variable_array.mechanical_strain.emplace<KV>(KV::Zero());
105 variable_array.temperature = temperature;
106
107 variable_array_prev.stress.emplace<KV>(KV::Zero());
108 variable_array_prev.mechanical_strain.emplace<KV>(KV::Zero());
109 variable_array_prev.temperature = temperature;
110
111 auto&& solution = solid_material.integrateStress(
112 variable_array_prev, variable_array, t, x_position, dt,
114
115 if (!solution)
116 {
117 OGS_FATAL("Computation of elastic tangent stiffness failed.");
118 }
119
121 std::move(std::get<2>(*solution));
122
123 return C;
124 }
#define OGS_FATAL(...)
Definition Error.h:26
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

References ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::material_state_variables, MaterialPropertyLib::VariableArray::mechanical_strain, OGS_FATAL, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::solid_material, MaterialPropertyLib::VariableArray::stress, and MaterialPropertyLib::VariableArray::temperature.

Referenced by ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::updateConstitutiveRelations().

◆ pushBackState()

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
void ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::pushBackState ( )
inline

Definition at line 79 of file IntegrationPointData.h.

References ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps0, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps0_prev, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps_m, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps_m_ice, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps_m_ice_prev, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps_m_prev, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::material_state_variables, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff_ice, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff_ice_prev, and ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff_prev.

◆ updateConstitutiveRelation()

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
BMatricesType::KelvinMatrixType ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::updateConstitutiveRelation ( MaterialPropertyLib::VariableArray const & variable_array,
double const t,
ParameterLib::SpatialPosition const & x_position,
double const dt,
double const temperature_prev )
inline

Definition at line 126 of file IntegrationPointData.h.

132 {
133 MaterialPropertyLib::VariableArray variable_array_prev;
134 variable_array_prev.stress
137 variable_array_prev.mechanical_strain
139 eps_m_prev);
140 variable_array_prev.temperature = temperature_prev;
141
142 auto&& solution = solid_material.integrateStress(
143 variable_array_prev, variable_array, t, x_position, dt,
145
146 if (!solution)
147 OGS_FATAL("Computation of local constitutive relation failed.");
148
150 std::tie(sigma_eff, material_state_variables, C) = std::move(*solution);
151
152 return C;
153 }

References ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps_m_prev, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::material_state_variables, MaterialPropertyLib::VariableArray::mechanical_strain, OGS_FATAL, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff_prev, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::solid_material, MaterialPropertyLib::VariableArray::stress, and MaterialPropertyLib::VariableArray::temperature.

Referenced by ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::updateConstitutiveRelations().

◆ updateConstitutiveRelationIce()

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
BMatricesType::KelvinMatrixType ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::updateConstitutiveRelationIce ( MaterialLib::Solids::MechanicsBase< DisplacementDim > const & ice_constitutive_relation,
MaterialPropertyLib::VariableArray const & variable_array,
double const t,
ParameterLib::SpatialPosition const & x_position,
double const dt,
double const temperature_prev )
inline

Definition at line 155 of file IntegrationPointData.h.

163 {
164 MaterialPropertyLib::VariableArray variable_array_prev;
165
166 variable_array_prev.stress
169 variable_array_prev.mechanical_strain
172 variable_array_prev.temperature = temperature_prev;
173
174 // Extend for non-linear ice materials if necessary.
175 auto const null_state =
176 ice_constitutive_relation.createMaterialStateVariables();
177 ice_constitutive_relation.initializeInternalStateVariables(
178 t, x_position, *null_state);
179 auto&& solution = ice_constitutive_relation.integrateStress(
180 variable_array_prev, variable_array, t, x_position, dt,
181 *null_state);
182
183 if (!solution)
184 OGS_FATAL("Computation of local constitutive relation failed.");
185
187 std::tie(sigma_eff_ice, material_state_variables, C_IR) =
188 std::move(*solution);
189
190 return C_IR;
191 }
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
virtual void initializeInternalStateVariables(double const, ParameterLib::SpatialPosition const &, typename MechanicsBase< DisplacementDim >::MaterialStateVariables &) const
virtual std::unique_ptr< MaterialStateVariables > createMaterialStateVariables() const

References MaterialLib::Solids::MechanicsBase< DisplacementDim >::createMaterialStateVariables(), ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps_m_ice_prev, MaterialLib::Solids::MechanicsBase< DisplacementDim >::initializeInternalStateVariables(), MaterialLib::Solids::MechanicsBase< DisplacementDim >::integrateStress(), ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::material_state_variables, MaterialPropertyLib::VariableArray::mechanical_strain, OGS_FATAL, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff_ice, ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff_ice_prev, MaterialPropertyLib::VariableArray::stress, and MaterialPropertyLib::VariableArray::temperature.

Referenced by ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::updateConstitutiveRelations().

Member Data Documentation

◆ dNdx

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
ShapeMatricesTypePressure::GlobalDimNodalMatrixType ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::dNdx

◆ dNdx_u

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
ShapeMatrixTypeDisplacement::GlobalDimNodalMatrixType ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::dNdx_u

◆ EIGEN_MAKE_ALIGNED_OPERATOR_NEW

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::EIGEN_MAKE_ALIGNED_OPERATOR_NEW

Definition at line 192 of file IntegrationPointData.h.

◆ eps

◆ eps0

◆ eps0_prev

◆ eps_m

◆ eps_m_ice

◆ eps_m_ice_prev

◆ eps_m_prev

◆ integration_weight

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
double ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::integration_weight

Definition at line 75 of file IntegrationPointData.h.

◆ material_state_variables

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
std::unique_ptr<typename MaterialLib::Solids::MechanicsBase< DisplacementDim>::MaterialStateVariables> ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::material_state_variables

◆ N

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
ShapeMatricesTypePressure::NodalRowVectorType ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::N

◆ N_u

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
ShapeMatrixTypeDisplacement::NodalRowVectorType ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::N_u

◆ phi_fr

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
double ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::phi_fr = std::numeric_limits<double>::quiet_NaN()

◆ phi_fr_prev

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
double ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::phi_fr_prev = std::numeric_limits<double>::quiet_NaN()

◆ porosity

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
double ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::porosity

◆ sigma_eff

◆ sigma_eff_ice

◆ sigma_eff_ice_prev

◆ sigma_eff_prev

◆ solid_material

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
MaterialLib::Solids::MechanicsBase<DisplacementDim> const& ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::solid_material

The documentation for this struct was generated from the following file: