OGS
Porosity.cpp
Go to the documentation of this file.
1
10#include "Porosity.h"
11
12namespace ProcessLib::TH2M
13{
14namespace ConstitutiveRelations
15{
16
18 MediaData const& media_data,
19 PorosityData& porosity_data) const
20{
22
23 auto const& mpl_porosity =
25
26 porosity_data.phi =
27 mpl_porosity.template value<double>(variables, x_t.x, x_t.t, x_t.dt);
28}
29
30void PorosityModel::dEval(SpaceTimeData const& x_t, MediaData const& media_data,
31 PorosityData const& porosity_data,
32 SaturationDataDeriv const& dS_L_dp_cap,
33 PorosityDerivativeData& porosity_d_data) const
34{
36
37 auto const& mpl_porosity =
39
40 porosity_d_data.dphi_dT = mpl_porosity.template dValue<double>(
42 x_t.dt);
43
44 porosity_d_data.dphi_L_dp_cap = dS_L_dp_cap() * porosity_data.phi;
45}
46
47template <int DisplacementDim>
49 SpaceTimeData const& x_t,
50 MediaData const& media_data,
51 BiotData const& biot,
52 StrainData<DisplacementDim> const& strain_data,
53 SolidThermalExpansionData<DisplacementDim> const& s_therm_exp_data,
54 PorosityData& porosity_data) const
55{
57
58 auto const& mpl_porosity =
60
61 double const phi_0 =
62 mpl_porosity.template value<double>(variables, x_t.x, x_t.t, x_t.dt);
63
64 static int const KelvinVectorSize =
67 double const div_u = Invariants::trace(strain_data.eps);
68
69 double const phi_S =
70 (1. - phi_0) *
71 (1. + s_therm_exp_data.thermal_volume_strain - biot() * div_u);
72
73 porosity_data.phi = 1. - phi_S;
74}
75
76template <int DisplacementDim>
78 SpaceTimeData const& x_t,
79 MediaData const& media_data,
80 PorosityData const& porosity_data,
81 SaturationDataDeriv const& dS_L_dp_cap,
82 BiotData const& biot,
83 SolidThermalExpansionData<DisplacementDim> const& s_therm_exp_data,
84 StrainData<DisplacementDim> const& strain_data,
85 PorosityDerivativeData& porosity_d_data) const
86{
88
89 auto const& mpl_porosity =
91
92 double const phi_0 =
93 mpl_porosity.template value<double>(variables, x_t.x, x_t.t, x_t.dt);
94
95 static int const KelvinVectorSize =
98 double const div_u = Invariants::trace(strain_data.eps);
99
100 auto const dphi_0_dT = mpl_porosity.template dValue<double>(
102 x_t.dt);
103
104 porosity_d_data.dphi_dT =
105 dphi_0_dT *
106 (1. + s_therm_exp_data.thermal_volume_strain - biot() * div_u) -
107 (1. - phi_0) * s_therm_exp_data.beta_T_SR;
108
109 porosity_d_data.dphi_L_dp_cap = dS_L_dp_cap() * porosity_data.phi;
110}
111
114} // namespace ConstitutiveRelations
115} // 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
MathLib::KelvinVector::KelvinVectorType< DisplacementDim > eps
Definition StrainData.h:20
MaterialPropertyLib::Medium const & medium
Definition Base.h:45
void eval(SpaceTimeData const &x_t, MediaData const &media_data, BiotData const &biot, StrainData< DisplacementDim > const &strain_data, SolidThermalExpansionData< DisplacementDim > const &s_therm_exp_data, PorosityData &porosity_data) const
Definition Porosity.cpp:48
void dEval(SpaceTimeData const &x_t, MediaData const &media_data, PorosityData const &porosity_data, SaturationDataDeriv const &dS_L_dp_cap, BiotData const &biot, SolidThermalExpansionData< DisplacementDim > const &s_therm_exp_data, StrainData< DisplacementDim > const &strain_data, PorosityDerivativeData &porosity_d_data) const
Definition Porosity.cpp:77
void dEval(SpaceTimeData const &x_t, MediaData const &media_data, PorosityData const &porosity_data, SaturationDataDeriv const &dS_L_dp_cap, PorosityDerivativeData &porosity_d_data) const
Definition Porosity.cpp:30
void eval(SpaceTimeData const &x_t, MediaData const &media_data, PorosityData &porosity_data) const
Definition Porosity.cpp:17