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 22 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 11 of file ThermoRichardsMechanics/ConstitutiveStressSaturation_StrainPressureTemperature/SolidMechanics.cpp.

23{
24 namespace MPL = MaterialPropertyLib;
25
26 double const T_prev = T_data.T_prev;
27 auto const& eps_total = eps_data.eps;
28 auto const& eps_total_prev = eps_prev_data->eps;
29 auto const& sigma_total_prev = total_stress_data_prev->sigma_total;
30
31 // current state
33 {
34 // gradients
35 // TODO currently we always pass strain via mechanical_strain
36 variables.mechanical_strain = eps_total;
37 variables.liquid_phase_pressure = -p_cap_data.p_cap;
38
39 // external state variables
40 variables.temperature = T_data.T;
41 }
42
43 // previous state
45 {
46 // thermodynamic forces
48 variables_prev.liquid_saturation = S_L_prev_data->S_L;
49
50 // gradients
51 // TODO currently we always pass strain via mechanical_strain
52 variables_prev.mechanical_strain = eps_total_prev;
53 variables_prev.liquid_phase_pressure = -p_cap_data.p_cap_prev;
54
55 // external state variables
56 variables_prev.temperature = T_prev;
57 }
58
59 auto solution = solid_material_.integrateStress(
61 *mat_state.material_state_variables);
62
63 if (!solution)
64 {
65 OGS_FATAL("Computation of local constitutive relation failed.");
66 }
67
69
70 auto const view = solid_material_.createThermodynamicForcesView();
71
74 mat_state.material_state_variables = std::move(std::get<1>(*solution));
75
77
78 current_stateless.stiffness_tensor = tangent_operator_blocks_view_.block(
80
81 dS_L_data.dS_L_dp_cap = -tangent_operator_blocks_view_.block(
83
86
89
90 equiv_plast_strain_data.equivalent_plastic_strain =
91 mat_state.material_state_variables->getEquivalentPlasticStrain();
92}
#define OGS_FATAL(...)
Definition Error.h:19

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: