25#ifndef REGULARIZED_VAN_GENUCHTEN_HH
26#define REGULARIZED_VAN_GENUCHTEN_HH
28#warning "This header is deprecated. Removal after 3.3. Use new material laws."
71template <
class ScalarT,
class ParamsT = RegularizedVanGenuchtenParams<ScalarT> >
78 using Scalar =
typename Params::Scalar;
97 const Scalar swThLow = params.pcLowSw();
98 const Scalar swThHigh = params.pcHighSw();
108 else if (swe > swThHigh)
111 Scalar m1 = (0.0 - yTh)/(1.0 - swThHigh)*2;
123 return m1*(swe - 1.0) + 0.0;
151 const Scalar swThLow = params.pcLowSw();
152 const Scalar swThHigh = params.pcHighSw();
162 if (swThHigh > 1.0 - std::numeric_limits<Scalar>::epsilon())
167 Scalar m1 = (0.0 - yTh)/(1.0 - swThHigh)*2;
177 return (
pc - pcswLow)/mLow_(params) + swThLow;
179 else if (
sw > swThHigh)
182 Scalar m1 = (0.0 - yTh)/(1.0 - swThHigh)*2;
224 const Scalar swThLow = params.pcLowSw();
225 const Scalar swThHigh = params.pcHighSw();
230 return mLow_(params);
232 else if (swe > swThHigh)
235 Scalar m1 = (0.0 - yTh)/(1.0 - swThHigh)*2;
269 const Scalar swThLow = params.pcLowSw();
270 const Scalar swThHigh = params.pcHighSw();
278 if (swThHigh > 1.0 - std::numeric_limits<Scalar>::epsilon())
279 return std::numeric_limits<Scalar>::max();
282 Scalar m1 = (0.0 - yTh)/(1.0 - swThHigh)*2;
290 return 1/mLow_(params);
295 const Scalar m1 = (0.0 - yTh)/(1.0 - swThHigh)*2;
330 const Scalar swThHigh = params.krwHighSw();
334 else if (swe > 1 - std::numeric_limits<Scalar>::epsilon())
336 else if (swe > swThHigh) {
359 const Scalar swThHigh = params.krwHighSw();
365 else if (swe > 1 - std::numeric_limits<Scalar>::epsilon())
369 else if (swe > swThHigh) {
399 const Scalar swThLow = params.krnLowSw();
405 else if (swe < swThLow) {
428 const Scalar swThLow = params.krnLowSw();
434 else if (swe < swThLow) {
459 const Scalar swThLow = params.pcLowSw();
474 const Scalar swThHigh = params.pcHighSw();
479 if (swThHigh > 1.0 - std::numeric_limits<Scalar>::epsilon())
483 return (0 - pcswHigh)/(1.0 - swThHigh);
Provides 3rd order polynomial splines.
Parameters that are necessary for the regularization of VanGenuchten "material law".
Implementation of the capillary pressure and relative permeability <-> saturation relations according...
A 3rd order polynomial spline.
Definition: spline.hh:55
Scalar evalDerivative(Scalar x, bool extrapolate=false) const
Evaluate the spline's derivative at a given position.
Definition: splinecommon_.hh:175
Scalar intersectInterval(Scalar x0, Scalar x1, Scalar a, Scalar b, Scalar c, Scalar d) const
Find the intersections of the spline with a cubic polynomial in a sub-intervall of the spline,...
Definition: splinecommon_.hh:205
Scalar eval(Scalar x, bool extrapolate=false) const
Evaluate the spline at a given position.
Definition: splinecommon_.hh:141
Implementation of the regularized van Genuchten's capillary pressure / relative permeability <-> satu...
Definition: regularizedvangenuchten.hh:73
static Scalar dpc_dswe(const Params ¶ms, Scalar swe)
A regularized version of the partial derivative of the w.r.t. effective saturation according to van ...
Definition: regularizedvangenuchten.hh:220
static Scalar dkrw_dswe(const Params ¶ms, Scalar swe)
A regularized version of the derivative of the relative permeability for the wetting phase in regard ...
Definition: regularizedvangenuchten.hh:354
static Scalar endPointPc(const Params ¶ms)
The capillary pressure at Swe = 1.0 also called end point capillary pressure.
Definition: regularizedvangenuchten.hh:203
typename Params::Scalar Scalar
Definition: regularizedvangenuchten.hh:78
static Scalar sw(const Params ¶ms, Scalar pc)
A regularized van Genuchten saturation-capillary pressure curve.
Definition: regularizedvangenuchten.hh:147
static Scalar pc(const Params ¶ms, Scalar swe)
A regularized van Genuchten capillary pressure-saturation curve.
Definition: regularizedvangenuchten.hh:93
static Scalar krn(const Params ¶ms, Scalar swe)
Regularized version of the relative permeability for the nonwetting phase of the medium implied by th...
Definition: regularizedvangenuchten.hh:394
static Scalar dswe_dpc(const Params ¶ms, Scalar pc)
A regularized version of the partial derivative of the w.r.t. cap.pressure according to van Genuchte...
Definition: regularizedvangenuchten.hh:267
ParamsT Params
Definition: regularizedvangenuchten.hh:77
static Scalar krw(const Params ¶ms, Scalar swe)
Regularized version of the relative permeability for the wetting phase of the medium implied by the v...
Definition: regularizedvangenuchten.hh:325
static Scalar dkrn_dswe(const Params ¶ms, Scalar swe)
A regularized version of the derivative of the relative permeability for the nonwetting phase in rega...
Definition: regularizedvangenuchten.hh:423
Implementation of the van Genuchten capillary pressure <-> saturation relation. This class bundles th...
Definition: vangenuchten.hh:53
static Scalar dkrw_dswe(const Params ¶ms, Scalar swe)
The derivative of the relative permeability for the wetting phase in regard to the wetting saturation...
Definition: vangenuchten.hh:217
static Scalar sw(const Params ¶ms, Scalar pc)
The saturation-capillary pressure curve according to van Genuchten.
Definition: vangenuchten.hh:100
static Scalar dpc_dswe(const Params ¶ms, Scalar swe)
The partial derivative of the capillary pressure w.r.t. the effective saturation according to van Gen...
Definition: vangenuchten.hh:142
static Scalar krw(const Params ¶ms, Scalar swe)
The relative permeability for the wetting phase of the medium implied by van Genuchten / Mualem param...
Definition: vangenuchten.hh:192
static Scalar dswe_dpc(const Params ¶ms, Scalar pc)
The partial derivative of the effective saturation to the capillary pressure according to van Genucht...
Definition: vangenuchten.hh:167
static Scalar krn(const Params ¶ms, Scalar swe)
The relative permeability for the nonwetting phase of the medium implied by van Genuchten's parameter...
Definition: vangenuchten.hh:244
static Scalar pc(const Params ¶ms, Scalar swe)
The capillary pressure-saturation curve according to van Genuchten.
Definition: vangenuchten.hh:73
static Scalar dkrn_dswe(const Params ¶ms, Scalar swe)
The derivative of the relative permeability for the nonwetting phase in regard to the wetting saturat...
Definition: vangenuchten.hh:269