Opm::EQUIL Namespace Reference

Namespaces

namespace  Miscibility
 

Classes

class  EquilReg
 
struct  PcEq
 
struct  PcEqSum
 

Typedefs

typedef Opm::FluidSystems::BlackOil< double > FluidSystemSimple
 
typedef Opm::SimpleModularFluidState< double, 3, 3, FluidSystemSimple, false, false, false, false, true, false, false, false > SatOnlyFluidState
 

Functions

template<class FluidSystem , class MaterialLawManager >
double minSaturations (const MaterialLawManager &materialLawManager, const int phase, const int cell)
 
template<class FluidSystem , class MaterialLawManager >
double maxSaturations (const MaterialLawManager &materialLawManager, const int phase, const int cell)
 
template<class FluidSystem , class MaterialLaw , class MaterialLawManager >
double satFromPc (const MaterialLawManager &materialLawManager, const int phase, const int cell, const double target_pc, const bool increasing=false)
 
template<class FluidSystem , class MaterialLaw , class MaterialLawManager >
double satFromSumOfPcs (const MaterialLawManager &materialLawManager, const int phase1, const int phase2, const int cell, const double target_pc)
 
template<class FluidSystem , class MaterialLaw , class MaterialLawManager >
double satFromDepth (const MaterialLawManager &materialLawManager, const double cellDepth, const double contactDepth, const int phase, const int cell, const bool increasing=false)
 Compute saturation from depth. Used for constant capillary pressure function. More...
 
template<class FluidSystem , class MaterialLaw , class MaterialLawManager >
bool isConstPc (const MaterialLawManager &materialLawManager, const int phase, const int cell)
 Return true if capillary pressure function is constant. More...
 
template<class FluidSystem , class Grid , class Region , class CellRange >
std::vector< std::vector< double > > phasePressures (const Grid &G, const Region &reg, const CellRange &cells, const double grav)
 
template<class Grid , class Region , class CellRange >
std::vector< double > temperature (const Grid &, const Region &, const CellRange &cells)
 
template<class FluidSystem , class Grid , class Region , class CellRange , class MaterialLawManager >
std::vector< std::vector< double > > phaseSaturations (const Grid &G, const Region &reg, const CellRange &cells, MaterialLawManager &materialLawManager, const std::vector< double > swat_init, std::vector< std::vector< double > > &phase_pressures)
 
template<class Grid , class CellRangeType >
std::vector< double > computeRs (const Grid &grid, const CellRangeType &cells, const std::vector< double > oil_pressure, const std::vector< double > &temperature, const Miscibility::RsFunction &rs_func, const std::vector< double > gas_saturation)
 

Detailed Description

Types and routines that collectively implement a basic ECLIPSE-style equilibration-based initialisation scheme.

This namespace is intentionally nested to avoid name clashes with other parts of OPM.

Typedef Documentation

◆ FluidSystemSimple

typedef Opm::FluidSystems::BlackOil<double> Opm::EQUIL::FluidSystemSimple

◆ SatOnlyFluidState

typedef Opm::SimpleModularFluidState<double, 3, 3, FluidSystemSimple, false, false, false, false, true, false, false, false> Opm::EQUIL::SatOnlyFluidState

Function Documentation

◆ computeRs()

template<class Grid , class CellRangeType >
std::vector< double > Opm::EQUIL::computeRs ( const Grid &  grid,
const CellRangeType &  cells,
const std::vector< double >  oil_pressure,
const std::vector< double > &  temperature,
const Miscibility::RsFunction rs_func,
const std::vector< double >  gas_saturation 
)

Compute initial Rs values.

Template Parameters
CellRangeTypeType of cell range that demarcates the cells pertaining to the current equilibration region. Must implement methods begin() and end() to bound the range as well as provide an inner type, const_iterator, to traverse the range.
Parameters
[in]gridGrid.
[in]cellsRange that spans the cells of the current equilibration region.
[in]oil_pressureOil pressure for each cell in range.
[in]temperatureTemperature for each cell in range.
[in]rs_funcRs as function of pressure and depth.
Returns
Rs values, one for each cell in the 'cells' range.

References temperature().

◆ isConstPc()

template<class FluidSystem , class MaterialLaw , class MaterialLawManager >
bool Opm::EQUIL::isConstPc ( const MaterialLawManager &  materialLawManager,
const int  phase,
const int  cell 
)
inline

Return true if capillary pressure function is constant.

◆ maxSaturations()

template<class FluidSystem , class MaterialLawManager >
double Opm::EQUIL::maxSaturations ( const MaterialLawManager &  materialLawManager,
const int  phase,
const int  cell 
)

◆ minSaturations()

template<class FluidSystem , class MaterialLawManager >
double Opm::EQUIL::minSaturations ( const MaterialLawManager &  materialLawManager,
const int  phase,
const int  cell 
)

◆ phasePressures()

template<class FluidSystem , class Grid , class Region , class CellRange >
std::vector< std::vector< double > > Opm::EQUIL::phasePressures ( const Grid &  G,
const Region &  reg,
const CellRange &  cells,
const double  grav 
)

◆ phaseSaturations()

template<class FluidSystem , class Grid , class Region , class CellRange , class MaterialLawManager >
std::vector< std::vector< double > > Opm::EQUIL::phaseSaturations ( const Grid &  G,
const Region &  reg,
const CellRange &  cells,
MaterialLawManager &  materialLawManager,
const std::vector< double >  swat_init,
std::vector< std::vector< double > > &  phase_pressures 
)

◆ satFromDepth()

template<class FluidSystem , class MaterialLaw , class MaterialLawManager >
double Opm::EQUIL::satFromDepth ( const MaterialLawManager &  materialLawManager,
const double  cellDepth,
const double  contactDepth,
const int  phase,
const int  cell,
const bool  increasing = false 
)
inline

Compute saturation from depth. Used for constant capillary pressure function.

◆ satFromPc()

template<class FluidSystem , class MaterialLaw , class MaterialLawManager >
double Opm::EQUIL::satFromPc ( const MaterialLawManager &  materialLawManager,
const int  phase,
const int  cell,
const double  target_pc,
const bool  increasing = false 
)
inline

Compute saturation of some phase corresponding to a given capillary pressure.

◆ satFromSumOfPcs()

template<class FluidSystem , class MaterialLaw , class MaterialLawManager >
double Opm::EQUIL::satFromSumOfPcs ( const MaterialLawManager &  materialLawManager,
const int  phase1,
const int  phase2,
const int  cell,
const double  target_pc 
)
inline

Compute saturation of some phase corresponding to a given capillary pressure, where the capillary pressure function is given as a sum of two other functions.

◆ temperature()

template<class Grid , class Region , class CellRange >
std::vector< double > Opm::EQUIL::temperature ( const Grid &  ,
const Region &  ,
const CellRange &  cells 
)

Referenced by computeRs().