20namespace ConstitutiveStress_StrainTemperature
22template <
int DisplacementDim>
36 auto const& eps = std::get<StrainData<DisplacementDim>>(state).eps;
37 auto const& sigma_sw =
38 std::get<SwellingDataStateful<DisplacementDim>>(state).sigma_sw;
39 std::get<PrevState<MechanicalStrainData<DisplacementDim>>>(prev_state)
43 ? eps + C_el_data.
C_el.inverse() * sigma_sw
47template <
int DisplacementDim>
64 auto const aux_data = std::tuple{
SpaceTimeData{x_position, t, dt},
67 auto const mat_state_tuple = std::tie(mat_state);
71 std::get<StrainData<DisplacementDim>>(state).eps.noalias() = eps_arg;
76 G::eval(models.
S_L_model, aux_data, state, tmp);
81 G::eval(models.
poro_model, aux_data, tmp, state, prev_state);
84 auto const& biot_data = std::get<BiotData>(tmp);
85 auto const& poro_data = std::get<PorosityData>(state);
87 if (biot_data() < poro_data.phi)
90 "ThermoRichardsMechanics: Biot-coefficient {} is smaller than "
91 "porosity {} in element/integration point {}/{}.",
99 G::eval(models.
s_mech_model, aux_data, tmp, state, prev_state,
100 mat_state_tuple, cd);
115 G::eval(models.
grav_model, state, out, tmp, cd);
118 G::eval(models.
perm_model, aux_data, state, out, cd, tmp);
120 G::eval(models.
darcy_model, aux_data, out, tmp, cd);
124 G::eval(models.
storage_model, aux_data, tmp, state, out, prev_state, cd);
125 G::eval(models.
eq_p_model, aux_data, state, tmp, out, cd);
bool hasProperty(PropertyType const &p) const
std::optional< std::size_t > getElementID() const
std::optional< unsigned > getIntegrationPoint() const
std::tuple< DarcyLawData< DisplacementDim >, LiquidDensityData, LiquidViscosityData, SolidDensityData, PermeabilityData< DisplacementDim > > OutputData
Data that is needed for output purposes, but not directly for the assembly.
PrevStateOf< StatefulData< DisplacementDim > > StatefulDataPrev
std::tuple< SaturationData, PorosityData, TransportPorosityData, StrainData< DisplacementDim >, SwellingDataStateful< DisplacementDim >, MechanicalStrainData< DisplacementDim >, EffectiveStressData< DisplacementDim > > StatefulData
Data whose state must be tracked by the TRM process.
std::tuple< SolidMechanicsDataStateless< DisplacementDim >, TotalStressData< DisplacementDim >, GravityData< DisplacementDim >, TRMHeatStorageAndFluxData< DisplacementDim >, TRMVaporDiffusionData< DisplacementDim >, TRMStorageData, EqPData< DisplacementDim >, EqTData< DisplacementDim >, ThermoOsmosisData< DisplacementDim > > ConstitutiveData
Data that is needed for the equation system assembly.
std::tuple< SwellingDataStateless< DisplacementDim >, ElasticTangentStiffnessData< DisplacementDim >, BiotData, SolidCompressibilityData, SaturationDataDeriv, BishopsData, PrevState< BishopsData >, SolidThermalExpansionData< DisplacementDim >, FluidThermalExpansionData, EquivalentPlasticStrainData > ConstitutiveTempData
KV::KelvinVectorType< DisplacementDim > KelvinVector
Constitutive models used for assembly.
EqTModel< DisplacementDim > eq_T_model
GravityModel< DisplacementDim > grav_model
TRMStorageModel< DisplacementDim > storage_model
TRMVaporDiffusionModel< DisplacementDim > vapor_diffusion_model
PorosityModel< DisplacementDim > poro_model
SolidDensityModel< DisplacementDim > rho_S_model
FluidThermalExpansionModel< DisplacementDim > f_therm_exp_model
LiquidViscosityModel< DisplacementDim > mu_L_model
ThermoOsmosisModel< DisplacementDim > th_osmosis_model
BishopsPrevModel bishops_prev_model
SaturationModel< DisplacementDim > S_L_model
SolidMechanicsModel< DisplacementDim > s_mech_model
DarcyLawModel< DisplacementDim > darcy_model
SwellingModel< DisplacementDim > swelling_model
PermeabilityModel< DisplacementDim > perm_model
ElasticTangentStiffnessModel< DisplacementDim > elastic_tangent_stiffness_model
TransportPorosityModel< DisplacementDim > transport_poro_model
SolidThermalExpansionModel< DisplacementDim > s_therm_exp_model
BishopsModel bishops_model
LiquidDensityModel< DisplacementDim > rho_L_model
EqPModel< DisplacementDim > eq_p_model
SolidCompressibilityModel< DisplacementDim, SolidConstitutiveRelation< DisplacementDim > > solid_compressibility_model
TRMHeatStorageAndFluxModel< DisplacementDim > heat_storage_and_flux_model
void init(ConstitutiveModels< DisplacementDim > &models, double const t, double const dt, ParameterLib::SpatialPosition const &x_position, MediaData const &media_data, TemperatureData< DisplacementDim > const &T_data, StatefulData< DisplacementDim > &state, StatefulDataPrev< DisplacementDim > &prev_state) 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.
KelvinMatrix< DisplacementDim > C_el