OGS
ThermoRichardsMechanics/ConstitutiveStressSaturation_StrainPressureTemperature/ConstitutiveSetting.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include "ConstitutiveData.h"
11
13{
15{
16template <int DisplacementDim>
18{
20 double const /*t*/, double const /*dt*/,
21 ParameterLib::SpatialPosition const& /*x_position*/,
22 MediaData const& /*media_data*/,
23 TemperatureData<DisplacementDim> const& /*T_data*/,
25 StatefulDataPrev<DisplacementDim>& /*prev_state*/) const;
26
28 void eval(ConstitutiveModels<DisplacementDim>& models, double const t,
29 double const dt, ParameterLib::SpatialPosition const& x_position,
30 MaterialPropertyLib::Medium const& medium,
33 KelvinVector<DisplacementDim> const& eps_arg,
35 StatefulDataPrev<DisplacementDim> const& prev_state,
40
43 {
44 return std::get<TotalStressData<DisplacementDim>>(state).sigma_total;
45 }
48 {
49 return std::get<TotalStressData<DisplacementDim>>(state).sigma_total;
50 }
51
58 KelvinVector<DisplacementDim> const& pore_pressure_part)
59 {
60 auto& sigma_total =
61 std::get<TotalStressData<DisplacementDim>>(state).sigma_total;
62 sigma_total.noalias() -= pore_pressure_part;
63
64 (std::get<PrevState<TotalStressData<DisplacementDim>>>(prev_state)
65 ->sigma_total)
66 .noalias() = sigma_total;
67 }
68};
69
70extern template struct ConstitutiveSetting<2>;
71extern template struct ConstitutiveSetting<3>;
72} // namespace ConstitutiveStressSaturation_StrainPressureTemperature
73} // namespace ProcessLib::ThermoRichardsMechanics
KV::KelvinVectorType< DisplacementDim > KelvinVector
std::tuple< BiotModel, SolidMechanicsModel< DisplacementDim >, SolidCompressibilityModel< DisplacementDim, SolidConstitutiveRelation< DisplacementDim > >, BishopsModel, BishopsPrevModel, EffectiveStressModel< DisplacementDim >, 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< SolidMechanicsDataStateless< DisplacementDim >, EffectiveStressData< 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< 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.
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 void convertInitialStressType(StatefulData< DisplacementDim > &state, StatefulDataPrev< DisplacementDim > &prev_state, KelvinVector< DisplacementDim > const &pore_pressure_part)
void init(ConstitutiveModels< DisplacementDim > &, double const, double const, ParameterLib::SpatialPosition const &, MediaData const &, TemperatureData< DisplacementDim > const &, StatefulData< DisplacementDim > &, StatefulDataPrev< DisplacementDim > &) const