OilPvtMultiplexer.hpp File Reference

This class represents the Pressure-Volume-Temperature relations of the oil phase in the black-oil model. More...

Include dependency graph for OilPvtMultiplexer.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

singleton  Opm::GasPvtMultiplexer< Scalar >
 This class represents the Pressure-Volume-Temperature relations of the gas phase in the black-oil model. More...
 
singleton  Opm::OilPvtMultiplexer< Scalar >
 This class represents the Pressure-Volume-Temperature relations of the oil phase in the black-oil model. More...
 

Namespaces

 Opm
 

Macros

#define OPM_OIL_PVT_MULTIPLEXER_CALL(codeToCall)
 

Detailed Description

This class represents the Pressure-Volume-Temperature relations of the oil phase in the black-oil model.

This is the base class which which provides an API for the actual PVT implementation classes which based on dynamic polymorphism. The rationale to use dynamic polymorphism here is that this enables the fluid system to easily switch the used PVT relations for the individual fluid phases.

Note that, since the application for this class is the black-oil fluid system, the API exposed by this class is pretty specific to the black-oil model.

Macro Definition Documentation

#define OPM_OIL_PVT_MULTIPLEXER_CALL (   codeToCall)
Value:
switch (oilPvtApproach_) { \
case ConstantCompressibilityOilPvt: { \
auto &pvtImpl = getRealOilPvt<ConstantCompressibilityOilPvt>(); \
codeToCall; \
break; \
} \
case DeadOilPvt: { \
auto &pvtImpl = getRealOilPvt<DeadOilPvt>(); \
codeToCall; \
break; \
} \
case LiveOilPvt: { \
auto &pvtImpl = getRealOilPvt<LiveOilPvt>(); \
codeToCall; \
break; \
} \
case NoOilPvt: \
OPM_THROW(std::logic_error, "Not implemented: Oil PVT of this deck!"); \
}

Referenced by Opm::OilPvtMultiplexer< Scalar >::density(), Opm::OilPvtMultiplexer< Scalar >::formationVolumeFactor(), Opm::OilPvtMultiplexer< Scalar >::fugacityCoefficientGas(), Opm::OilPvtMultiplexer< Scalar >::fugacityCoefficientOil(), Opm::OilPvtMultiplexer< Scalar >::fugacityCoefficientWater(), Opm::OilPvtMultiplexer< Scalar >::gasDissolutionFactor(), Opm::OilPvtMultiplexer< Scalar >::initEnd(), Opm::OilPvtMultiplexer< Scalar >::oilSaturationPressure(), Opm::OilPvtMultiplexer< Scalar >::saturatedOilGasMassFraction(), Opm::OilPvtMultiplexer< Scalar >::saturatedOilGasMoleFraction(), and Opm::OilPvtMultiplexer< Scalar >::viscosity().