18namespace ConstitutiveStressSaturation_StrainPressureTemperature
20template <
int DisplacementDim>
24 "Checking correct model evaluation order in the constitutive setting.");
28 constexpr auto D = DisplacementDim;
31 mp_list<SpaceTimeData, MediaData, TemperatureData<D>,
37 using InputsAndPrevState = mp_append<Inputs, StatefulDataPrev<D>>;
44 OGS_FATAL(
"The constitutive setting has a wrong evaluation order.");
47 INFO(
"Model evaluation order is correct.");
52template <
int DisplacementDim>
59 [[maybe_unused]]
static const bool model_order_correct =
63template <
int DisplacementDim>
78 auto const aux_data = std::tuple{
SpaceTimeData{x_position, t, dt},
81 auto const mat_state_tuple = std::tie(mat_state);
85 std::get<StrainData<DisplacementDim>>(state).eps.noalias() = eps_arg;
88 out, prev_state, state, tmp);
93 auto const& biot_data = std::get<BiotData>(tmp);
94 auto const& poro_data = std::get<PorosityData>(state);
96 if (biot_data() < poro_data.phi)
99 "ThermoRichardsMechanics: Biot-coefficient {} is smaller than "
100 "porosity {} in element/integration point {}/{}.",
void INFO(fmt::format_string< Args... > fmt, Args &&... args)
std::optional< std::size_t > getElementID() const
std::optional< unsigned > getIntegrationPoint() const
bool isEvalOrderCorrectRT()
void evalAllInOrder(Functions &fs, Tuples &... ts)
std::tuple< SolidMechanicsDataStateless< DisplacementDim >, GravityData< DisplacementDim >, TRMHeatStorageAndFluxData< DisplacementDim >, TRMVaporDiffusionData< DisplacementDim >, TRMStorageData, EqPData< DisplacementDim >, EqTData< DisplacementDim >, ThermoOsmosisData< DisplacementDim > > ConstitutiveData
Data that is needed for the equation system assembly.
static bool checkCorrectModelEvalOrder()
std::tuple< BiotModel, SolidMechanicsModel< DisplacementDim >, SolidCompressibilityModel< DisplacementDim, SolidConstitutiveRelation< DisplacementDim > >, BishopsModel, BishopsPrevModel, PorosityModel< DisplacementDim >, LiquidDensityModel< DisplacementDim >, SolidDensityModel< DisplacementDim >, GravityModel< DisplacementDim >, LiquidViscosityModel< DisplacementDim >, TransportPorosityModel< DisplacementDim >, PermeabilityModel< DisplacementDim >, ThermoOsmosisModel< DisplacementDim >, DarcyLawModel< DisplacementDim >, TRMHeatStorageAndFluxModel< DisplacementDim >, TRMVaporDiffusionModel< DisplacementDim >, SolidThermalExpansionModel< DisplacementDim >, FluidThermalExpansionModel< DisplacementDim >, TRMStorageModel< DisplacementDim >, EqPModel< DisplacementDim >, EqTModel< DisplacementDim > > ConstitutiveModels
Constitutive models used for assembly.
std::tuple< DarcyLawData< DisplacementDim >, LiquidDensityData, LiquidViscosityData, SolidDensityData, PermeabilityData< DisplacementDim > > OutputData
Data that is needed for output purposes, but not directly for the assembly.
std::tuple< BiotData, SolidCompressibilityData, SaturationDataDeriv, BishopsData, PrevState< BishopsData >, SolidThermalExpansionData< DisplacementDim >, FluidThermalExpansionData, EquivalentPlasticStrainData > ConstitutiveTempData
std::tuple< SaturationData, PorosityData, TransportPorosityData, StrainData< DisplacementDim >, TotalStressData< DisplacementDim > > StatefulData
Data whose state must be tracked by the TRM process.
PrevStateOf< StatefulData< DisplacementDim > > StatefulDataPrev
KV::KelvinVectorType< DisplacementDim > KelvinVector
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.
void init(ConstitutiveModels< DisplacementDim > &, double const, double const, ParameterLib::SpatialPosition const &, MediaData const &, TemperatureData< DisplacementDim > const &, StatefulData< DisplacementDim > &, StatefulDataPrev< DisplacementDim > &) const