27 #ifndef OPM_REGULARIZED_VAN_GENUCHTEN_PARAMS_HPP
28 #define OPM_REGULARIZED_VAN_GENUCHTEN_PARAMS_HPP
45 template<
class TraitsT>
48 typedef typename TraitsT::Scalar Scalar;
55 typedef TraitsT Traits;
79 pcnwSlopeLow_ = dPcnw_dSw_(pcnwLowSw_);
81 pcnwSlopeHigh_ = 2*(0.0 - pcnwHigh_)/(1.0 - pcnwHighSw_);
83 Scalar mThreshold = dPcnw_dSw_(pcnwHighSw_);
85 pcnwHighSpline_.set(pcnwHighSw_, 1.0,
87 mThreshold, pcnwSlopeHigh_);
95 { EnsureFinalized::check();
return pcnwLowSw_; }
102 { EnsureFinalized::check();
return pcnwLow_; }
111 { EnsureFinalized::check();
return pcnwSlopeLow_; }
118 { pcnwLowSw_ = value; }
125 { EnsureFinalized::check();
return pcnwHighSw_; }
132 { EnsureFinalized::check();
return pcnwHigh_; }
139 { EnsureFinalized::check();
return pcnwHighSpline_; }
148 { EnsureFinalized::check();
return pcnwSlopeHigh_; }
155 { pcnwHighSw_ = value; }
158 Scalar dPcnw_dSw_(Scalar Sw)
const
162 const Scalar eps = 1e-7;
165 return (pc2 - pc1)/(2*eps);
174 Scalar pcnwSlopeLow_;
175 Scalar pcnwSlopeHigh_;
177 Spline<Scalar> pcnwHighSpline_;
Scalar pcnwLowSw() const
Return the threshold saturation below which the capillary pressure is regularized.
Definition: RegularizedVanGenuchtenParams.hpp:94
Scalar pcnwHighSw() const
Return the threshold saturation below which the capillary pressure is regularized.
Definition: RegularizedVanGenuchtenParams.hpp:124
Scalar pcnwSlopeLow() const
Return the slope capillary pressure curve if Sw is smaller or equal to the low threshold saturation...
Definition: RegularizedVanGenuchtenParams.hpp:110
Implementation of the van Genuchten capillary pressure - saturation relation.
Definition: VanGenuchten.hpp:55
Scalar vgN() const
Return the shape parameter of van Genuchten's curve.
Definition: VanGenuchtenParams.hpp:100
Specification of the material parameters for the van Genuchten constitutive relations.
Class implementing cubic splines.
Scalar pcnwHigh() const
Return the capillary pressure at the high threshold saturation of the wetting phase.
Definition: RegularizedVanGenuchtenParams.hpp:131
void setPCLowSw(Scalar value)
Set the threshold saturation below which the capillary pressure is regularized.
Definition: RegularizedVanGenuchtenParams.hpp:117
Scalar pcnwSlopeHigh() const
Return the slope capillary pressure curve if Sw is larger or equal to 1.
Definition: RegularizedVanGenuchtenParams.hpp:147
Specification of the material parameters for the van Genuchten constitutive relations.
Definition: VanGenuchtenParams.hpp:46
static Evaluation twoPhaseSatPcnw(const Params ¶ms, const Evaluation &Sw)
The saturation-capillary pressure curve according to van Genuchten using a material law specific API...
Definition: VanGenuchten.hpp:194
Scalar vgAlpha() const
Return the shape parameter of van Genuchten's curve.
Definition: VanGenuchtenParams.hpp:70
void finalize()
Mark the object as finalized.
Definition: EnsureFinalized.hpp:77
Implementation of the van Genuchten capillary pressure - saturation relation.
Parameters that are necessary for the regularization of VanGenuchten "material law".
Definition: RegularizedVanGenuchtenParams.hpp:46
const Spline< Scalar > & pcnwHighSpline() const
Return the spline curve which ought to be used between the upper threshold saturation and 1...
Definition: RegularizedVanGenuchtenParams.hpp:138
void finalize()
Calculate all dependent quantities once the independent quantities of the parameter object have been ...
Definition: RegularizedVanGenuchtenParams.hpp:74
Class implementing cubic splines.
Definition: Spline.hpp:92
void setPCHighSw(Scalar value)
Set the threshold saturation below which the capillary pressure is regularized.
Definition: RegularizedVanGenuchtenParams.hpp:154
Scalar pcnwLow() const
Return the capillary pressure at the low threshold saturation of the wetting phase.
Definition: RegularizedVanGenuchtenParams.hpp:101