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

Detailed Description

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

Definition at line 26 of file IntegrationPointData.h.

#include <IntegrationPointData.h>

Static Public Member Functions

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)
 
static BMatricesType::KelvinMatrixType updateConstitutiveRelation (MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x_position, double const dt, double const temperature, ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::EffectiveStressData< DisplacementDim > &sigma_eff, PrevState< ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::EffectiveStressData< DisplacementDim > > const &sigma_eff_prev, ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::MechanicalStrainData< DisplacementDim > const &, PrevState< ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::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)
 

Public Attributes

ShapeMatrixTypeDisplacement::NodalRowVectorType N_u
 
ShapeMatrixTypeDisplacement::GlobalDimNodalMatrixType dNdx_u
 
ShapeMatricesTypePressure::NodalRowVectorType N_p
 
ShapeMatricesTypePressure::GlobalDimNodalMatrixType dNdx_p
 
double integration_weight = std::numeric_limits<double>::quiet_NaN()
 
 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
 

Member Function Documentation

◆ computeElasticTangentStiffness()

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
static MathLib::KelvinVector:: KelvinMatrixType< DisplacementDim > ProcessLib::RichardsMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::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 )
inlinestatic

Definition at line 37 of file IntegrationPointData.h.

46 {
47 namespace MPL = MaterialPropertyLib;
48
49 MPL::VariableArray variable_array;
50 MPL::VariableArray variable_array_prev;
51
53
54 variable_array.stress.emplace<KV>(KV::Zero());
55 variable_array.mechanical_strain.emplace<KV>(KV::Zero());
56 variable_array.temperature = temperature;
57
58 variable_array_prev.stress.emplace<KV>(KV::Zero());
59 variable_array_prev.mechanical_strain.emplace<KV>(KV::Zero());
60 variable_array_prev.temperature = temperature;
61
62 auto&& solution = solid_material.integrateStress(
63 variable_array_prev, variable_array, t, x_position, dt,
64 material_state_variables);
65
66 if (!solution)
67 {
68 OGS_FATAL("Computation of elastic tangent stiffness failed.");
69 }
70
72 std::move(std::get<2>(*solution));
73
74 return C;
75 }
#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
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

References MaterialLib::Solids::MechanicsBase< DisplacementDim >::integrateStress(), MaterialPropertyLib::VariableArray::mechanical_strain, OGS_FATAL, MaterialPropertyLib::VariableArray::stress, and MaterialPropertyLib::VariableArray::temperature.

◆ updateConstitutiveRelation()

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
static BMatricesType::KelvinMatrixType ProcessLib::RichardsMechanics::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,
ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::EffectiveStressData< DisplacementDim > & sigma_eff,
PrevState< ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::EffectiveStressData< DisplacementDim > > const & sigma_eff_prev,
ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::MechanicalStrainData< DisplacementDim > const & ,
PrevState< ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::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 )
inlinestatic

Definition at line 77 of file IntegrationPointData.h.

101 {
102 MaterialPropertyLib::VariableArray variable_array_prev;
103 variable_array_prev.stress = sigma_eff_prev->sigma_eff;
104 variable_array_prev.mechanical_strain
106 eps_m_prev->eps_m);
107 variable_array_prev.temperature = temperature;
108
109 auto&& solution = solid_material.integrateStress(
110 variable_array_prev, variable_array, t, x_position, dt,
111 *material_state_variables);
112
113 if (!solution)
114 {
115 OGS_FATAL("Computation of local constitutive relation failed.");
116 }
117
119 std::tie(sigma_eff.sigma_eff, material_state_variables, C) =
120 std::move(*solution);
121
122 return C;
123 }

References MaterialPropertyLib::VariableArray::mechanical_strain, OGS_FATAL, MaterialPropertyLib::VariableArray::stress, and MaterialPropertyLib::VariableArray::temperature.

Member Data Documentation

◆ dNdx_p

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
ShapeMatricesTypePressure::GlobalDimNodalMatrixType ProcessLib::RichardsMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::dNdx_p

Definition at line 32 of file IntegrationPointData.h.

◆ dNdx_u

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

Definition at line 29 of file IntegrationPointData.h.

◆ EIGEN_MAKE_ALIGNED_OPERATOR_NEW

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

Definition at line 125 of file IntegrationPointData.h.

◆ integration_weight

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

Definition at line 34 of file IntegrationPointData.h.

◆ N_p

template<typename BMatricesType , typename ShapeMatrixTypeDisplacement , typename ShapeMatricesTypePressure , int DisplacementDim, int NPoints>
ShapeMatricesTypePressure::NodalRowVectorType ProcessLib::RichardsMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::N_p

Definition at line 31 of file IntegrationPointData.h.

◆ N_u

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

Definition at line 28 of file IntegrationPointData.h.


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