54 if (m < 0. || m > 1.0)
57 "The exponent parameter of WettingPhaseVanGenuchten relative\n"
58 " permeability model, m, must be in an interval of [0, 1]");
63 return std::make_unique<WettingPhaseVanGenuchten>(Sr, Smax, m, krel_min);
85 if (m < 0. || m > 1.0)
88 "The exponent parameter of NonWettingPhaseVanGenuchten relative\n"
89 " permeability model, m, must be in an interval of [0, 1]");
95 return std::make_unique<NonWettingPhaseVanGenuchten>(Sr, Smax, m, krel_min);
120 "The exponent parameter of WettingPhaseBrooksCoreyOilGas\n"
121 "relative permeability model, m, must not be smaller than 1");
127 return std::make_unique<WettingPhaseBrooksCoreyOilGas>(
128 Sr, Smax, m, krel_min);
153 "The exponent parameter of NonWettingPhaseBrooksCoreyOilGas\n"
154 "relative permeability model, m, must not be smaller than 1");
160 return std::make_unique<NonWettingPhaseBrooksCoreyOilGas>(
161 Sr, Smax, m, krel_min);
170 if (type ==
"WettingPhaseVanGenuchten")
174 if (type ==
"NonWettingPhaseVanGenuchten")
178 if (type ==
"WettingPhaseBrooksCoreyOilGas")
182 if (type ==
"NonWettingPhaseBrooksCoreyOilGas")
195 MathLib ::PiecewiseLinearInterpolation>(curve_config);
196 return std::make_unique<RelativePermeabilityCurve>(std::move(curve));
200 "The relative permeability model {:s} is unavailable.\n"
201 "The available models are:"
202 "\n\tWettingPhaseVanGenuchten,"
203 "\n\tNonWettingPhaseVanGenuchten,"
204 "\n\tWettingPhaseBrooksCoreyOilGas,"
205 "\n\tNonWettingPhaseBrooksCoreyOilGas,",
Definition of the PiecewiseLinearInterpolation class.
T peekConfigParameter(std::string const ¶m) const
T getConfigParameter(std::string const ¶m) const
ConfigTree getConfigSubtree(std::string const &root) const
void checkConfigParameter(std::string const ¶m, std::string_view const value) const
std::unique_ptr< RelativePermeability > createRelativePermeabilityModel(BaseLib::ConfigTree const &config)
std::unique_ptr< RelativePermeability > createWettingPhaseVanGenuchten(BaseLib::ConfigTree const &config)
std::unique_ptr< RelativePermeability > createNonWettingPhaseBrooksCoreyOilGas(BaseLib::ConfigTree const &config)
std::unique_ptr< RelativePermeability > createNonWettingPhaseVanGenuchten(BaseLib::ConfigTree const &config)
std::unique_ptr< RelativePermeability > createWettingPhaseBrooksCoreyOilGas(BaseLib::ConfigTree const &config)
std::unique_ptr< CurveType > createPiecewiseLinearCurve(BaseLib::ConfigTree const &config)