68 double const dt)
const
70 auto const& medium = *std::get<Medium*>(
scale_);
74 double prop_value_frozen = 0;
81 phi_fr = std::get<double>(fraction.value(variable_array, pos, t, dt));
82 prop_value_frozen = std::get<double>(
83 properties_.frozen->value(variable_array, pos, t, dt));
87 std::get<double>(
porosity.value(variable_array, pos, t, dt));
88 auto const prop_value_liquid =
89 std::get<double>(
properties_.liquid->value(variable_array, pos, t, dt));
90 auto const prop_value_porous =
91 std::get<double>(
properties_.porous->value(variable_array, pos, t, dt));
93 return (phi - phi_fr) * prop_value_liquid + phi_fr * prop_value_frozen +
94 (1 - phi) * prop_value_porous;
100 double const dt)
const
104 "VolumeFractionAverage::dValue is implemented for "
105 "derivatives with respect to temperature only.");
107 double dphi_fr_dT = 0;
108 double prop_value_frozen = 0;
110 auto const& medium = *std::get<Medium*>(
scale_);
114 dphi_fr_dT = std::get<double>(
116 prop_value_frozen = std::get<double>(
117 properties_.frozen->value(variable_array, pos, t, dt));
120 double prop_value_liquid =
121 std::get<double>(
properties_.liquid->value(variable_array, pos, t, dt));
123 return (prop_value_frozen - prop_value_liquid) * dphi_fr_dT;
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