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 40 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

ShapeMatricesTypeDisplacement::template MatrixType< DisplacementDim, NPoints *DisplacementDim > N_u_op
 
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 coupling_pressure = std::numeric_limits<double>::quiet_NaN()
 
 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 42 of file HydroMechanicsFEM.h.

47  solid_material.createMaterialStateVariables())
48  {
49  }
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 82 of file HydroMechanicsFEM.h.

87  {
88  namespace MPL = MaterialPropertyLib;
89 
90  MPL::VariableArray variable_array;
91  MPL::VariableArray variable_array_prev;
92 
93  auto const null_state = solid_material.createMaterialStateVariables();
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
Definition: VariableType.h:165
std::variant< std::monostate, Eigen::Matrix< double, 4, 1 >, Eigen::Matrix< double, 6, 1 > > stress
Definition: VariableType.h:175
static constexpr Temperature temperature
Definition: Variable.h:125
Eigen::Matrix< double, kelvin_vector_dimensions(DisplacementDim), 1, Eigen::ColMajor > KelvinVectorType
Definition: KelvinVector.h:49
Eigen::Matrix< double, kelvin_vector_dimensions(DisplacementDim), kelvin_vector_dimensions(DisplacementDim), Eigen::RowMajor > KelvinMatrixType
Definition: KelvinVector.h:57
static const double t

References MaterialPropertyLib::VariableArray::mechanical_strain, OGS_FATAL, ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::solid_material, MaterialPropertyLib::VariableArray::stress, MathLib::t, MaterialPropertyLib::VariableArray::temperature, and MaterialLib::Solids::MFront::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 74 of file HydroMechanicsFEM.h.

75  {
76  eps_prev = eps;
78  material_state_variables->pushBackState();
79  }
BMatricesType::KelvinVectorType sigma_eff_prev

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, MathLib::t, and MaterialPropertyLib::VariableArray::temperature.

Member Data Documentation

◆ coupling_pressure

template<typename BMatricesType , typename ShapeMatricesTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
double ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::coupling_pressure = std::numeric_limits<double>::quiet_NaN()

needed for staggered scheme to store value from last coupling iteration

Definition at line 71 of file HydroMechanicsFEM.h.

◆ 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 62 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 59 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 68 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 61 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 58 of file HydroMechanicsFEM.h.

◆ N_u_op

template<typename BMatricesType , typename ShapeMatricesTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
ShapeMatricesTypeDisplacement::template MatrixType< DisplacementDim, NPoints * DisplacementDim> ProcessLib::HydroMechanics::IntegrationPointData< BMatricesType, ShapeMatricesTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::N_u_op

for interpolation of the displacement vector, whereas N_u interpolates one component (scalar)

Definition at line 53 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

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