90 "SaturationVanGenuchtenWithVolumetricStrain::dValue is implemented "
91 "for derivatives with respect to capillary pressure only.");
102 double const n = 1. / (1. -
m_);
103 double const d_e = -1 * (1 +
e_0_) * e_vol /
e_0_;
105 double const p = p_cap /
p_b_;
106 double const p_to_n = std::pow(p, n);
107 double const S_eff_mi = std::pow(p_to_n + 1., -
m_);
108 double const p_M = p_cap / p_b_M;
109 double const p_to_n_M = std::pow(p_M, n);
110 double const S_eff_M = std::pow(p_to_n_M + 1., -
m_);
121 double const dS_eff_dp_cap =
122 (-(
e_m_)*n *
m_ * p_to_n * std::pow(p_to_n + 1., -
m_ - 1) -
124 std::pow(p_to_n_M + 1., -
m_ - 1)) /
125 ((
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