OilPvtMultiplexer.hpp File Reference
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

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

Namespaces

namespace  Opm
 

Macros

#define OPM_OIL_PVT_MULTIPLEXER_CALL(codeToCall)
 

Enumerations

enum class  Opm::OilPvtApproach {
  Opm::NoOilPvt , Opm::LiveOilPvt , Opm::DeadOilPvt , Opm::ConstantCompressibilityOilPvt ,
  Opm::ThermalOilPvt , Opm::BrineCo2Pvt
}
 

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

◆ OPM_OIL_PVT_MULTIPLEXER_CALL

#define OPM_OIL_PVT_MULTIPLEXER_CALL (   codeToCall)
Value:
switch (approach_) { \
case OilPvtApproach::ConstantCompressibilityOilPvt: { \
auto& pvtImpl = getRealPvt<OilPvtApproach::ConstantCompressibilityOilPvt>(); \
codeToCall; \
break; \
} \
case OilPvtApproach::DeadOilPvt: { \
auto& pvtImpl = getRealPvt<OilPvtApproach::DeadOilPvt>(); \
codeToCall; \
break; \
} \
case OilPvtApproach::LiveOilPvt: { \
auto& pvtImpl = getRealPvt<OilPvtApproach::LiveOilPvt>(); \
codeToCall; \
break; \
} \
case OilPvtApproach::ThermalOilPvt: { \
auto& pvtImpl = getRealPvt<OilPvtApproach::ThermalOilPvt>(); \
codeToCall; \
break; \
} \
case OilPvtApproach::BrineCo2Pvt: { \
auto& pvtImpl = getRealPvt<OilPvtApproach::BrineCo2Pvt>(); \
codeToCall; \
break; \
} \
case OilPvtApproach::NoOilPvt: \
throw std::logic_error("Not implemented: Oil PVT of this deck!"); \
} \