27#ifndef OPM_CONSTANT_COMPRESSIBILITY_WATER_PVT_HPP
28#define OPM_CONSTANT_COMPRESSIBILITY_WATER_PVT_HPP
45template <
class Scalar>
61 waterReferenceFormationVolumeFactor_.resize(
numRegions);
66 for (
unsigned regionIdx = 0; regionIdx <
numRegions; ++regionIdx) {
73 void setVapPars(
const Scalar,
const Scalar)
84 { waterReferenceDensity_[regionIdx] = rhoRefWater; }
90 { waterReferencePressure_[regionIdx] = p; }
95 void setViscosity(
unsigned regionIdx, Scalar muw, Scalar waterViscosibility = 0.0)
97 waterViscosity_[regionIdx] = muw;
98 waterViscosibility_[regionIdx] = waterViscosibility;
105 { waterCompressibility_[regionIdx] = waterCompressibility; }
111 { waterReferenceFormationVolumeFactor_[regionIdx] = BwRef; }
117 { waterViscosibility_[regionIdx] = muComp; }
129 {
return waterReferenceDensity_.size(); }
134 template <
class Evaluation>
139 const Evaluation&)
const
141 throw std::runtime_error(
"Requested the enthalpy of water but the thermal option is not enabled");
148 template <
class Evaluation>
150 const Evaluation& temperature,
151 const Evaluation& pressure,
152 const Evaluation& saltconcentration)
const
154 Scalar BwMuwRef = waterViscosity_[regionIdx]*waterReferenceFormationVolumeFactor_[regionIdx];
157 Scalar pRef = waterReferencePressure_[regionIdx];
158 const Evaluation& Y =
159 (waterCompressibility_[regionIdx] - waterViscosibility_[regionIdx])
161 return BwMuwRef*bw/(1 + Y*(1 + Y/2));
166 template <
class Evaluation>
168 const Evaluation& temperature,
169 const Evaluation& pressure,
170 const Evaluation& Rsw,
171 const Evaluation& saltconcentration)
const
173 Scalar BwMuwRef = waterViscosity_[regionIdx]*waterReferenceFormationVolumeFactor_[regionIdx];
176 Scalar pRef = waterReferencePressure_[regionIdx];
177 const Evaluation& Y =
178 (waterCompressibility_[regionIdx] - waterViscosibility_[regionIdx])
180 return BwMuwRef*bw/(1 + Y*(1 + Y/2));
186 template <
class Evaluation>
188 const Evaluation& temperature,
189 const Evaluation& pressure,
190 const Evaluation& saltconcentration)
const
192 Evaluation Rsw = 0.0;
199 template <
class Evaluation>
202 const Evaluation& pressure,
204 const Evaluation& )
const
206 Scalar pRef = waterReferencePressure_[regionIdx];
207 const Evaluation& X = waterCompressibility_[regionIdx]*(pressure - pRef);
209 Scalar BwRef = waterReferenceFormationVolumeFactor_[regionIdx];
212 return (1.0 + X*(1.0 + X/2.0))/BwRef;
215 template <
class Evaluation>
216 void inverseBAndMu(Evaluation& bw, Evaluation& muW,
unsigned regionIdx,
218 const Evaluation& pressure,
220 const Evaluation& )
const{
221 inverseBAndMu(bw, muW, regionIdx,pressure);
224 template <
class Evaluation>
225 void inverseBAndMu(Evaluation& bw, Evaluation& muW,
unsigned regionIdx,
226 const Evaluation& pressure)
const
228 Scalar pRef = waterReferencePressure_[regionIdx];
229 const Evaluation& X = waterCompressibility_[regionIdx]*(pressure - pRef);
231 Scalar BwRef = waterReferenceFormationVolumeFactor_[regionIdx];
234 bw = (1.0 + X*(1.0 + X/2.0))/BwRef;
236 Scalar BwMuwRef = waterViscosity_[regionIdx]*BwRef;
238 const Evaluation& Y =
239 (waterCompressibility_[regionIdx] - waterViscosibility_[regionIdx])
241 muW = BwMuwRef*bw/(1 + Y*(1 + Y/2));
250 template <
class Evaluation>
254 const Evaluation& )
const
257 template <
class Evaluation>
258 Evaluation diffusionCoefficient(
const Evaluation& ,
262 throw std::runtime_error(
"Not implemented: The PVT model does not provide a diffusionCoefficient()");
268 template <
class Evaluation>
272 const Evaluation& )
const
275 Scalar waterReferenceDensity(
unsigned regionIdx)
const
276 {
return waterReferenceDensity_[regionIdx]; }
278 const std::vector<Scalar>& waterReferencePressure()
const
279 {
return waterReferencePressure_; }
281 const std::vector<Scalar>& waterReferenceFormationVolumeFactor()
const
282 {
return waterReferenceFormationVolumeFactor_; }
284 const std::vector<Scalar>& waterCompressibility()
const
285 {
return waterCompressibility_; }
287 const std::vector<Scalar>& waterViscosity()
const
288 {
return waterViscosity_; }
290 const std::vector<Scalar>& waterViscosibility()
const
291 {
return waterViscosibility_; }
294 std::vector<Scalar> waterReferenceDensity_;
295 std::vector<Scalar> waterReferencePressure_;
296 std::vector<Scalar> waterReferenceFormationVolumeFactor_;
297 std::vector<Scalar> waterCompressibility_;
298 std::vector<Scalar> waterViscosity_;
299 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:110
void setViscosibility(unsigned regionIdx, Scalar muComp)
Set the water "viscosibility" [1/ (Pa s)].
Definition ConstantCompressibilityWaterPvt.hpp:116
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:251
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:200
void setCompressibility(unsigned regionIdx, Scalar waterCompressibility)
Set the compressibility of the water phase.
Definition ConstantCompressibilityWaterPvt.hpp:104
void setReferenceDensities(unsigned regionIdx, Scalar, Scalar, Scalar rhoRefWater)
Set the water reference density [kg / m^3].
Definition ConstantCompressibilityWaterPvt.hpp:80
unsigned numRegions() const
Return the number of PVT regions which are considered by this PVT-object.
Definition ConstantCompressibilityWaterPvt.hpp:128
void setReferencePressure(unsigned regionIdx, Scalar p)
Set the water reference pressure [Pa].
Definition ConstantCompressibilityWaterPvt.hpp:89
void initEnd()
Finish initializing the water phase PVT properties.
Definition ConstantCompressibilityWaterPvt.hpp:122
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:167
void setViscosity(unsigned regionIdx, Scalar muw, Scalar waterViscosibility=0.0)
Set the viscosity and "viscosibility" of the water phase.
Definition ConstantCompressibilityWaterPvt.hpp:95
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:187
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:149
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:135
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:269
Definition EclipseState.hpp:63
Definition Schedule.hpp:88
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30