27#ifndef OPM_REGULARIZED_VAN_GENUCHTEN_PARAMS_HPP
28#define OPM_REGULARIZED_VAN_GENUCHTEN_PARAMS_HPP
45template<
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_;
Class implementing cubic splines.
Specification of the material parameters for the van Genuchten constitutive relations.
Implementation of the van Genuchten capillary pressure - saturation relation.
void finalize()
Mark the object as finalized.
Definition EnsureFinalized.hpp:75
Parameters that are necessary for the regularization of VanGenuchten "material law".
Definition RegularizedVanGenuchtenParams.hpp:47
Scalar pcnwHigh() const
Return the capillary pressure at the high threshold saturation of the wetting phase.
Definition RegularizedVanGenuchtenParams.hpp:131
Scalar pcnwHighSw() const
Return the threshold saturation below which the capillary pressure is regularized.
Definition RegularizedVanGenuchtenParams.hpp:124
void finalize()
Calculate all dependent quantities once the independent quantities of the parameter object have been ...
Definition RegularizedVanGenuchtenParams.hpp:74
Scalar pcnwLow() const
Return the capillary pressure at the low threshold saturation of the wetting phase.
Definition RegularizedVanGenuchtenParams.hpp:101
Scalar pcnwLowSw() const
Return the threshold saturation below which the capillary pressure is regularized.
Definition RegularizedVanGenuchtenParams.hpp:94
void setPCLowSw(Scalar value)
Set the threshold saturation below which the capillary pressure is regularized.
Definition RegularizedVanGenuchtenParams.hpp:117
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 setPCHighSw(Scalar value)
Set the threshold saturation below which the capillary pressure is regularized.
Definition RegularizedVanGenuchtenParams.hpp:154
Scalar pcnwSlopeLow() const
Return the slope capillary pressure curve if Sw is smaller or equal to the low threshold saturation.
Definition RegularizedVanGenuchtenParams.hpp:110
Scalar pcnwSlopeHigh() const
Return the slope capillary pressure curve if Sw is larger or equal to 1.
Definition RegularizedVanGenuchtenParams.hpp:147
Class implementing cubic splines.
Definition Spline.hpp:91
Specification of the material parameters for the van Genuchten constitutive relations.
Definition VanGenuchtenParams.hpp:45
Scalar vgN() const
Return the shape parameter of van Genuchten's curve.
Definition VanGenuchtenParams.hpp:98
Scalar vgAlpha() const
Return the shape parameter of van Genuchten's curve.
Definition VanGenuchtenParams.hpp:68
Implementation of the van Genuchten capillary pressure - saturation relation.
Definition VanGenuchten.hpp:56
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
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30