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

Detailed Description

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

Definition at line 21 of file ConstitutiveSetting.h.

#include <ConstitutiveSetting.h>

Public Member Functions

void init (ConstitutiveModels< DisplacementDim > &, double const, double const, ParameterLib::SpatialPosition const &, MediaData const &, TemperatureData< DisplacementDim > const &, StatefulData< DisplacementDim > &, StatefulDataPrev< DisplacementDim > &) const
 
void eval (ConstitutiveModels< DisplacementDim > &models, double const t, double const dt, ParameterLib::SpatialPosition const &x_position, MaterialPropertyLib::Medium const &medium, TemperatureData< DisplacementDim > const &T_data, CapillaryPressureData< DisplacementDim > const &p_cap_data, KelvinVector< DisplacementDim > const &eps_arg, StatefulData< DisplacementDim > &state, StatefulDataPrev< DisplacementDim > const &prev_state, MaterialStateData< DisplacementDim > &mat_state, ConstitutiveTempData< DisplacementDim > &tmp, OutputData< DisplacementDim > &out, ConstitutiveData< DisplacementDim > &cd) const
 Evaluate the constitutive setting.
 

Static Public Member Functions

static KelvinVector< DisplacementDim > const & statefulStress (StatefulData< DisplacementDim > const &state)
 
static KelvinVector< DisplacementDim > & statefulStress (StatefulData< DisplacementDim > &state)
 
static void convertInitialStressType (StatefulData< DisplacementDim > &state, StatefulDataPrev< DisplacementDim > &prev_state, KelvinVector< DisplacementDim > const &pore_pressure_part)
 

Member Function Documentation

◆ convertInitialStressType()

template<int DisplacementDim>
static void ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveSetting< DisplacementDim >::convertInitialStressType ( StatefulData< DisplacementDim > & state,
StatefulDataPrev< DisplacementDim > & prev_state,
KelvinVector< DisplacementDim > const & pore_pressure_part )
inlinestatic

In case that the input initial data for state.s_mech_data.sigma_total are effective stress values, state.s_mech_data.sigma_total is reset to total stress.

Definition at line 59 of file ConstitutiveSetting.h.

63 {
64 auto& sigma_total =
65 std::get<TotalStressData<DisplacementDim>>(state).sigma_total;
66 sigma_total.noalias() -= pore_pressure_part;
67
68 (std::get<PrevState<TotalStressData<DisplacementDim>>>(prev_state)
69 ->sigma_total)
70 .noalias() = sigma_total;
71 }

◆ eval()

template<int DisplacementDim>
void ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveSetting< DisplacementDim >::eval ( ConstitutiveModels< DisplacementDim > & models,
double const t,
double const dt,
ParameterLib::SpatialPosition const & x_position,
MaterialPropertyLib::Medium const & medium,
TemperatureData< DisplacementDim > const & T_data,
CapillaryPressureData< DisplacementDim > const & p_cap_data,
KelvinVector< DisplacementDim > const & eps_arg,
StatefulData< DisplacementDim > & state,
StatefulDataPrev< DisplacementDim > const & prev_state,
MaterialStateData< DisplacementDim > & mat_state,
ConstitutiveTempData< DisplacementDim > & tmp,
OutputData< DisplacementDim > & out,
ConstitutiveData< DisplacementDim > & cd ) const

Evaluate the constitutive setting.

Definition at line 20 of file ConstitutiveSetting.cpp.

33{
34 namespace G = ProcessLib::Graph;
35
36 auto const aux_data = std::tuple{SpaceTimeData{x_position, t, dt},
37 MediaData{medium}, T_data, p_cap_data};
38
39 auto const mat_state_tuple = std::tie(mat_state);
40
41 // TODO will eps lag one iteration behind? (since it's not updated after
42 // solving the global equation system)
43 std::get<StrainData<DisplacementDim>>(state).eps.noalias() = eps_arg;
44
45 G::eval(models.biot_model, aux_data, tmp);
46
47 G::eval(models.s_mech_model, aux_data, tmp, state, prev_state,
48 mat_state_tuple, cd);
49
50 G::eval(models.solid_compressibility_model, aux_data, tmp, cd);
51
52 G::eval(models.bishops_model, aux_data, state, tmp);
53 // TODO why not ordinary state tracking?
54 G::eval(models.bishops_prev_model, aux_data, prev_state, tmp);
55 G::eval(models.poro_model, aux_data, tmp, state, prev_state);
56
57 // TODO move to local assembler?
58 {
59 auto const& biot_data = std::get<BiotData>(tmp);
60 auto const& poro_data = std::get<PorosityData>(state);
61
62 if (biot_data() < poro_data.phi)
63 {
65 "ThermoRichardsMechanics: Biot-coefficient {} is smaller than "
66 "porosity {} in element/integration point {}/{}.",
67 biot_data(), poro_data.phi, *x_position.getElementID(),
68 *x_position.getIntegrationPoint());
69 }
70 }
71
72 G::eval(models.rho_L_model, aux_data, out);
73 G::eval(models.rho_S_model, aux_data, state, out);
74 G::eval(models.grav_model, state, out, tmp, cd);
75 G::eval(models.mu_L_model, aux_data, out);
76 G::eval(models.transport_poro_model, aux_data, tmp, state, prev_state);
77 G::eval(models.perm_model, aux_data, state, out, cd, tmp);
78 G::eval(models.th_osmosis_model, aux_data, out, cd);
79 G::eval(models.darcy_model, aux_data, out, tmp, cd);
80 G::eval(models.heat_storage_and_flux_model, aux_data, out, state, tmp, cd);
81 G::eval(models.vapor_diffusion_model, aux_data, out, state, tmp, cd);
82
83 // TODO Not needed for solid mechanics (solid thermal expansion is computed
84 // by the solid material model), but for fluid expansion. This duplication
85 // should be avoided in the future.
86 G::eval(models.s_therm_exp_model, aux_data, tmp);
87
88 G::eval(models.f_therm_exp_model, aux_data, tmp, state, out);
89 G::eval(models.storage_model, aux_data, tmp, state, out, prev_state, cd);
90 G::eval(models.eq_p_model, aux_data, state, tmp, out, cd);
91 G::eval(models.eq_T_model, cd);
92}
#define OGS_FATAL(...)
Definition Error.h:26

References ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::biot_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::bishops_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::bishops_prev_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::darcy_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::eq_p_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::eq_T_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::f_therm_exp_model, ParameterLib::SpatialPosition::getElementID(), ParameterLib::SpatialPosition::getIntegrationPoint(), ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::grav_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::heat_storage_and_flux_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::mu_L_model, OGS_FATAL, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::perm_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::poro_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::rho_L_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::rho_S_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::s_mech_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::s_therm_exp_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::solid_compressibility_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::storage_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::th_osmosis_model, ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::transport_poro_model, and ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveModels< DisplacementDim >::vapor_diffusion_model.

◆ init()

template<int DisplacementDim>
void ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveSetting< DisplacementDim >::init ( ConstitutiveModels< DisplacementDim > & ,
double const ,
double const ,
ParameterLib::SpatialPosition const & ,
MediaData const & ,
TemperatureData< DisplacementDim > const & ,
StatefulData< DisplacementDim > & ,
StatefulDataPrev< DisplacementDim > &  ) const
inline

Definition at line 23 of file ConstitutiveSetting.h.

28 {
29 }

◆ statefulStress() [1/2]

template<int DisplacementDim>
static KelvinVector< DisplacementDim > & ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveSetting< DisplacementDim >::statefulStress ( StatefulData< DisplacementDim > & state)
inlinestatic

Definition at line 50 of file ConstitutiveSetting.h.

52 {
53 return std::get<TotalStressData<DisplacementDim>>(state).sigma_total;
54 }

◆ statefulStress() [2/2]

template<int DisplacementDim>
static KelvinVector< DisplacementDim > const & ProcessLib::ThermoRichardsMechanics::ConstitutiveStressSaturation_StrainPressureTemperature::ConstitutiveSetting< DisplacementDim >::statefulStress ( StatefulData< DisplacementDim > const & state)
inlinestatic

Definition at line 45 of file ConstitutiveSetting.h.

47 {
48 return std::get<TotalStressData<DisplacementDim>>(state).sigma_total;
49 }

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