OGS
ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints > Struct Template Referencefinal

Detailed Description

template<typename BMatricesType, typename ShapeMatricesTypeDisplacement, typename ShapeMatricesTypePressure, int DisplacementDim, int NPoints>
struct ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >

Definition at line 41 of file HydroMechanicsFEM.h.

#include <HydroMechanicsFEM.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)
 
template<typename DisplacementVectorType >
BMatricesType::KelvinMatrixType updateConstitutiveRelation (MPL::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x_position, double const dt, DisplacementVectorType const &, double const T)
 

Public Attributes

BMatricesType::KelvinVectorType sigma_eff
 
BMatricesType::KelvinVectorType sigma_eff_prev
 
BMatricesType::KelvinVectorType eps
 
BMatricesType::KelvinVectorType eps_prev
 
ShapeMatricesTypeDisplacement::NodalRowVectorType N_u
 
ShapeMatricesTypeDisplacement::GlobalDimNodalMatrixType dNdx_u
 
ShapeMatricesTypePressure::NodalRowVectorType N_p
 
ShapeMatricesTypePressure::GlobalDimNodalMatrixType dNdx_p
 
MaterialLib::Solids::MechanicsBase< DisplacementDim > const & solid_material
 
std::unique_ptr< typename MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables > material_state_variables
 
double integration_weight
 
double strain_rate_variable = 0.0
 
 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
 

Constructor & Destructor Documentation

◆ IntegrationPointData()

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

Definition at line 43 of file HydroMechanicsFEM.h.

48 solid_material.createMaterialStateVariables())
49 {
50 }
std::unique_ptr< typename MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables > material_state_variables
MaterialLib::Solids::MechanicsBase< DisplacementDim > const & solid_material

Member Function Documentation

◆ computeElasticTangentStiffness()

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

Definition at line 80 of file HydroMechanicsFEM.h.

85 {
86 namespace MPL = MaterialPropertyLib;
87
88 MPL::VariableArray variable_array;
89 MPL::VariableArray variable_array_prev;
90
91 auto const null_state = solid_material.createMaterialStateVariables();
92 solid_material.initializeInternalStateVariables(t, x_position,
93 *null_state);
94
96
97 variable_array.stress.emplace<KV>(KV::Zero());
98 variable_array.mechanical_strain.emplace<KV>(KV::Zero());
99 variable_array.temperature = temperature;
100
101 variable_array_prev.stress.emplace<KV>(KV::Zero());
102 variable_array_prev.mechanical_strain.emplace<KV>(KV::Zero());
103 variable_array_prev.temperature = temperature;
104
105 auto&& solution =
106 solid_material.integrateStress(variable_array_prev, variable_array,
107 t, x_position, dt, *null_state);
108
109 if (!solution)
110 {
111 OGS_FATAL("Computation of elastic tangent stiffness failed.");
112 }
113
115 std::move(std::get<2>(*solution));
116
117 return C;
118 }
#define OGS_FATAL(...)
Definition Error.h:26
std::variant< std::monostate, Eigen::Matrix< double, 4, 1 >, Eigen::Matrix< double, 6, 1 > > mechanical_strain
std::variant< std::monostate, Eigen::Matrix< double, 4, 1 >, Eigen::Matrix< double, 6, 1 > > stress
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 MaterialPropertyLib::VariableArray::mechanical_strain, OGS_FATAL, ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::solid_material, MaterialPropertyLib::VariableArray::stress, and MaterialPropertyLib::VariableArray::temperature.

◆ pushBackState()

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

Definition at line 72 of file HydroMechanicsFEM.h.

73 {
74 eps_prev = eps;
76 material_state_variables->pushBackState();
77 }

References ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps, ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps_prev, ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::material_state_variables, ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff, and ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff_prev.

◆ updateConstitutiveRelation()

template<typename BMatricesType , typename ShapeMatricesTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
template<typename DisplacementVectorType >
BMatricesType::KelvinMatrixType ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::updateConstitutiveRelation ( MPL::VariableArray const & variable_array,
double const t,
ParameterLib::SpatialPosition const & x_position,
double const dt,
DisplacementVectorType const & ,
double const T )
inline

Definition at line 121 of file HydroMechanicsFEM.h.

128 {
129 MaterialPropertyLib::VariableArray variable_array_prev;
130 variable_array_prev.stress
133 variable_array_prev.mechanical_strain
135 eps_prev);
136 variable_array_prev.temperature = T;
137
138 auto&& solution = solid_material.integrateStress(
139 variable_array_prev, variable_array, t, x_position, dt,
141
142 if (!solution)
143 {
144 OGS_FATAL("Computation of local constitutive relation failed.");
145 }
146
148 std::tie(sigma_eff, material_state_variables, C) = std::move(*solution);
149
150 return C;
151 }

References ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps_prev, ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::material_state_variables, MaterialPropertyLib::VariableArray::mechanical_strain, OGS_FATAL, ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff, ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff_prev, ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::solid_material, MaterialPropertyLib::VariableArray::stress, and MaterialPropertyLib::VariableArray::temperature.

Member Data Documentation

◆ dNdx_p

template<typename BMatricesType , typename ShapeMatricesTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
ShapeMatricesTypePressure::GlobalDimNodalMatrixType ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::dNdx_p

Definition at line 59 of file HydroMechanicsFEM.h.

◆ dNdx_u

template<typename BMatricesType , typename ShapeMatricesTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
ShapeMatricesTypeDisplacement::GlobalDimNodalMatrixType ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::dNdx_u

Definition at line 56 of file HydroMechanicsFEM.h.

◆ EIGEN_MAKE_ALIGNED_OPERATOR_NEW

template<typename BMatricesType , typename ShapeMatricesTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::EIGEN_MAKE_ALIGNED_OPERATOR_NEW

Definition at line 153 of file HydroMechanicsFEM.h.

◆ eps

template<typename BMatricesType , typename ShapeMatricesTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
BMatricesType::KelvinVectorType ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps

◆ eps_prev

template<typename BMatricesType , typename ShapeMatricesTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
BMatricesType::KelvinVectorType ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::eps_prev

◆ integration_weight

template<typename BMatricesType , typename ShapeMatricesTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
double ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::integration_weight

Definition at line 65 of file HydroMechanicsFEM.h.

◆ material_state_variables

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

◆ N_p

template<typename BMatricesType , typename ShapeMatricesTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
ShapeMatricesTypePressure::NodalRowVectorType ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::N_p

Definition at line 58 of file HydroMechanicsFEM.h.

◆ N_u

template<typename BMatricesType , typename ShapeMatricesTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
ShapeMatricesTypeDisplacement::NodalRowVectorType ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::N_u

Definition at line 55 of file HydroMechanicsFEM.h.

◆ sigma_eff

◆ sigma_eff_prev

template<typename BMatricesType , typename ShapeMatricesTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
BMatricesType::KelvinVectorType ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::sigma_eff_prev

◆ solid_material

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

◆ strain_rate_variable

template<typename BMatricesType , typename ShapeMatricesTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
double ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::strain_rate_variable = 0.0

Definition at line 70 of file HydroMechanicsFEM.h.


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