78 double const dt)
const
83 "RelPermBrooksCorey::dValue is implemented for derivatives with "
84 "respect to liquid saturation only.");
91 auto const s_L = std::visit(
92 [&variable_array, &pos, t, dt](
auto&& scale) ->
double
103 auto const s_eff = (s_L - s_L_res) / (s_L_max - s_L_res);
104 if ((s_eff < 0.) || (s_eff > 1.))
109 auto const d_se_d_sL = 1. / (s_L_max - s_L_res);
110 auto const dk_rel_LRdse =
111 (3 * lambda + 2.) / lambda * std::pow(s_eff, 2. / lambda + 2.);
113 return dk_rel_LRdse * 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