27#ifndef OPM_CONSTANT_COMPRESSIBILITY_BRINE_PVT_HPP
28#define OPM_CONSTANT_COMPRESSIBILITY_BRINE_PVT_HPP
37template <
class Scalar,
bool enableThermal,
bool enableBrine>
38class WaterPvtMultiplexer;
49template <
class Scalar>
65 void setVapPars(
const Scalar,
const Scalar)
76 { waterReferenceDensity_[regionIdx] = rhoRefWater; }
88 {
return waterReferenceDensity_.size(); }
93 template <
class Evaluation>
98 const Evaluation&)
const
100 throw std::runtime_error(
"Requested the enthalpy of water but the thermal option is not enabled");
103 Scalar hVap(
unsigned)
const
105 throw std::runtime_error(
"Requested the hvap of oil but the thermal option is not enabled");
111 template <
class Evaluation>
113 const Evaluation& temperature,
114 const Evaluation& pressure,
115 const Evaluation& Rsw,
116 const Evaluation& saltconcentration)
const
119 Scalar pRef = referencePressure_[regionIdx];
120 const Evaluation C = compressibilityTables_[regionIdx].eval(saltconcentration,
true);
121 const Evaluation Cv = viscosibilityTables_[regionIdx].eval(saltconcentration,
true);
122 const Evaluation BwRef = formationVolumeTables_[regionIdx].eval(saltconcentration,
true);
123 const Evaluation Y = (C-Cv)* (pressure - pRef);
124 Evaluation MuwRef = viscosityTables_[regionIdx].eval(saltconcentration,
true);
128 return MuwRef * BwRef * bw / (1 + Y * (1 + Y/2));
135 template <
class Evaluation>
137 const Evaluation& temperature,
138 const Evaluation& pressure,
139 const Evaluation& saltconcentration)
const
141 Scalar pRef = referencePressure_[regionIdx];
142 const Evaluation C = compressibilityTables_[regionIdx].eval(saltconcentration,
true);
143 const Evaluation Cv = viscosibilityTables_[regionIdx].eval(saltconcentration,
true);
144 const Evaluation BwRef = formationVolumeTables_[regionIdx].eval(saltconcentration,
true);
145 const Evaluation Y = (C-Cv)* (pressure - pRef);
146 Evaluation MuwRef = viscosityTables_[regionIdx].eval(saltconcentration,
true);
150 return MuwRef * BwRef * bw / (1 + Y * (1 + Y/2));
156 template <
class Evaluation>
158 const Evaluation& temperature,
159 const Evaluation& pressure,
160 const Evaluation& saltconcentration)
const
162 Evaluation Rsw = 0.0;
164 Rsw, saltconcentration);
169 template <
class Evaluation>
172 const Evaluation& pressure,
174 const Evaluation& saltconcentration)
const
176 Scalar pRef = referencePressure_[regionIdx];
178 const Evaluation BwRef = formationVolumeTables_[regionIdx].eval(saltconcentration,
true);
179 const Evaluation C = compressibilityTables_[regionIdx].eval(saltconcentration,
true);
180 const Evaluation X = C * (pressure - pRef);
182 return (1.0 + X * (1.0 + X / 2.0)) / BwRef;
192 template <
class Evaluation>
196 const Evaluation& )
const
202 template <
class Evaluation>
206 const Evaluation& )
const
209 template <
class Evaluation>
210 Evaluation diffusionCoefficient(
const Evaluation& ,
214 throw std::runtime_error(
"Not implemented: The PVT model does not provide "
215 "a diffusionCoefficient()");
218 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:51
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:136
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:112
unsigned numRegions() const
Return the number of PVT regions which are considered by this PVT-object.
Definition ConstantCompressibilityBrinePvt.hpp:87
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:170
void setReferenceDensities(unsigned regionIdx, Scalar, Scalar, Scalar rhoRefWater)
Set the water reference density [kg / m^3].
Definition ConstantCompressibilityBrinePvt.hpp:72
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:193
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:203
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:157
void initEnd()
Finish initializing the water phase PVT properties.
Definition ConstantCompressibilityBrinePvt.hpp:81
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:94
Definition EclipseState.hpp:62
Definition Schedule.hpp:101
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