26 #ifndef OPM_THREECOMPONENTFLUIDSYSTEM_HH
27 #define OPM_THREECOMPONENTFLUIDSYSTEM_HH
47 template<
class Scalar>
52 static constexpr
int numPhases=2;
53 static constexpr
int numComponents = 3;
54 static constexpr
int numMisciblePhases=2;
55 static constexpr
int numMiscibleComponents = 3;
57 static constexpr
int oilPhaseIdx = 0;
58 static constexpr
int gasPhaseIdx = 1;
60 static constexpr
int Comp0Idx = 0;
61 static constexpr
int Comp1Idx = 1;
62 static constexpr
int Comp2Idx = 2;
69 template <
class ValueType>
85 default:
throw std::runtime_error(
"Illegal component index for acentricFactor");
99 default:
throw std::runtime_error(
"Illegal component index for criticalTemperature");
112 default:
throw std::runtime_error(
"Illegal component index for criticalPressure");
126 default:
throw std::runtime_error(
"Illegal component index for criticalVolume");
137 default:
throw std::runtime_error(
"Illegal component index for molarMass");
153 static const char* name[] = {
"o",
156 assert(0 <= phaseIdx && phaseIdx < 2);
157 return name[phaseIdx];
163 static const char* name[] = {
169 assert(0 <= compIdx && compIdx < 3);
170 return name[compIdx];
176 template <
class Flu
idState,
class LhsEval =
typename Flu
idState::Scalar,
class ParamCacheEval = LhsEval>
177 static LhsEval
density(
const FluidState& fluidState,
183 if (phaseIdx == oilPhaseIdx || phaseIdx == gasPhaseIdx) {
184 dens = fluidState.averageMolarMass(phaseIdx) / paramCache.
molarVolume(phaseIdx);
191 template <
class Flu
idState,
class LhsEval =
typename Flu
idState::Scalar,
class ParamCacheEval = LhsEval>
198 mu = ViscosityModel::LBC(fluidState, paramCache, phaseIdx);
203 template <
class Flu
idState,
class LhsEval =
typename Flu
idState::Scalar,
class ParamCacheEval = LhsEval>
209 assert(phaseIdx < numPhases);
210 assert(compIdx < numComponents);
The base class for all fluid systems.
Properties of pure molecular n-Decane .
Properties of pure molecular methane .
Specifies the parameter cache used by the SPE-5 fluid system.
A simplistic class representing the fluid properties.
The base class for all fluid systems.
Definition: BaseFluidSystem.hpp:44
Scalar Scalar
The type used for scalar quantities.
Definition: BaseFluidSystem.hpp:49
Properties of pure molecular n-Decane .
Definition: C10.hpp:49
static Scalar criticalVolume()
Critical volume of [m2/kmol].
Definition: C10.hpp:80
static const char * name()
A human readable name for NDecane.
Definition: C10.hpp:56
static Scalar criticalPressure()
Returns the critical pressure of molecular n-Decane.
Definition: C10.hpp:74
static Scalar criticalTemperature()
Returns the critical temperature of molecular n-Decane.
Definition: C10.hpp:68
static Scalar molarMass()
The molar mass in of molecular n-Decane.
Definition: C10.hpp:62
static Scalar acentricFactor()
Acentric factor of .
Definition: C10.hpp:85
Properties of pure molecular methane .
Definition: C1.hpp:49
static Scalar criticalPressure()
Returns the critical pressure of molecular methane.
Definition: C1.hpp:74
static Scalar molarMass()
The molar mass in of molecular methane.
Definition: C1.hpp:62
static Scalar criticalTemperature()
Returns the critical temperature of molecular methane.
Definition: C1.hpp:68
static const char * name()
A human readable name for NDecane.
Definition: C1.hpp:56
static Scalar acentricFactor()
Acentric factor of .
Definition: C1.hpp:85
static Scalar criticalVolume()
Critical volume of [m2/kmol].
Definition: C1.hpp:80
Specifies the parameter cache used by the SPE-5 fluid system.
Definition: PTFlashParameterCache.hpp:48
Scalar molarVolume(unsigned phaseIdx) const
Returns the molar volume of a phase [m^3/mol].
Definition: PTFlashParameterCache.hpp:199
Implements the Peng-Robinson equation of state for a mixture.
Definition: PengRobinsonMixture.hpp:41
static LhsEval computeFugacityCoefficient(const FluidState &fs, const Params ¶ms, unsigned phaseIdx, unsigned compIdx)
Returns the fugacity coefficient of an individual component in the phase.
Definition: PengRobinsonMixture.hpp:89
A simplistic class representing the fluid properties.
Definition: SimpleCO2.hpp:51
static Scalar criticalVolume()
Critical volume of [m2/kmol].
Definition: SimpleCO2.hpp:94
static const char * name()
A human readable name for the component.
Definition: SimpleCO2.hpp:58
static Scalar criticalTemperature()
Returns the critical temperature of .
Definition: SimpleCO2.hpp:70
static Scalar acentricFactor()
Acentric factor of .
Definition: SimpleCO2.hpp:88
static Scalar criticalPressure()
Returns the critical pressure of .
Definition: SimpleCO2.hpp:76
static Scalar molarMass()
The molar mass in of the component.
Definition: SimpleCO2.hpp:64
A two phase three component fluid system with components CO2, Methane and NDekan.
Definition: ThreeComponentFluidSystem.hh:49
static const char * componentName(unsigned compIdx)
Return the human readable name of a component.
Definition: ThreeComponentFluidSystem.hh:161
static LhsEval fugacityCoefficient(const FluidState &fluidState, const ParameterCache< ParamCacheEval > ¶mCache, unsigned phaseIdx, unsigned compIdx)
Calculate the fugacity coefficient [Pa] of an individual component in a fluid phase.
Definition: ThreeComponentFluidSystem.hh:204
static LhsEval density(const FluidState &fluidState, const ParameterCache< ParamCacheEval > ¶mCache, unsigned phaseIdx)
Calculate the density [kg/m^3] of a fluid phase.
Definition: ThreeComponentFluidSystem.hh:177
static Scalar criticalPressure(unsigned compIdx)
Critical pressure of a component [Pa].
Definition: ThreeComponentFluidSystem.hh:107
static const char * phaseName(unsigned phaseIdx)
Return the human readable name of a fluid phase.
Definition: ThreeComponentFluidSystem.hh:151
static Scalar criticalTemperature(unsigned compIdx)
Critical temperature of a component [K].
Definition: ThreeComponentFluidSystem.hh:93
static Scalar molarMass(unsigned compIdx)
Return the molar mass of a component in [kg/mol].
Definition: ThreeComponentFluidSystem.hh:131
static Scalar acentricFactor(unsigned compIdx)
The acentric factor of a component [].
Definition: ThreeComponentFluidSystem.hh:79
static Scalar interactionCoefficient(unsigned, unsigned)
Returns the interaction coefficient for two components.
Definition: ThreeComponentFluidSystem.hh:145
static LhsEval viscosity(const FluidState &fluidState, const ParameterCache< ParamCacheEval > ¶mCache, unsigned phaseIdx)
Calculate the dynamic viscosity of a fluid phase [Pa*s].
Definition: ThreeComponentFluidSystem.hh:192
static Scalar criticalVolume(unsigned compIdx)
Critical volume of a component [m3].
Definition: ThreeComponentFluidSystem.hh:120