Opm::CompositionalContainer< FluidSystem > Class Template Reference

#include <CompositionalContainer.hpp>

Public Types

enum class  RestartOutput { Disabled , Enabled }
 
using AssignFunction = std::function< Scalar(const unsigned)>
 

Public Member Functions

void allocate (const unsigned bufferSize, std::map< std::string, int > &rstKeywords, RestartOutput restartOutput)
 
void assignGasFractions (const unsigned globalDofIdx, const AssignFunction &fractions)
 
void assignMoleFractions (const unsigned globalDofIdx, const AssignFunction &fractions)
 
void assignOilFractions (const unsigned globalDofIdx, const AssignFunction &fractions)
 
void assignPhasePressures (const unsigned globalDofIdx, const Scalar oilPressure, const Scalar gasPressure)
 
void assignSaturationPressure (const unsigned globalDofIdx, const Scalar psat)
 
void assignVaporFraction (const unsigned globalDofIdx, const Scalar vmf)
 
void outputRestart (data::Solution &sol, ScalarBuffer &oil_saturation)
 
bool moleFractionsAllocated () const
 
bool gasFractionsAllocated () const
 
bool oilFractionsAllocated () const
 
bool phasePressuresAllocated () const
 
bool vaporFractionAllocated () const
 
bool saturationPressureAllocated () const
 
bool saturationPressureRequested () const
 
bool allocated () const
 

Static Public Member Functions

static std::optional< Scalar > cellSaturationPressure (const Scalar liquidFraction, const Scalar oilPressure, const std::array< Scalar, numComponents > &moleFractions, const Scalar temperature, const CompositionalConfig::EOSType eosType)
 

Member Typedef Documentation

◆ AssignFunction

template<class FluidSystem >
using Opm::CompositionalContainer< FluidSystem >::AssignFunction = std::function<Scalar(const unsigned)>

Member Enumeration Documentation

◆ RestartOutput

template<class FluidSystem >
enum class Opm::CompositionalContainer::RestartOutput
strong
Enumerator
Disabled 
Enabled 

Member Function Documentation

◆ allocate()

template<class FluidSystem >
void Opm::CompositionalContainer< FluidSystem >::allocate ( const unsigned  bufferSize,
std::map< std::string, int > &  rstKeywords,
RestartOutput  restartOutput 
)

Allocate compositional restart fields requested by rstKeywords. PSAT is currently consumed only by restart output. Allocate it only for passes that will write restart data because filling the buffer requires a nonlinear solve for each single-phase cell.

◆ allocated()

template<class FluidSystem >
bool Opm::CompositionalContainer< FluidSystem >::allocated ( ) const
inline

◆ assignGasFractions()

template<class FluidSystem >
void Opm::CompositionalContainer< FluidSystem >::assignGasFractions ( const unsigned  globalDofIdx,
const AssignFunction &  fractions 
)

◆ assignMoleFractions()

template<class FluidSystem >
void Opm::CompositionalContainer< FluidSystem >::assignMoleFractions ( const unsigned  globalDofIdx,
const AssignFunction &  fractions 
)

◆ assignOilFractions()

template<class FluidSystem >
void Opm::CompositionalContainer< FluidSystem >::assignOilFractions ( const unsigned  globalDofIdx,
const AssignFunction &  fractions 
)

◆ assignPhasePressures()

template<class FluidSystem >
void Opm::CompositionalContainer< FluidSystem >::assignPhasePressures ( const unsigned  globalDofIdx,
const Scalar  oilPressure,
const Scalar  gasPressure 
)

◆ assignSaturationPressure()

template<class FluidSystem >
void Opm::CompositionalContainer< FluidSystem >::assignSaturationPressure ( const unsigned  globalDofIdx,
const Scalar  psat 
)

◆ assignVaporFraction()

template<class FluidSystem >
void Opm::CompositionalContainer< FluidSystem >::assignVaporFraction ( const unsigned  globalDofIdx,
const Scalar  vmf 
)

◆ cellSaturationPressure()

template<class FluidSystem >
static std::optional< Scalar > Opm::CompositionalContainer< FluidSystem >::cellSaturationPressure ( const Scalar  liquidFraction,
const Scalar  oilPressure,
const std::array< Scalar, numComponents > &  moleFractions,
const Scalar  temperature,
const CompositionalConfig::EOSType  eosType 
)
static

Return the oil-phase pressure for two hydrocarbon phases, or the bubble/dew pressure of the total composition for a single phase. Return std::nullopt if the solver cannot determine a saturation pressure.

liquidFraction is the flash liquid fraction L: exactly one denotes liquid only, exactly zero vapour only, and other values denote two phases. Use L because computed phase saturations can contain round-off residuals. Plain-value arguments allow testing phase selection without a simulator.

◆ gasFractionsAllocated()

template<class FluidSystem >
bool Opm::CompositionalContainer< FluidSystem >::gasFractionsAllocated ( ) const
inline

◆ moleFractionsAllocated()

template<class FluidSystem >
bool Opm::CompositionalContainer< FluidSystem >::moleFractionsAllocated ( ) const
inline

◆ oilFractionsAllocated()

template<class FluidSystem >
bool Opm::CompositionalContainer< FluidSystem >::oilFractionsAllocated ( ) const
inline

◆ outputRestart()

template<class FluidSystem >
void Opm::CompositionalContainer< FluidSystem >::outputRestart ( data::Solution &  sol,
ScalarBuffer &  oil_saturation 
)

◆ phasePressuresAllocated()

template<class FluidSystem >
bool Opm::CompositionalContainer< FluidSystem >::phasePressuresAllocated ( ) const
inline

◆ saturationPressureAllocated()

template<class FluidSystem >
bool Opm::CompositionalContainer< FluidSystem >::saturationPressureAllocated ( ) const
inline

◆ saturationPressureRequested()

template<class FluidSystem >
bool Opm::CompositionalContainer< FluidSystem >::saturationPressureRequested ( ) const
inline

Whether PSAT was requested in this allocation pass. Unlike the buffer state above, this remains true on MPI ranks with no local cells.

◆ vaporFractionAllocated()

template<class FluidSystem >
bool Opm::CompositionalContainer< FluidSystem >::vaporFractionAllocated ( ) const
inline

The documentation for this class was generated from the following file: