Loading [MathJax]/jax/output/HTML-CSS/config.js
OGS
TransportPorosity.cpp
Go to the documentation of this file.
1
10#include "TransportPorosity.h"
11
12namespace ProcessLib::TH2M
13{
14namespace ConstitutiveRelations
15{
16
17template <int DisplacementDim>
19 SpaceTimeData const& x_t, MediaData const& media_data,
20 SaturationData const& S_L_data,
21 PrevState<SaturationData> const& S_L_prev_data,
22 CapillaryPressureData const& p_cap, GasPressureData const& p_GR,
23 BishopsData const& chi_S_L, PrevState<BishopsData> const& chi_S_L_prev,
24 SolidCompressibilityData const& solid_compressibility,
27 PrevState<TransportPorosityData> const& transport_porosity_prev_data,
28 PorosityData const& poro_data,
29 TransportPorosityData& transport_porosity_data) const
30{
31 static int const KelvinVectorSize =
34
37
38 variables.grain_compressibility = solid_compressibility();
39
40 variables.liquid_saturation = S_L_data.S_L;
41 variables_prev.liquid_saturation = S_L_prev_data->S_L;
42
43 variables.effective_pore_pressure =
44 (1 - chi_S_L.chi_S_L) * p_GR.pG +
45 chi_S_L.chi_S_L * (p_GR.pG - p_cap.pCap);
46
47 // Used in MaterialLib/MPL/Properties/PorosityFromMassBalance.cpp
48 // and MaterialLib/MPL/Properties/TransportPorosityFromMassBalance.cpp
49 variables_prev.effective_pore_pressure =
50 (1 - chi_S_L_prev->chi_S_L) * p_GR.pG_prev +
51 chi_S_L_prev->chi_S_L * (p_GR.pG_prev - p_cap.pCap_prev);
52
54 Invariants::trace(eps_m_data.eps_m);
55 variables_prev.volumetric_mechanical_strain =
56 Invariants::trace(eps_m_prev_data->eps_m);
57
58 variables_prev.transport_porosity = transport_porosity_prev_data->phi;
59 variables.porosity = poro_data.phi;
60 transport_porosity_data.phi =
61 media_data.medium
63 .template value<double>(variables, variables_prev, x_t.x, x_t.t,
64 x_t.dt);
65}
66
67template <int DisplacementDim>
69 SpaceTimeData const& x_t, MediaData const& media_data,
70 SaturationData const& S_L_data,
71 PrevState<SaturationData> const& S_L_prev_data,
72 CapillaryPressureData const& p_cap, GasPressureData const& p_GR,
73 BishopsData const& chi_S_L, PrevState<BishopsData> const& chi_S_L_prev,
74 SolidCompressibilityData const& solid_compressibility,
77 PrevState<TransportPorosityData> const& transport_porosity_prev_data,
78 PorosityData const& poro_data,
79 TransportPorosityDerivativeData& transport_porosity_d_data) const
80{
81 static int const KelvinVectorSize =
84
87
88 variables.grain_compressibility = solid_compressibility();
89
90 variables.liquid_saturation = S_L_data.S_L;
91 variables_prev.liquid_saturation = S_L_prev_data->S_L;
92
93 variables.effective_pore_pressure =
94 (1 - chi_S_L.chi_S_L) * p_GR.pG +
95 chi_S_L.chi_S_L * (p_GR.pG - p_cap.pCap);
96
97 // Used in MaterialLib/MPL/Properties/PorosityFromMassBalance.cpp
98 // and MaterialLib/MPL/Properties/TransportPorosityFromMassBalance.cpp
99 variables_prev.effective_pore_pressure =
100 (1 - chi_S_L_prev->chi_S_L) * p_GR.pG_prev +
101 chi_S_L_prev->chi_S_L * (p_GR.pG_prev - p_cap.pCap_prev);
102
104 Invariants::trace(eps_m_data.eps_m);
105 variables_prev.volumetric_mechanical_strain =
106 Invariants::trace(eps_m_prev_data->eps_m);
107
108 variables_prev.transport_porosity = transport_porosity_prev_data->phi;
109 variables.porosity = poro_data.phi;
110
111 auto const& mpl_transport_porosity =
112 media_data
114
115 transport_porosity_d_data.dphi_dT =
116 mpl_transport_porosity.template dValue<double>(
117 variables, variables_prev,
119
120 transport_porosity_d_data.dphi_L_dp_cap =
121 mpl_transport_porosity.template dValue<double>(
122 variables, variables_prev,
124 x_t.dt);
125}
126
127template struct TransportPorosityModel<2>;
128template struct TransportPorosityModel<3>;
129} // namespace ConstitutiveRelations
130} // namespace ProcessLib::TH2M
Property const & property(PropertyType const &p) const
Definition Medium.cpp:54
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.
MathLib::KelvinVector::KelvinVectorType< DisplacementDim > eps_m
Represents a previous state of type T.
Definition Base.h:21
ParameterLib::SpatialPosition x
Definition Base.h:74
MaterialPropertyLib::Medium const & medium
Definition Base.h:45
void dEval(SpaceTimeData const &x_t, MediaData const &media_data, SaturationData const &S_L_data, PrevState< SaturationData > const &S_L_prev_data, CapillaryPressureData const &p_cap, GasPressureData const &p_GR, BishopsData const &chi_S_L, PrevState< BishopsData > const &chi_S_L_prev, SolidCompressibilityData const &solid_compressibility, MechanicalStrainData< DisplacementDim > const &eps_m_data, PrevState< MechanicalStrainData< DisplacementDim > > const &eps_m_prev_data, PrevState< TransportPorosityData > const &transport_porosity_prev_data, PorosityData const &poro_data, TransportPorosityDerivativeData &transport_porosity_d_data) const
void eval(SpaceTimeData const &x_t, MediaData const &media_data, SaturationData const &S_L_data, PrevState< SaturationData > const &S_L_prev_data, CapillaryPressureData const &p_cap, GasPressureData const &p_GR, BishopsData const &chi_S_L, PrevState< BishopsData > const &chi_S_L_prev, SolidCompressibilityData const &solid_compressibility, MechanicalStrainData< DisplacementDim > const &eps_m_data, PrevState< MechanicalStrainData< DisplacementDim > > const &eps_m_prev_data, PrevState< TransportPorosityData > const &transport_porosity_prev_data, PorosityData const &poro_data, TransportPorosityData &transport_porosity_data) const