27#ifndef OPM_CONSTANT_COMPRESSIBILITY_BRINE_PVT_HPP
28#define OPM_CONSTANT_COMPRESSIBILITY_BRINE_PVT_HPP
36template <
class Scalar,
bool enableThermal,
bool enableBrine>
37class WaterPvtMultiplexer;
48template <
class Scalar>
66 for (
unsigned regionIdx = 0; regionIdx <
numRegions; ++regionIdx) {
71 void setVapPars(
const Scalar,
const Scalar)
82 { waterReferenceDensity_[regionIdx] = rhoRefWater; }
95 {
return waterReferenceDensity_.size(); }
100 template <
class Evaluation>
105 const Evaluation&)
const
107 throw std::runtime_error(
"Requested the enthalpy of water but the thermal option is not enabled");
113 template <
class Evaluation>
115 const Evaluation& temperature,
116 const Evaluation& pressure,
117 const Evaluation& Rsw,
118 const Evaluation& saltconcentration)
const
121 Scalar pRef = referencePressure_[regionIdx];
122 const Evaluation C = compressibilityTables_[regionIdx].eval(saltconcentration,
true);
123 const Evaluation Cv = viscosibilityTables_[regionIdx].eval(saltconcentration,
true);
124 const Evaluation BwRef = formationVolumeTables_[regionIdx].eval(saltconcentration,
true);
125 const Evaluation Y = (C-Cv)* (pressure - pRef);
126 Evaluation MuwRef = viscosityTables_[regionIdx].eval(saltconcentration,
true);
130 return MuwRef*BwRef*bw/(1 + Y*(1 + Y/2));
137 template <
class Evaluation>
139 const Evaluation& temperature,
140 const Evaluation& pressure,
141 const Evaluation& saltconcentration)
const
143 Scalar pRef = referencePressure_[regionIdx];
144 const Evaluation C = compressibilityTables_[regionIdx].eval(saltconcentration,
true);
145 const Evaluation Cv = viscosibilityTables_[regionIdx].eval(saltconcentration,
true);
146 const Evaluation BwRef = formationVolumeTables_[regionIdx].eval(saltconcentration,
true);
147 const Evaluation Y = (C-Cv)* (pressure - pRef);
148 Evaluation MuwRef = viscosityTables_[regionIdx].eval(saltconcentration,
true);
152 return MuwRef*BwRef*bw/(1 + Y*(1 + Y/2));
158 template <
class Evaluation>
160 const Evaluation& temperature,
161 const Evaluation& pressure,
162 const Evaluation& saltconcentration)
const
164 Evaluation Rsw = 0.0;
170 template <
class Evaluation>
173 const Evaluation& pressure,
175 const Evaluation& saltconcentration)
const
177 Scalar pRef = referencePressure_[regionIdx];
179 const Evaluation BwRef = formationVolumeTables_[regionIdx].eval(saltconcentration,
true);
180 const Evaluation C = compressibilityTables_[regionIdx].eval(saltconcentration,
true);
181 const Evaluation X = C * (pressure - pRef);
183 return (1.0 + X*(1.0 + X/2.0))/BwRef;
193 template <
class Evaluation>
197 const Evaluation& )
const
203 template <
class Evaluation>
207 const Evaluation& )
const
210 template <
class Evaluation>
211 Evaluation diffusionCoefficient(
const Evaluation& ,
215 throw std::runtime_error(
"Not implemented: The PVT model does not provide a diffusionCoefficient()");
218 const Scalar waterReferenceDensity(
unsigned regionIdx)
const
219 {
return waterReferenceDensity_[regionIdx]; }
221 const std::vector<Scalar>& referencePressure()
const
222 {
return referencePressure_; }
224 const std::vector<TabulatedFunction>& formationVolumeTables()
const
225 {
return formationVolumeTables_; }
227 const std::vector<TabulatedFunction>& compressibilityTables()
const
228 {
return compressibilityTables_; }
230 const std::vector<TabulatedFunction>& viscosityTables()
const
231 {
return viscosityTables_; }
233 const std::vector<TabulatedFunction>& viscosibilityTables()
const
234 {
return viscosibilityTables_; }
237 std::vector<Scalar> waterReferenceDensity_;
238 std::vector<Scalar> referencePressure_;
239 std::vector<TabulatedFunction> formationVolumeTables_;
240 std::vector<TabulatedFunction> compressibilityTables_;
241 std::vector<TabulatedFunction> viscosityTables_;
242 std::vector<TabulatedFunction> viscosibilityTables_;
Implements a linearly interpolated scalar function that depends on one variable.
This class represents the Pressure-Volume-Temperature relations of the gas phase without vaporized oi...
Definition ConstantCompressibilityBrinePvt.hpp:50
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 ConstantCompressibilityBrinePvt.hpp:138
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 ConstantCompressibilityBrinePvt.hpp:114
unsigned numRegions() const
Return the number of PVT regions which are considered by this PVT-object.
Definition ConstantCompressibilityBrinePvt.hpp:94
Evaluation inverseFormationVolumeFactor(unsigned regionIdx, const Evaluation &, const Evaluation &pressure, const Evaluation &, const Evaluation &saltconcentration) const
Returns the formation volume factor [-] of the fluid phase.
Definition ConstantCompressibilityBrinePvt.hpp:171
void setReferenceDensities(unsigned regionIdx, Scalar, Scalar, Scalar rhoRefWater)
Set the water reference density [kg / m^3].
Definition ConstantCompressibilityBrinePvt.hpp:78
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 ConstantCompressibilityBrinePvt.hpp:194
Evaluation saturatedGasDissolutionFactor(unsigned, const Evaluation &, const Evaluation &, const Evaluation &) const
Returns the gas dissolution factor [m^3/m^3] of the water phase.
Definition ConstantCompressibilityBrinePvt.hpp:204
Evaluation saturatedInverseFormationVolumeFactor(unsigned regionIdx, const Evaluation &temperature, const Evaluation &pressure, const Evaluation &saltconcentration) const
Returns the formation volume factor [-] of the fluid phase.
Definition ConstantCompressibilityBrinePvt.hpp:159
void initEnd()
Finish initializing the water phase PVT properties.
Definition ConstantCompressibilityBrinePvt.hpp:87
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 ConstantCompressibilityBrinePvt.hpp:101
Definition EclipseState.hpp:63
Definition Schedule.hpp:88
Implements a linearly interpolated scalar function that depends on one variable.
Definition Tabulated1DFunction.hpp:51
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30