27 #ifndef OPM_REGULARIZED_BROOKS_COREY_PARAMS_HPP
28 #define OPM_REGULARIZED_BROOKS_COREY_PARAMS_HPP
44 template <
class TraitsT>
48 typedef ::Opm::BrooksCorey<TraitsT, RegularizedBrooksCoreyParams>
BrooksCorey;
49 typedef typename TraitsT::Scalar Scalar;
52 typedef TraitsT Traits;
73 pcnwLow_ = BrooksCorey::twoPhaseSatPcnw(*
this, pcnwLowSw_);
74 pcnwSlopeLow_ = dPcnw_dSw_(pcnwLowSw_);
75 pcnwHigh_ = BrooksCorey::twoPhaseSatPcnw(*
this, 1.0);
76 pcnwSlopeHigh_ = dPcnw_dSw_(1.0);
84 { EnsureFinalized::check();
return pcnwLowSw_; }
91 { EnsureFinalized::check();
return pcnwLow_; }
100 { EnsureFinalized::check();
return pcnwSlopeLow_; }
107 { pcnwLowSw_ = value; }
114 { EnsureFinalized::check();
return pcnwHigh_; }
123 { EnsureFinalized::check();
return pcnwSlopeHigh_; }
126 Scalar dPcnw_dSw_(Scalar Sw)
const
130 const Scalar eps = 1e-7;
134 if (Sw + eps < 1.0) {
135 pc2 = BrooksCorey::twoPhaseSatPcnw(*
this, Sw + eps);
139 pc2 = BrooksCorey::twoPhaseSatPcnw(*
this, Sw);
141 if (Sw - eps > 0.0) {
142 pc1 = BrooksCorey::twoPhaseSatPcnw(*
this, Sw - eps);
146 pc1 = BrooksCorey::twoPhaseSatPcnw(*
this, Sw);
148 return (pc2 - pc1)/delta;
153 Scalar pcnwSlopeLow_;
155 Scalar pcnwSlopeHigh_;
Specification of the material parameters for the Brooks-Corey constitutive relations.
Implementation of the Brooks-Corey capillary pressure <-> saturation relation.
Default implementation for asserting finalization of parameter objects.
Specification of the material parameters for the Brooks-Corey constitutive relations.
Definition: BrooksCoreyParams.hpp:47
Scalar lambda() const
Returns the lambda shape parameter.
Definition: BrooksCoreyParams.hpp:81
Scalar entryPressure() const
Returns the entry pressure [Pa].
Definition: BrooksCoreyParams.hpp:68
Implementation of the Brooks-Corey capillary pressure <-> saturation relation.
Definition: BrooksCorey.hpp:54
void finalize()
Mark the object as finalized.
Definition: EnsureFinalized.hpp:75
Parameters that are necessary for the regularization of the Brooks-Corey capillary pressure model.
Definition: RegularizedBrooksCoreyParams.hpp:46
Scalar pcnwSlopeHigh() const
Return the slope capillary pressure curve if Sw is larger or equal to 1.
Definition: RegularizedBrooksCoreyParams.hpp:122
Scalar pcnwLowSw() const
Return the threshold saturation below which the capillary pressure is regularized.
Definition: RegularizedBrooksCoreyParams.hpp:83
void finalize()
Calculate all dependent quantities once the independent quantities of the parameter object have been ...
Definition: RegularizedBrooksCoreyParams.hpp:69
Scalar pcnwLow() const
Return the capillary pressure at the low threshold saturation of the wetting phase.
Definition: RegularizedBrooksCoreyParams.hpp:90
Scalar pcnwSlopeLow() const
Return the slope capillary pressure curve if Sw is smaller or equal to the low threshold saturation.
Definition: RegularizedBrooksCoreyParams.hpp:99
Scalar pcnwHigh() const
Return the capillary pressure at the high threshold saturation of the wetting phase.
Definition: RegularizedBrooksCoreyParams.hpp:113
void setPcLowSw(Scalar value)
Set the threshold saturation below which the capillary pressure is regularized.
Definition: RegularizedBrooksCoreyParams.hpp:106