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) {
78 { waterReferenceDensity_[regionIdx] = rhoRefWater; }
91 {
return waterReferenceDensity_.size(); }
96 template <
class Evaluation>
101 const Evaluation&)
const
103 throw std::runtime_error(
"Requested the enthalpy of water but the thermal option is not enabled");
109 template <
class Evaluation>
111 const Evaluation& temperature,
112 const Evaluation& pressure,
113 const Evaluation& Rsw,
114 const Evaluation& saltconcentration)
const
117 Scalar pRef = referencePressure_[regionIdx];
118 const Evaluation C = compressibilityTables_[regionIdx].eval(saltconcentration,
true);
119 const Evaluation Cv = viscosibilityTables_[regionIdx].eval(saltconcentration,
true);
120 const Evaluation BwRef = formationVolumeTables_[regionIdx].eval(saltconcentration,
true);
121 const Evaluation Y = (C-Cv)* (pressure - pRef);
122 Evaluation MuwRef = viscosityTables_[regionIdx].eval(saltconcentration,
true);
126 return MuwRef*BwRef*bw/(1 + Y*(1 + Y/2));
133 template <
class Evaluation>
135 const Evaluation& temperature,
136 const Evaluation& pressure,
137 const Evaluation& saltconcentration)
const
139 Scalar pRef = referencePressure_[regionIdx];
140 const Evaluation C = compressibilityTables_[regionIdx].eval(saltconcentration,
true);
141 const Evaluation Cv = viscosibilityTables_[regionIdx].eval(saltconcentration,
true);
142 const Evaluation BwRef = formationVolumeTables_[regionIdx].eval(saltconcentration,
true);
143 const Evaluation Y = (C-Cv)* (pressure - pRef);
144 Evaluation MuwRef = viscosityTables_[regionIdx].eval(saltconcentration,
true);
148 return MuwRef*BwRef*bw/(1 + Y*(1 + Y/2));
154 template <
class Evaluation>
156 const Evaluation& temperature,
157 const Evaluation& pressure,
158 const Evaluation& saltconcentration)
const
160 Evaluation Rsw = 0.0;
166 template <
class Evaluation>
169 const Evaluation& pressure,
171 const Evaluation& saltconcentration)
const
173 Scalar pRef = referencePressure_[regionIdx];
175 const Evaluation BwRef = formationVolumeTables_[regionIdx].eval(saltconcentration,
true);
176 const Evaluation C = compressibilityTables_[regionIdx].eval(saltconcentration,
true);
177 const Evaluation X = C * (pressure - pRef);
179 return (1.0 + X*(1.0 + X/2.0))/BwRef;
189 template <
class Evaluation>
193 const Evaluation& )
const
199 template <
class Evaluation>
203 const Evaluation& )
const
206 template <
class Evaluation>
207 Evaluation diffusionCoefficient(
const Evaluation& ,
211 throw std::runtime_error(
"Not implemented: The PVT model does not provide a diffusionCoefficient()");
214 const Scalar waterReferenceDensity(
unsigned regionIdx)
const
215 {
return waterReferenceDensity_[regionIdx]; }
217 const std::vector<Scalar>& referencePressure()
const
218 {
return referencePressure_; }
220 const std::vector<TabulatedFunction>& formationVolumeTables()
const
221 {
return formationVolumeTables_; }
223 const std::vector<TabulatedFunction>& compressibilityTables()
const
224 {
return compressibilityTables_; }
226 const std::vector<TabulatedFunction>& viscosityTables()
const
227 {
return viscosityTables_; }
229 const std::vector<TabulatedFunction>& viscosibilityTables()
const
230 {
return viscosibilityTables_; }
233 std::vector<Scalar> waterReferenceDensity_;
234 std::vector<Scalar> referencePressure_;
235 std::vector<TabulatedFunction> formationVolumeTables_;
236 std::vector<TabulatedFunction> compressibilityTables_;
237 std::vector<TabulatedFunction> viscosityTables_;
238 std::vector<TabulatedFunction> viscosibilityTables_;
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:134
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:110
unsigned numRegions() const
Return the number of PVT regions which are considered by this PVT-object.
Definition: ConstantCompressibilityBrinePvt.hpp:90
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:167
void setReferenceDensities(unsigned regionIdx, Scalar, Scalar, Scalar rhoRefWater)
Set the water reference density [kg / m^3].
Definition: ConstantCompressibilityBrinePvt.hpp:74
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:190
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:200
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:155
void initEnd()
Finish initializing the water phase PVT properties.
Definition: ConstantCompressibilityBrinePvt.hpp:83
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:97
Definition: EclipseState.hpp:55
Definition: Schedule.hpp:130
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