OGS
ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::SolidMechanicsModel< DisplacementDim > Struct Template Reference

Detailed Description

template<int DisplacementDim>
struct ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::SolidMechanicsModel< DisplacementDim >

Definition at line 29 of file ThermoRichardsMechanics/ConstitutiveStressSaturation_StrainPressureTemperature/SolidMechanics.h.

#include <SolidMechanics.h>

Public Member Functions

 SolidMechanicsModel (SolidConstitutiveRelation< DisplacementDim > const &solid_material)
void eval (const SpaceTimeData &x_t, TemperatureData< DisplacementDim > const &T_data, CapillaryPressureData< DisplacementDim > const &p_cap_data, StrainData< DisplacementDim > const &eps_data, PrevState< StrainData< DisplacementDim > > const &eps_prev_data, MaterialStateData< DisplacementDim > &mat_state, PrevState< TotalStressData< DisplacementDim > > const &total_stress_data_prev, TotalStressData< DisplacementDim > &total_stress_data, EquivalentPlasticStrainData &equiv_plast_strain_data, SolidMechanicsDataStateless< DisplacementDim > &current_stateless, PrevState< SaturationData > const &S_L_prev_data, SaturationData &S_L_data, SaturationDataDeriv &dS_L_data) const

Static Public Member Functions

static SolidMechanicsModel create (SolidConstitutiveRelation< DisplacementDim > const &solid_material)

Private Attributes

SolidConstitutiveRelation< DisplacementDim > const & solid_material_
MSM::OGSMFrontTangentOperatorBlocksView< DisplacementDim, MSM::ForcesGradsCombinations< boost::mp11::mp_list< MSM::Strain, MSM::LiquidPressure >, boost::mp11::mp_list< MSM::Stress, MSM::Saturation >, boost::mp11::mp_list< MSM::Temperature > >::type > tangent_operator_blocks_view_

Constructor & Destructor Documentation

◆ SolidMechanicsModel()

template<int DisplacementDim>
ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::SolidMechanicsModel< DisplacementDim >::SolidMechanicsModel ( SolidConstitutiveRelation< DisplacementDim > const & solid_material)
inlineexplicit

Member Function Documentation

◆ create()

◆ eval()

template<int DisplacementDim>
void ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::SolidMechanicsModel< DisplacementDim >::eval ( const SpaceTimeData & x_t,
TemperatureData< DisplacementDim > const & T_data,
CapillaryPressureData< DisplacementDim > const & p_cap_data,
StrainData< DisplacementDim > const & eps_data,
PrevState< StrainData< DisplacementDim > > const & eps_prev_data,
MaterialStateData< DisplacementDim > & mat_state,
PrevState< TotalStressData< DisplacementDim > > const & total_stress_data_prev,
TotalStressData< DisplacementDim > & total_stress_data,
EquivalentPlasticStrainData & equiv_plast_strain_data,
SolidMechanicsDataStateless< DisplacementDim > & current_stateless,
PrevState< SaturationData > const & S_L_prev_data,
SaturationData & S_L_data,
SaturationDataDeriv & dS_L_data ) const

Definition at line 18 of file ThermoRichardsMechanics/ConstitutiveStressSaturation_StrainPressureTemperature/SolidMechanics.cpp.

30{
31 namespace MPL = MaterialPropertyLib;
32
33 double const T_prev = T_data.T_prev;
34 auto const& eps_total = eps_data.eps;
35 auto const& eps_total_prev = eps_prev_data->eps;
36 auto const& sigma_total_prev = total_stress_data_prev->sigma_total;
37
38 // current state
40 {
41 // gradients
42 // TODO currently we always pass strain via mechanical_strain
43 variables.mechanical_strain = eps_total;
44 variables.liquid_phase_pressure = -p_cap_data.p_cap;
45
46 // external state variables
47 variables.temperature = T_data.T;
48 }
49
50 // previous state
52 {
53 // thermodynamic forces
55 variables_prev.liquid_saturation = S_L_prev_data->S_L;
56
57 // gradients
58 // TODO currently we always pass strain via mechanical_strain
59 variables_prev.mechanical_strain = eps_total_prev;
60 variables_prev.liquid_phase_pressure = -p_cap_data.p_cap_prev;
61
62 // external state variables
63 variables_prev.temperature = T_prev;
64 }
65
66 auto solution = solid_material_.integrateStress(
68 *mat_state.material_state_variables);
69
70 if (!solution)
71 {
72 OGS_FATAL("Computation of local constitutive relation failed.");
73 }
74
76
77 auto const view = solid_material_.createThermodynamicForcesView();
78
81 mat_state.material_state_variables = std::move(std::get<1>(*solution));
82
84
85 current_stateless.stiffness_tensor = tangent_operator_blocks_view_.block(
87
88 dS_L_data.dS_L_dp_cap = -tangent_operator_blocks_view_.block(
90
93
96
97 equiv_plast_strain_data.equivalent_plastic_strain =
98 mat_state.material_state_variables->getEquivalentPlasticStrain();
99}
#define OGS_FATAL(...)
Definition Error.h:26

References ProcessLib::ThermoRichardsMechanics::SaturationDataDeriv::dS_L_dp_cap, ProcessLib::ConstitutiveRelations::SpaceTimeData::dt, ProcessLib::ConstitutiveRelations::StrainData< DisplacementDim >::eps, ProcessLib::ThermoRichardsMechanics::EquivalentPlasticStrainData::equivalent_plastic_strain, ProcessLib::ThermoRichardsMechanics::SolidMechanicsDataStateless< DisplacementDim >::J_up_BT_K_N, ProcessLib::ThermoRichardsMechanics::SolidMechanicsDataStateless< DisplacementDim >::J_uT_BT_K_N, MaterialPropertyLib::VariableArray::liquid_phase_pressure, MaterialPropertyLib::VariableArray::liquid_saturation, ProcessLib::ThermoRichardsMechanics::MaterialStateData< DisplacementDim >::material_state_variables, MaterialPropertyLib::VariableArray::mechanical_strain, OGS_FATAL, ProcessLib::ThermoRichardsMechanics::CapillaryPressureData< DisplacementDim >::p_cap, ProcessLib::ThermoRichardsMechanics::CapillaryPressureData< DisplacementDim >::p_cap_prev, ProcessLib::ThermoRichardsMechanics::SaturationData::S_L, ProcessLib::ThermoRichardsMechanics::TotalStressData< DisplacementDim >::sigma_total, solid_material_, ProcessLib::ThermoRichardsMechanics::SolidMechanicsDataStateless< DisplacementDim >::stiffness_tensor, MaterialPropertyLib::VariableArray::stress, ProcessLib::ThermoRichardsMechanics::TemperatureData< DisplacementDim >::T, ProcessLib::ConstitutiveRelations::SpaceTimeData::t, ProcessLib::ThermoRichardsMechanics::TemperatureData< DisplacementDim >::T_prev, tangent_operator_blocks_view_, MaterialPropertyLib::VariableArray::temperature, and ProcessLib::ConstitutiveRelations::SpaceTimeData::x.

Member Data Documentation

◆ solid_material_

◆ tangent_operator_blocks_view_

template<int DisplacementDim>
MSM::OGSMFrontTangentOperatorBlocksView< DisplacementDim, MSM::ForcesGradsCombinations< boost::mp11::mp_list<MSM::Strain, MSM::LiquidPressure>, boost::mp11::mp_list<MSM::Stress, MSM::Saturation>, boost::mp11::mp_list<MSM::Temperature> >::type> ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::SolidMechanicsModel< DisplacementDim >::tangent_operator_blocks_view_
private

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