30 double const dt)
const
36 auto const s_L = std::visit(
37 [&variable_array, &pos, t, dt](
auto&& scale) ->
double
49 auto const s_eff = (s_L - s_L_res) / (s_L_max - s_L_res);
62 auto const k_rel_GR = (1. - s_eff) * (1. - s_eff) *
63 (1. - std::pow(s_eff, (2. + lambda) / lambda));
70 double const dt)
const
75 "RelPermBrooksCoreyNonwettingPhase::dValue is implemented for "
76 "derivatives with respect to liquid saturation only.");
82 auto const s_L = std::visit(
83 [&variable_array, &pos, t, dt](
auto&& scale) ->
double
94 auto const s_eff = (s_L - s_L_res) / (s_L_max - s_L_res);
95 if ((s_eff < 0.) || (s_eff > 1.))
100 auto const twoL_L = (2. + lambda) / lambda;
101 auto const d_se_d_sL = 1. / (s_L_max - s_L_res);
102 auto const dk_rel_GRdse =
103 -2. * (1 - s_eff) * (1. - std::pow(s_eff, twoL_L)) -
104 twoL_L * std::pow(s_eff, twoL_L - 1.) * (1. - s_eff) * (1. - s_eff);
106 return dk_rel_GRdse * d_se_d_sL;
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