84 "SaturationVanGenuchtenWithVolumetricStrain::dValue is implemented "
85 "for derivatives with respect to capillary pressure only.");
96 double const n = 1. / (1. -
m_);
97 double const d_e = -1 * (1 +
e_0_) * e_vol /
e_0_;
99 double const p = p_cap /
p_b_;
100 double const p_to_n = std::pow(p, n);
101 double const S_eff_mi = std::pow(p_to_n + 1., -
m_);
102 double const p_M = p_cap / p_b_M;
103 double const p_to_n_M = std::pow(p_M, n);
104 double const S_eff_M = std::pow(p_to_n_M + 1., -
m_);
115 double const dS_eff_dp_cap =
116 (-(
e_m_)*n *
m_ * p_to_n * std::pow(p_to_n + 1., -
m_ - 1) -
118 std::pow(p_to_n_M + 1., -
m_ - 1)) /
119 ((
e_0_ - (
a_ * d_e)) * p_cap);
SaturationVanGenuchtenWithVolumetricStrain(std::string name, double const residual_liquid_saturation, double const residual_gas_saturation, double const exponent, double const p_b, double const e_0, double const e_m, double const a, double const d_diff)
std::variant< double, Eigen::Matrix< double, 2, 1 >, Eigen::Matrix< double, 3, 1 >, Eigen::Matrix< double, 2, 2 >, Eigen::Matrix< double, 3, 3 >, Eigen::Matrix< double, 4, 1 >, Eigen::Matrix< double, 6, 1 >, Eigen::MatrixXd > PropertyDataType