27#ifndef OPM_CONSTANT_COMPRESSIBILITY_WATER_PVT_HPP
28#define OPM_CONSTANT_COMPRESSIBILITY_WATER_PVT_HPP
45template <
class Scalar>
59 void setVapPars(
const Scalar,
const Scalar)
70 { waterReferenceDensity_[regionIdx] = rhoRefWater; }
76 { waterReferencePressure_[regionIdx] = p; }
81 void setViscosity(
unsigned regionIdx, Scalar muw, Scalar waterViscosibility = 0.0)
83 waterViscosity_[regionIdx] = muw;
84 waterViscosibility_[regionIdx] = waterViscosibility;
91 { waterCompressibility_[regionIdx] = waterCompressibility; }
97 { waterReferenceFormationVolumeFactor_[regionIdx] = BwRef; }
103 { waterViscosibility_[regionIdx] = muComp; }
115 {
return waterReferenceDensity_.size(); }
120 template <
class Evaluation>
125 const Evaluation&)
const
127 throw std::runtime_error(
"Requested the enthalpy of water but the thermal "
128 "option is not enabled");
131 Scalar hVap(
unsigned)
const
133 throw std::runtime_error(
"Requested the hvap of oil but the thermal "
134 "option is not enabled");
140 template <
class Evaluation>
142 const Evaluation& temperature,
143 const Evaluation& pressure,
144 const Evaluation& saltconcentration)
const
146 Scalar BwMuwRef = waterViscosity_[regionIdx]*waterReferenceFormationVolumeFactor_[regionIdx];
149 Scalar pRef = waterReferencePressure_[regionIdx];
150 const Evaluation& Y =
151 (waterCompressibility_[regionIdx] - waterViscosibility_[regionIdx])
153 return BwMuwRef * bw / (1 + Y * (1 + Y / 2));
159 template <
class Evaluation>
161 const Evaluation& temperature,
162 const Evaluation& pressure,
163 const Evaluation& Rsw,
164 const Evaluation& saltconcentration)
const
166 Scalar BwMuwRef = waterViscosity_[regionIdx]*waterReferenceFormationVolumeFactor_[regionIdx];
169 Scalar pRef = waterReferencePressure_[regionIdx];
170 const Evaluation& Y =
171 (waterCompressibility_[regionIdx] - waterViscosibility_[regionIdx])
173 return BwMuwRef * bw / (1 + Y * (1 + Y / 2));
179 template <
class Evaluation>
181 const Evaluation& temperature,
182 const Evaluation& pressure,
183 const Evaluation& saltconcentration)
const
185 Evaluation Rsw = 0.0;
187 Rsw, saltconcentration);
193 template <
class Evaluation>
196 const Evaluation& pressure,
198 const Evaluation& )
const
200 Scalar pRef = waterReferencePressure_[regionIdx];
201 const Evaluation& X = waterCompressibility_[regionIdx]*(pressure - pRef);
203 Scalar BwRef = waterReferenceFormationVolumeFactor_[regionIdx];
206 return (1.0 + X * (1.0 + X / 2.0)) / BwRef;
209 template <
class Evaluation>
210 void inverseBAndMu(Evaluation& bw, Evaluation& muW,
unsigned regionIdx,
212 const Evaluation& pressure,
214 const Evaluation& )
const
216 inverseBAndMu(bw, muW, regionIdx,pressure);
219 template <
class Evaluation>
220 void inverseBAndMu(Evaluation& bw, Evaluation& muW,
unsigned regionIdx,
221 const Evaluation& pressure)
const
223 Scalar pRef = waterReferencePressure_[regionIdx];
224 const Evaluation& X = waterCompressibility_[regionIdx]*(pressure - pRef);
226 Scalar BwRef = waterReferenceFormationVolumeFactor_[regionIdx];
229 bw = (1.0 + X * (1.0 + X / 2.0)) / BwRef;
231 Scalar BwMuwRef = waterViscosity_[regionIdx]*BwRef;
233 const Evaluation& Y =
234 (waterCompressibility_[regionIdx] - waterViscosibility_[regionIdx])
236 muW = BwMuwRef * bw / (1 + Y * (1 + Y / 2));
246 template <
class Evaluation>
250 const Evaluation& )
const
253 template <
class Evaluation>
254 Evaluation diffusionCoefficient(
const Evaluation& ,
258 throw std::runtime_error(
"Not implemented: The PVT model does not provide "
259 "a diffusionCoefficient()");
265 template <
class Evaluation>
269 const Evaluation& )
const
272 Scalar waterReferenceDensity(
unsigned regionIdx)
const
273 {
return waterReferenceDensity_[regionIdx]; }
275 const std::vector<Scalar>& waterReferencePressure()
const
276 {
return waterReferencePressure_; }
278 const std::vector<Scalar>& waterReferenceFormationVolumeFactor()
const
279 {
return waterReferenceFormationVolumeFactor_; }
281 const std::vector<Scalar>& waterCompressibility()
const
282 {
return waterCompressibility_; }
284 const std::vector<Scalar>& waterViscosity()
const
285 {
return waterViscosity_; }
287 const std::vector<Scalar>& waterViscosibility()
const
288 {
return waterViscosibility_; }
291 std::vector<Scalar> waterReferenceDensity_{};
292 std::vector<Scalar> waterReferencePressure_{};
293 std::vector<Scalar> waterReferenceFormationVolumeFactor_{};
294 std::vector<Scalar> waterCompressibility_{};
295 std::vector<Scalar> waterViscosity_{};
296 std::vector<Scalar> waterViscosibility_{};
This class represents the Pressure-Volume-Temperature relations of the gas phase without vaporized oi...
Definition ConstantCompressibilityWaterPvt.hpp:47
void setReferenceFormationVolumeFactor(unsigned regionIdx, Scalar BwRef)
Set the water reference formation volume factor [-].
Definition ConstantCompressibilityWaterPvt.hpp:96
void setViscosibility(unsigned regionIdx, Scalar muComp)
Set the water "viscosibility" [1/ (Pa s)].
Definition ConstantCompressibilityWaterPvt.hpp:102
Evaluation saturationPressure(unsigned, const Evaluation &, const Evaluation &, const Evaluation &) const
Returns the saturation pressure of the water phase [Pa] depending on its mass fraction of the gas com...
Definition ConstantCompressibilityWaterPvt.hpp:247
Evaluation inverseFormationVolumeFactor(unsigned regionIdx, const Evaluation &, const Evaluation &pressure, const Evaluation &, const Evaluation &) const
Returns the formation volume factor [-] of the fluid phase.
Definition ConstantCompressibilityWaterPvt.hpp:194
void setCompressibility(unsigned regionIdx, Scalar waterCompressibility)
Set the compressibility of the water phase.
Definition ConstantCompressibilityWaterPvt.hpp:90
void setReferenceDensities(unsigned regionIdx, Scalar, Scalar, Scalar rhoRefWater)
Set the water reference density [kg / m^3].
Definition ConstantCompressibilityWaterPvt.hpp:66
unsigned numRegions() const
Return the number of PVT regions which are considered by this PVT-object.
Definition ConstantCompressibilityWaterPvt.hpp:114
void setReferencePressure(unsigned regionIdx, Scalar p)
Set the water reference pressure [Pa].
Definition ConstantCompressibilityWaterPvt.hpp:75
void initEnd()
Finish initializing the water phase PVT properties.
Definition ConstantCompressibilityWaterPvt.hpp:108
Evaluation viscosity(unsigned regionIdx, const Evaluation &temperature, const Evaluation &pressure, const Evaluation &Rsw, const Evaluation &saltconcentration) const
Returns the dynamic viscosity [Pa s] of the fluid phase given a set of parameters.
Definition ConstantCompressibilityWaterPvt.hpp:160
void setViscosity(unsigned regionIdx, Scalar muw, Scalar waterViscosibility=0.0)
Set the viscosity and "viscosibility" of the water phase.
Definition ConstantCompressibilityWaterPvt.hpp:81
Evaluation saturatedInverseFormationVolumeFactor(unsigned regionIdx, const Evaluation &temperature, const Evaluation &pressure, const Evaluation &saltconcentration) const
Returns the formation volume factor [-] of the fluid phase.
Definition ConstantCompressibilityWaterPvt.hpp:180
Evaluation saturatedViscosity(unsigned regionIdx, const Evaluation &temperature, const Evaluation &pressure, const Evaluation &saltconcentration) const
Returns the dynamic viscosity [Pa s] of the fluid phase given a set of parameters.
Definition ConstantCompressibilityWaterPvt.hpp:141
Evaluation internalEnergy(unsigned, const Evaluation &, const Evaluation &, const Evaluation &, const Evaluation &) const
Returns the specific enthalpy [J/kg] of water given a set of parameters.
Definition ConstantCompressibilityWaterPvt.hpp:121
Evaluation saturatedGasDissolutionFactor(unsigned, const Evaluation &, const Evaluation &, const Evaluation &) const
Returns the gas dissolution factor [m^3/m^3] of the water phase.
Definition ConstantCompressibilityWaterPvt.hpp:266
Definition EclipseState.hpp:63
Definition Schedule.hpp:101
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30