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

Detailed Description

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

Definition at line 25 of file ThermoRichardsMechanics/ConstitutiveStress_StrainTemperature/SolidMechanics.h.

#include <SolidMechanics.h>

Public Member Functions

 SolidMechanicsModel (SolidConstitutiveRelation< DisplacementDim > const &solid_material)
void eval (const SpaceTimeData &x_t, SolidThermalExpansionData< DisplacementDim > const &s_therm_exp_data, SwellingDataStateless< DisplacementDim > const &swelling_data, TemperatureData< DisplacementDim > const &T_data, CapillaryPressureData< DisplacementDim > const &p_cap_data, BiotData const &biot_data, BishopsData const &bishops_data, SaturationDataDeriv const &dS_L_data, StrainData< DisplacementDim > const &eps_data, PrevState< StrainData< DisplacementDim > > const &eps_prev_data, MaterialStateData< DisplacementDim > &mat_state, PrevState< ProcessLib::ConstitutiveRelations::EffectiveStressData< DisplacementDim > > const &sigma_eff_prev_data, ProcessLib::ConstitutiveRelations::EffectiveStressData< DisplacementDim > &sigma_eff_data, PrevState< ProcessLib::ConstitutiveRelations::MechanicalStrainData< DisplacementDim > > const &eps_m_prev_data, ProcessLib::ConstitutiveRelations::MechanicalStrainData< DisplacementDim > &eps_m_data, TotalStressData< DisplacementDim > &total_stress_data, EquivalentPlasticStrainData &equiv_plast_strain_data, SolidMechanicsDataStateless< DisplacementDim > &out) const
auto getInternalVariables () const

Static Public Member Functions

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

Private Attributes

SolidConstitutiveRelation< DisplacementDim > const & solid_material_

Constructor & Destructor Documentation

◆ SolidMechanicsModel()

Member Function Documentation

◆ create()

◆ eval()

template<int DisplacementDim>
void ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::SolidMechanicsModel< DisplacementDim >::eval ( const SpaceTimeData & x_t,
SolidThermalExpansionData< DisplacementDim > const & s_therm_exp_data,
SwellingDataStateless< DisplacementDim > const & swelling_data,
TemperatureData< DisplacementDim > const & T_data,
CapillaryPressureData< DisplacementDim > const & p_cap_data,
BiotData const & biot_data,
BishopsData const & bishops_data,
SaturationDataDeriv const & dS_L_data,
StrainData< DisplacementDim > const & eps_data,
PrevState< StrainData< DisplacementDim > > const & eps_prev_data,
MaterialStateData< DisplacementDim > & mat_state,
PrevState< ProcessLib::ConstitutiveRelations::EffectiveStressData< DisplacementDim > > const & sigma_eff_prev_data,
ProcessLib::ConstitutiveRelations::EffectiveStressData< DisplacementDim > & sigma_eff_data,
PrevState< ProcessLib::ConstitutiveRelations::MechanicalStrainData< DisplacementDim > > const & eps_m_prev_data,
ProcessLib::ConstitutiveRelations::MechanicalStrainData< DisplacementDim > & eps_m_data,
TotalStressData< DisplacementDim > & total_stress_data,
EquivalentPlasticStrainData & equiv_plast_strain_data,
SolidMechanicsDataStateless< DisplacementDim > & out ) const

Definition at line 11 of file ThermoRichardsMechanics/ConstitutiveStress_StrainTemperature/SolidMechanics.cpp.

34{
35 namespace MPL = MaterialPropertyLib;
37
38 double const T_prev = T_data.T_prev;
39 double const dT = T_data.T - T_prev;
40
41 eps_m_data.eps_m.noalias() =
42 eps_m_prev_data->eps_m + eps_data.eps - eps_prev_data->eps -
43 s_therm_exp_data.solid_linear_thermal_expansivity_vector * dT +
44 swelling_data.eps_m;
45
46 variables.mechanical_strain.emplace<KelvinVector<DisplacementDim>>(
47 eps_m_data.eps_m);
48 variables.temperature = T_data.T;
49
51
53 sigma_eff_prev_data->sigma_eff);
54 variables_prev.mechanical_strain.emplace<KelvinVector<DisplacementDim>>(
55 eps_m_prev_data->eps_m);
56 variables_prev.temperature = T_prev;
57
58 auto solution = solid_material_.integrateStress(
60 *mat_state.material_state_variables);
61
62 if (!solution)
63 {
64 OGS_FATAL("Computation of local constitutive relation failed.");
65 }
66
67 std::tie(sigma_eff_data.sigma_eff, mat_state.material_state_variables,
68 out.stiffness_tensor) = std::move(*solution);
69
73
74 total_stress_data.sigma_total.noalias() =
75 sigma_eff_data.sigma_eff +
76 biot_data() * bishops_data.chi_S_L * p_cap_data.p_cap * identity2;
77
78 out.J_uT_BT_K_N.noalias() = // TODO is this thermal stress?
79 -out.stiffness_tensor *
80 s_therm_exp_data.solid_linear_thermal_expansivity_vector;
81
82 double const J_up_X_BTI2N =
83 -biot_data() *
84 (bishops_data.chi_S_L +
85 bishops_data.dchi_dS_L * p_cap_data.p_cap * dS_L_data.dS_L_dp_cap);
86
87 out.J_up_BT_K_N.noalias() =
88 swelling_data.J_up_BT_K_N + J_up_X_BTI2N * identity2;
89
90 equiv_plast_strain_data.equivalent_plastic_strain =
91 mat_state.material_state_variables->getEquivalentPlasticStrain();
92}
#define OGS_FATAL(...)
Definition Error.h:19
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.

References ProcessLib::ThermoRichardsMechanics::BishopsData::chi_S_L, ProcessLib::ThermoRichardsMechanics::BishopsData::dchi_dS_L, ProcessLib::ThermoRichardsMechanics::SaturationDataDeriv::dS_L_dp_cap, ProcessLib::ConstitutiveRelations::SpaceTimeData::dt, ProcessLib::ConstitutiveRelations::StrainData< DisplacementDim >::eps, ProcessLib::ConstitutiveRelations::MechanicalStrainData< DisplacementDim >::eps_m, ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::SwellingDataStateless< DisplacementDim >::eps_m, ProcessLib::ThermoRichardsMechanics::EquivalentPlasticStrainData::equivalent_plastic_strain, ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::SwellingDataStateless< DisplacementDim >::J_up_BT_K_N, ProcessLib::ThermoRichardsMechanics::SolidMechanicsDataStateless< DisplacementDim >::J_up_BT_K_N, ProcessLib::ThermoRichardsMechanics::SolidMechanicsDataStateless< DisplacementDim >::J_uT_BT_K_N, MathLib::KelvinVector::kelvin_vector_dimensions(), ProcessLib::ThermoRichardsMechanics::MaterialStateData< DisplacementDim >::material_state_variables, MaterialPropertyLib::VariableArray::mechanical_strain, OGS_FATAL, ProcessLib::ThermoRichardsMechanics::CapillaryPressureData< DisplacementDim >::p_cap, ProcessLib::ConstitutiveRelations::EffectiveStressData< DisplacementDim >::sigma_eff, ProcessLib::ThermoRichardsMechanics::TotalStressData< DisplacementDim >::sigma_total, ProcessLib::ThermoRichardsMechanics::SolidThermalExpansionData< DisplacementDim >::solid_linear_thermal_expansivity_vector, 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, MaterialPropertyLib::VariableArray::temperature, and ProcessLib::ConstitutiveRelations::SpaceTimeData::x.

◆ getInternalVariables()

template<int DisplacementDim>
auto ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::SolidMechanicsModel< DisplacementDim >::getInternalVariables ( ) const
inline

Definition at line 57 of file ThermoRichardsMechanics/ConstitutiveStress_StrainTemperature/SolidMechanics.h.

58 {
59 return solid_material_.getInternalVariables();
60 }

References solid_material_.

Member Data Documentation

◆ solid_material_


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