30#ifndef _GEMA_PLUGIN_HYDRAULIC_MATERIAL_VANGENUCHTEN_H_
31#define _GEMA_PLUGIN_HYDRAULIC_MATERIAL_VANGENUCHTEN_H_
33namespace GmpHydraulicMaterialVanGenuchten
38 double liquidSaturation(
double Pc,
double Slr,
double Sgr,
double Pb,
double lambda)
46 Sl = Slr + (1.0 - Slr - Sgr) * std::pow(1.0 + std::pow(Pc / Pb, lambda), (1.0 - lambda) / lambda);
50 Sl = std::min(Sl, 1.0 - Sgr - std::numeric_limits<double>::epsilon());
51 Sl = std::max(Sl, Slr + std::numeric_limits<double>::epsilon());
64 double Se = (Sl - Slr) / (1.0 - Sgr - Slr);
67 double m = 1.0 - 1.0 / lambda;
68 double v1 = std::pow(Se, (-1.0 / m));
69 double v2 = std::pow(v1 - 1.0, -m);
70 double dPcdSl = (Pb * (m - 1.0) * v1 * v2) / (m * (Sl - Slr));
81 double m = 1.0 - 1.0 / lambda;
82 double klr = std::sqrt(Se) * std::pow(1.0 - std::pow(1.0 - std::pow(Se, 1.0 / m), m), 2);
94 double m = 1.0 - 1.0 / lambda;
95 double kgr = std::pow(1.0 - Se, 1.0 / 3.0) * std::pow(1.0 - std::pow(Se, 1.0 / m), 2.0 * m);
double derivativeLiquidSaturation(double Sl, double Slr, double Sgr, double Pb, double lambda)
Returns the derivative water saturation in relation to Pc.
Definition gmpMaterialBrooksCorey.h:61
double gasRelativePermeability(double Se, double lambda)
Returns the gas fluid relative permeability.
Definition gmpMaterialBrooksCorey.h:98
double liquidRelativePermeability(double Se, double lambda)
Returns the liquid-phase relative permeability.
Definition gmpMaterialBrooksCorey.h:76