Loading [MathJax]/extensions/tex2jax.js
OGS
SolidDensity.cpp
Go to the documentation of this file.
1
10#include "SolidDensity.h"
11
12namespace ProcessLib::TH2M
13{
14namespace ConstitutiveRelations
15{
16
17template <int DisplacementDim>
19 SpaceTimeData const& x_t,
20 MediaData const& media_data,
21 TemperatureData const& T_data,
23 DisplacementDim> const& sigma_eff_data,
24 CapillaryPressureData const& p_cap,
25 GasPressureData const& p_GR,
26 BishopsData const& chi_S_L,
27 PorosityData const& poro_data,
28 SolidDensityData& solid_density_data) const
29{
31 variables.temperature = T_data.T;
32
33 double const p_FR = (1 - chi_S_L.chi_S_L) * p_GR.pG +
34 chi_S_L.chi_S_L * (p_GR.pG - p_cap.pCap);
35
36 auto const& identity2 = MathLib::KelvinVector::Invariants<
38 DisplacementDim)>::identity2;
39
40 variables.solid_grain_pressure =
41 p_FR -
42 sigma_eff_data.sigma_eff.dot(identity2) / (3 * (1 - poro_data.phi));
43
44 auto const& mpl_solid_density =
46
47 solid_density_data.rho_SR = mpl_solid_density.template value<double>(
48 variables, x_t.x, x_t.t, x_t.dt);
49}
50
51template <int DisplacementDim>
53 SpaceTimeData const& x_t,
54 MediaData const& media_data,
55 TemperatureData const& T_data,
57 DisplacementDim> const& sigma_eff_data,
58 CapillaryPressureData const& p_cap,
59 GasPressureData const& p_GR,
60 BishopsData const& chi_S_L,
61 PorosityData const& poro_data,
62 SolidDensityDerivativeData& solid_density_d_data) const
63{
65 variables.temperature = T_data.T;
66
67 double const p_FR = (1 - chi_S_L.chi_S_L) * p_GR.pG +
68 chi_S_L.chi_S_L * (p_GR.pG - p_cap.pCap);
69
70 auto const& identity2 = MathLib::KelvinVector::Invariants<
72 DisplacementDim)>::identity2;
73
74 variables.solid_grain_pressure =
75 p_FR -
76 sigma_eff_data.sigma_eff.dot(identity2) / (3 * (1 - poro_data.phi));
77
78 auto const& mpl_solid_density =
80
81 solid_density_d_data.drho_SR_dT = mpl_solid_density.template dValue<double>(
83 x_t.dt);
84}
85
86template struct SolidDensityModel<2>;
87template struct SolidDensityModel<3>;
88} // namespace ConstitutiveRelations
89} // namespace ProcessLib::TH2M
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.
ParameterLib::SpatialPosition x
Definition Base.h:74
MaterialPropertyLib::Phase const & solid
Definition Base.h:46
void eval(SpaceTimeData const &x_t, MediaData const &media_data, TemperatureData const &T_data, ProcessLib::ConstitutiveRelations::EffectiveStressData< DisplacementDim > const &sigma_eff_data, CapillaryPressureData const &p_cap, GasPressureData const &p_GR, BishopsData const &chi_S_L, PorosityData const &poro_data, SolidDensityData &solid_density_data) const
void dEval(SpaceTimeData const &x_t, MediaData const &media_data, TemperatureData const &T_data, ProcessLib::ConstitutiveRelations::EffectiveStressData< DisplacementDim > const &sigma_eff_data, CapillaryPressureData const &p_cap, GasPressureData const &p_GR, BishopsData const &chi_S_L, PorosityData const &poro_data, SolidDensityDerivativeData &solid_density_d_data) const