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 57 of file ConstitutiveSetting.h.

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

◆ 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 64 of file ConstitutiveSetting.cpp.

77{
78 auto const aux_data = std::tuple{SpaceTimeData{x_position, t, dt},
79 MediaData{medium}, T_data, p_cap_data};
80
81 auto const mat_state_tuple = std::tie(mat_state);
82
83 // TODO will eps lag one iteration behind? (since it's not updated after
84 // solving the global equation system)
85 std::get<StrainData<DisplacementDim>>(state).eps.noalias() = eps_arg;
86
87 ProcessLib::Graph::evalAllInOrder(models, aux_data, cd, mat_state_tuple,
88 out, prev_state, state, tmp);
89
90 // TODO why not ordinary state tracking for BishopsPrevModel?
91
92 {
93 auto const& biot_data = std::get<BiotData>(tmp);
94 auto const& poro_data = std::get<PorosityData>(state);
95
96 if (biot_data() < poro_data.phi)
97 {
99 "ThermoRichardsMechanics: Biot-coefficient {} is smaller than "
100 "porosity {} in element/integration point {}/{}.",
101 biot_data(), poro_data.phi, *x_position.getElementID(),
102 *x_position.getIntegrationPoint());
103 }
104 }
105
106 // TODO Solid thermal expansion is not needed for solid mechanics (it is
107 // computed by the solid material model itself), but for fluid expansion.
108 // This duplication should be avoided in the future.
109}
#define OGS_FATAL(...)
Definition Error.h:26
void evalAllInOrder(Functions &fs, Tuples &... ts)
Definition Apply.h:294

References ProcessLib::Graph::evalAllInOrder(), ParameterLib::SpatialPosition::getElementID(), ParameterLib::SpatialPosition::getIntegrationPoint(), and OGS_FATAL.

◆ 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

Definition at line 53 of file ConstitutiveSetting.cpp.

58{
59 [[maybe_unused]] static const bool model_order_correct =
60 checkCorrectModelEvalOrder<DisplacementDim>();
61}

◆ statefulStress() [1/2]

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

Definition at line 48 of file ConstitutiveSetting.h.

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

◆ 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 43 of file ConstitutiveSetting.h.

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

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