10template <
int DisplacementDim>
31 auto const S_L = S_L_data.
S_L;
32 auto const S_G = 1. - S_L;
33 double const rho_C_FR = S_G * constituent_density_data.
rho_C_GR +
34 S_L * constituent_density_data.
rho_C_LR;
36 porosity_data.
phi * (constituent_density_data.
rho_C_LR -
38 rho_C_FR * pCap.
pCap * (biot_data() - porosity_data.
phi) * beta_p_SR();
52 double const S_L = S_L_data.
S_L;
53 double const S_G = 1. - S_L;
55 double const drho_C_FR_dp_GR =
62 drho_C_FR_dp_GR * pCap.
pCap *
63 (biot_data() - porosity_data.
phi) * beta_p_SR();
65 double const dS_G_dp_cap = -dS_L_dp_cap();
66 double const rho_C_FR = S_G * constituent_density_data.
rho_C_GR +
67 S_L * constituent_density_data.
rho_C_LR;
70 constexpr double drho_C_GR_dp_cap = 0;
72 double const drho_C_FR_dp_cap =
73 dS_G_dp_cap * constituent_density_data.
rho_C_GR +
74 S_G * drho_C_GR_dp_cap +
75 dS_L_dp_cap() * constituent_density_data.
rho_C_LR -
81 drho_C_FR_dp_cap * pCap.
pCap * (biot_data() - porosity_data.
phi) *
83 rho_C_FR * (biot_data() - porosity_data.
phi) * beta_p_SR();
85 double const drho_C_FR_dT = S_G * phase_transition_data.
drho_C_GR_dT +
91 drho_C_FR_dT * pCap.
pCap * (biot_data() - porosity_data.
phi) *
93 rho_C_FR * pCap.
pCap * porosity_d_data.
dphi_dT * beta_p_SR();
109 double const rho_C_GR_dot = (constituent_density_data.
rho_C_GR -
110 constituent_density_data_prev->rho_C_GR) /
112 double const rho_C_LR_dot = (constituent_density_data.
rho_C_LR -
113 constituent_density_data_prev->rho_C_LR) /
115 auto const S_L = S_L_data.
S_L;
116 auto const S_G = 1. - S_L;
117 fC_3a.
a = S_G * rho_C_GR_dot + S_L * rho_C_LR_dot;
136 double const rho_C_GR_dot = (constituent_density_data.
rho_C_GR -
137 constituent_density_data_prev->rho_C_GR) /
139 double const rho_C_LR_dot = (constituent_density_data.
rho_C_LR -
140 constituent_density_data_prev->rho_C_LR) /
143 auto const S_L = S_L_data.
S_L;
144 auto const S_G = 1. - S_L;
151 double const dS_G_dp_cap = -dS_L_dp_cap();
153 constexpr double drho_C_GR_dp_cap = 0;
155 dfC_3a.
dp_cap = dS_G_dp_cap * rho_C_GR_dot + S_G * drho_C_GR_dp_cap / dt +
156 dS_L_dp_cap() * rho_C_LR_dot -
163template <
int DisplacementDim>
178 double const phi_G = (1 - S_L_data.
S_L) * porosity_data.
phi;
179 double const phi_L = S_L_data.
S_L * porosity_data.
phi;
181 double const diffusion_CGpGR = -phi_G * fluid_density_data.
rho_GR * sD_G *
183 double const diffusion_CLpGR = -phi_L * fluid_density_data.
rho_LR * sD_L *
186 double const diffusion_C_pGR = diffusion_CGpGR + diffusion_CLpGR;
189 Eigen::Matrix<double, DisplacementDim, DisplacementDim>::Identity();
190 fC_4_LCpG.
L.noalias() = diffusion_C_pGR * I + advection_C;
193template <
int DisplacementDim>
210 permeability_data.
Ki * permeability_data.
k_rel_G / viscosity_data.
mu_GR;
212 permeability_data.
Ki * permeability_data.
k_rel_L / viscosity_data.
mu_LR;
214 dfC_4_LCpG.
dT = phase_transition_data.
drho_C_GR_dT * k_over_mu_G +
223template <
int DisplacementDim>
235 double const phi_G = (1 - S_L_data.
S_L) * porosity_data.
phi;
236 double const phi_L = S_L_data.
S_L * porosity_data.
phi;
238 double const diffusion_CGpCap = -phi_G * fluid_density_data.
rho_GR * sD_G *
240 double const diffusion_CLpCap = -phi_L * fluid_density_data.
rho_LR * sD_L *
243 double const diffusion_C_pCap = diffusion_CGpCap + diffusion_CLpCap;
246 Eigen::Matrix<double, DisplacementDim, DisplacementDim>::Identity();
248 fC_4_LCpC.
L.noalias() = diffusion_C_pCap * I - advection_data.
advection_C_L;
251template <
int DisplacementDim>
265 permeability_data.
Ki * permeability_data.
k_rel_L / viscosity_data.
mu_LR;
271 auto const dk_over_mu_L_dp_cap = permeability_data.
Ki *
273 dS_L_dp_cap() / viscosity_data.
mu_LR;
276 constituent_density_data.
rho_C_LR * dk_over_mu_L_dp_cap;
286template <
int DisplacementDim>
297 double const phi_G = (1 - S_L_data.
S_L) * porosity_data.
phi;
298 double const phi_L = S_L_data.
S_L * porosity_data.
phi;
300 double const diffusion_C_G_T = -phi_G * fluid_density_data.
rho_GR * sD_G *
302 double const diffusion_C_L_T = -phi_L * fluid_density_data.
rho_LR * sD_L *
305 double const diffusion_C_T = diffusion_C_G_T + diffusion_C_L_T;
308 Eigen::Matrix<double, DisplacementDim, DisplacementDim>::Identity();
310 fC_4_LCT.
L.noalias() = diffusion_C_T * I;
323 auto const S_L = S_L_data.
S_L;
324 auto const S_G = 1. - S_L;
325 double const rho_C_FR = S_G * constituent_density_data.
rho_C_GR +
326 S_L * constituent_density_data.
rho_C_LR;
328 fC_4_MCpG.
m = rho_C_FR * (biot_data() - porosity_data.
phi) * beta_p_SR();
340 auto const S_L = S_L_data.
S_L;
341 auto const S_G = 1. - S_L;
342 double const rho_C_FR = S_G * constituent_density_data.
rho_C_GR +
343 S_L * constituent_density_data.
rho_C_LR;
345 double const drho_C_FR_dp_GR =
352 drho_C_FR_dp_GR * (biot_data() - porosity_data.
phi) * beta_p_SR();
354 double const drho_C_FR_dT = S_G * phase_transition_data.
drho_C_GR_dT +
357 drho_C_FR_dT * (biot_data() - porosity_data.
phi) * beta_p_SR() -
358 rho_C_FR * porosity_d_data.
dphi_dT * beta_p_SR();
370 auto const S_L = S_L_data.
S_L;
371 auto const S_G = 1. - S_L;
372 double const rho_C_FR = S_G * constituent_density_data.
rho_C_GR +
373 S_L * constituent_density_data.
rho_C_LR;
376 -rho_C_FR * (biot_data() - porosity_data.
phi) * beta_p_SR() * S_L;
378 fC_4_MCpC.
ml = (porosity_data.
phi * (constituent_density_data.
rho_C_LR -
379 constituent_density_data.
rho_C_GR) -
380 rho_C_FR * pCap.
pCap * (biot_data() - porosity_data.
phi) *
382 (S_L - S_L_data_prev->S_L);
385template <
int DisplacementDim>
394 auto const S_L = S_L_data.
S_L;
395 auto const S_G = 1. - S_L;
396 double const rho_C_FR = S_G * constituent_density_data.
rho_C_GR +
397 S_L * constituent_density_data.
rho_C_LR;
399 fC_4_MCT.
m = -rho_C_FR * (biot_data() - porosity_data.
phi) *
403template <
int DisplacementDim>
414 auto const S_L = S_L_data.
S_L;
415 auto const S_G = 1. - S_L;
416#ifdef NON_CONSTANT_SOLID_PHASE_VOLUME_FRACTION
417 double const rho_C_FR = S_G * constituent_density_data.rho_C_GR +
418 S_L * constituent_density_data.rho_C_LR;
421 double const drho_C_FR_dT = S_G * phase_transition_data.
drho_C_GR_dT +
424 dfC_4_MCT.
dT = drho_C_FR_dT * (biot_data() - porosity_data.
phi) *
426#ifdef NON_CONSTANT_SOLID_PHASE_VOLUME_FRACTION
427 + rho_C_FR * (biot_data() - porosity_d_data.dphi_dT) *
441 auto const S_L = S_L_data.
S_L;
442 auto const S_G = 1. - S_L;
443 double const rho_C_FR = S_G * constituent_density_data.
rho_C_GR +
444 S_L * constituent_density_data.
rho_C_LR;
446 fC_4_MCu.
m = rho_C_FR * biot_data();
454 auto const S_L = S_L_data.
S_L;
455 auto const S_G = 1. - S_L;
456 double const drho_C_FR_dT = S_G * phase_transition_data.
drho_C_GR_dT +
458 dfC_4_MCu.
dT = drho_C_FR_dT * biot_data();
Eigen::Matrix< double, DisplacementDim, DisplacementDim, Eigen::RowMajor > GlobalDimMatrix
BaseLib::StrongType< double, struct SolidCompressibilityDataTag > SolidCompressibilityData
BaseLib::StrongType< double, struct SaturationDataDerivTag > SaturationDataDeriv
BaseLib::StrongType< double, struct BiotTag > BiotData
Represents a previous state of type T.
GlobalDimMatrix< DisplacementDim > advection_C_G
GlobalDimMatrix< DisplacementDim > advection_C_L
GlobalDimMatrix< DisplacementDim > dadvection_C_dp_cap
GlobalDimMatrix< DisplacementDim > dadvection_C_dp_GR
Real constituent partial densities.
GlobalDimMatrix< DisplacementDim > A
void eval(AdvectionData< DisplacementDim > const &advection_data, FluidDensityData const &fluid_density_data, FC1Data< DisplacementDim > &fC_1) const
void dEval(BiotData const &biot_data, CapillaryPressureData const pCap, ConstituentDensityData const &constituent_density_data, PhaseTransitionData const &phase_transition_data, PorosityData const &porosity_data, PorosityDerivativeData const &porosity_d_data, SaturationData const &S_L_data, SaturationDataDeriv const &dS_L_dp_cap, SolidCompressibilityData const &beta_p_SR, FC2aDerivativeData &dfC_2a) const
void eval(BiotData const biot_data, CapillaryPressureData const pCap, ConstituentDensityData const &constituent_density_data, PorosityData const &porosity_data, SaturationData const &S_L_data, SolidCompressibilityData const beta_p_SR, FC2aData &fC_2a) const
void eval(double const dt, ConstituentDensityData const &constituent_density_data, PrevState< ConstituentDensityData > const &constituent_density_data_prev, SaturationData const &S_L_data, FC3aData &fC_3a) const
void dEval(double const dt, ConstituentDensityData const &constituent_density_data, PrevState< ConstituentDensityData > const &constituent_density_data_prev, PhaseTransitionData const &phase_transition_data, SaturationData const &S_L_data, SaturationDataDeriv const &dS_L_dp_cap, FC3aDerivativeData &dfC_3a) const
GlobalDimMatrix< DisplacementDim > L
void eval(FluidDensityData const &fluid_density_data, PhaseTransitionData const &phase_transition_data, PorosityData const &porosity_data, SaturationData const &S_L_data, FC4LCTData< DisplacementDim > &fC_4_LCT) const
GlobalDimMatrix< DisplacementDim > L
GlobalDimMatrix< DisplacementDim > dp_cap
GlobalDimMatrix< DisplacementDim > dT
GlobalDimMatrix< DisplacementDim > dp_GR
void eval(AdvectionData< DisplacementDim > const &advection_data, FluidDensityData const &fluid_density_data, PhaseTransitionData const &phase_transition_data, PorosityData const &porosity_data, SaturationData const &S_L_data, FC4LCpCData< DisplacementDim > &fC_4_LCpC) const
void dEval(ConstituentDensityData const &constituent_density_data, PermeabilityData< DisplacementDim > const &permeability_data, PhaseTransitionData const &phase_transition_data, SaturationDataDeriv const &dS_L_dp_cap, ViscosityData const &viscosity_data, FC4LCpCDerivativeData< DisplacementDim > &dfC_4_LCpC) const
GlobalDimMatrix< DisplacementDim > L
GlobalDimMatrix< DisplacementDim > dT
GlobalDimMatrix< DisplacementDim > dp_GR
GlobalDimMatrix< DisplacementDim > dp_cap
void dEval(PermeabilityData< DisplacementDim > const &permeability_data, ViscosityData const &viscosity_data, PhaseTransitionData const &phase_transition_data, AdvectionDerivativeData< DisplacementDim > const &advection_d_data, FC4LCpGDerivativeData< DisplacementDim > &dfC_4_LCpG) const
void eval(AdvectionData< DisplacementDim > const &advection_data, FluidDensityData const &fluid_density_data, PhaseTransitionData const &phase_transition_data, PorosityData const &porosity_data, SaturationData const &S_L_data, FC4LCpGData< DisplacementDim > &fC_4_LCpG) const
void dEval(BiotData const &biot_data, ConstituentDensityData const &constituent_density_data, PhaseTransitionData const &phase_transition_data, PorosityData const &porosity_data, PorosityDerivativeData const &porosity_d_data, SaturationData const &S_L_data, SolidThermalExpansionData< DisplacementDim > const &s_therm_exp_data, FC4MCTDerivativeData &dfC_4_MCT) const
void eval(BiotData const &biot_data, ConstituentDensityData const &constituent_density_data, PorosityData const &porosity_data, SaturationData const &S_L_data, SolidThermalExpansionData< DisplacementDim > const &s_therm_exp_data, FC4MCTData &fC_4_MCT) const
void eval(BiotData const &biot_data, CapillaryPressureData const pCap, ConstituentDensityData const &constituent_density_data, PorosityData const &porosity_data, PrevState< SaturationData > const &S_L_data_prev, SaturationData const &S_L_data, SolidCompressibilityData const &beta_p_SR, FC4MCpCData &fC_4_MCpC) const
void eval(BiotData const &biot_data, ConstituentDensityData const &constituent_density_data, PorosityData const &porosity_data, SaturationData const &S_L_data, SolidCompressibilityData const &beta_p_SR, FC4MCpGData &fC_4_MCpG) const
void dEval(BiotData const &biot_data, ConstituentDensityData const &constituent_density_data, PhaseTransitionData const &phase_transition_data, PorosityData const &porosity_data, PorosityDerivativeData const &porosity_d_data, SaturationData const &S_L_data, SolidCompressibilityData const &beta_p_SR, FC4MCpGDerivativeData &dfC_4_MCpG) const
void eval(BiotData const &biot_data, ConstituentDensityData const &constituent_density_data, SaturationData const &S_L_data, FC4MCuData &fC_4_MCu) const
void dEval(BiotData const &biot_data, PhaseTransitionData const &phase_transition_data, SaturationData const &S_L_data, FC4MCuDerivativeData &dfC_4_MCu) const
GlobalDimMatrix< DisplacementDim > Ki
double diffusion_coefficient_solute
static constexpr double drho_C_LR_dp_LR
static constexpr double drho_C_LR_dT
static constexpr double drho_C_LR_dp_GR
double diffusion_coefficient_vapour