Opm::BlackoilPropsAdInterface Class Referenceabstract

#include <BlackoilPropsAdInterface.hpp>

Inheritance diagram for Opm::BlackoilPropsAdInterface:
Inheritance graph

Public Types

enum  PhaseIndex {
  Water = BlackoilPhases::Aqua, Oil = BlackoilPhases::Liquid, Gas = BlackoilPhases::Vapour, Aqua = BlackoilPhases::Aqua,
  Liquid = BlackoilPhases::Liquid, Vapour = BlackoilPhases::Vapour, MaxNumPhases = BlackoilPhases::MaxNumPhases
}
 Canonical named indices for each phase. More...
 
typedef AutoDiffBlock< double > ADB
 
typedef ADB::V V
 
typedef ADB::M M
 
typedef std::vector< int > Cells
 

Public Member Functions

virtual ~BlackoilPropsAdInterface ()
 Virtual destructor for inheritance. More...
 
virtual int numDimensions () const =0
 
virtual int numCells () const =0
 
virtual const double * porosity () const =0
 
virtual const double * permeability () const =0
 
virtual int numPhases () const =0
 
virtual PhaseUsage phaseUsage () const =0
 
virtual const double * surfaceDensity (int regionIdx=0) const =0
 
virtual ADB muWat (const ADB &pw, const ADB &T, const Cells &cells) const =0
 
virtual ADB muOil (const ADB &po, const ADB &T, const ADB &rs, const std::vector< PhasePresence > &cond, const Cells &cells) const =0
 
virtual ADB muGas (const ADB &pg, const ADB &T, const ADB &rv, const std::vector< PhasePresence > &cond, const Cells &cells) const =0
 
virtual ADB bWat (const ADB &pw, const ADB &T, const Cells &cells) const =0
 
virtual ADB bOil (const ADB &po, const ADB &T, const ADB &rs, const std::vector< PhasePresence > &cond, const Cells &cells) const =0
 
virtual ADB bGas (const ADB &pg, const ADB &T, const ADB &rv, const std::vector< PhasePresence > &cond, const Cells &cells) const =0
 
virtual ADB rsSat (const ADB &po, const Cells &cells) const =0
 
virtual ADB rsSat (const ADB &po, const ADB &so, const Cells &cells) const =0
 
virtual ADB rvSat (const ADB &po, const Cells &cells) const =0
 
virtual ADB rvSat (const ADB &po, const ADB &so, const Cells &cells) const =0
 
virtual std::vector< ADBrelperm (const ADB &sw, const ADB &so, const ADB &sg, const Cells &cells) const =0
 
virtual std::vector< ADBcapPress (const ADB &sw, const ADB &so, const ADB &sg, const Cells &cells) const =0
 
virtual void updateSatHyst (const std::vector< double > &saturation, const std::vector< int > &cells)=0
 
virtual void updateSatOilMax (const std::vector< double > &saturation)=0
 Update for max oil saturation. More...
 

Detailed Description

This class is intended to present a fluid interface for three-phase black-oil that is easy to use with the AD-using simulators.

Most methods are available in two overloaded versions, one taking a constant vector and returning the same, and one taking an AD type and returning the same. Derivatives are not returned separately by any method, only implicitly with the AD version of the methods.

Member Typedef Documentation

typedef std::vector<int> Opm::BlackoilPropsAdInterface::Cells

Member Enumeration Documentation

Canonical named indices for each phase.

Enumerator
Water 
Oil 
Gas 
Aqua 
Liquid 
Vapour 
MaxNumPhases 

Constructor & Destructor Documentation

virtual Opm::BlackoilPropsAdInterface::~BlackoilPropsAdInterface ( )
virtual

Virtual destructor for inheritance.

Member Function Documentation

virtual ADB Opm::BlackoilPropsAdInterface::bGas ( const ADB pg,
const ADB T,
const ADB rv,
const std::vector< PhasePresence > &  cond,
const Cells cells 
) const
pure virtual

Gas formation volume factor.

Parameters
[in]pgArray of n gas pressure values.
[in]TArray of n temperature values.
[in]rvArray of n vapor oil/gas ratios.
[in]condArray of n objects, each specifying which phases are present with non-zero saturation in a cell.
[in]cellsArray of n cell indices to be associated with the pressure values.
Returns
Array of n formation volume factor values.

Implemented in Opm::BlackoilPropsAdFromDeck.

Referenced by Opm::BlackoilModelBase< Grid, Implementation >::computeWellConnectionPressures(), and Opm::BlackoilModelBase< Grid, Implementation >::fluidReciprocFVF().

virtual ADB Opm::BlackoilPropsAdInterface::bOil ( const ADB po,
const ADB T,
const ADB rs,
const std::vector< PhasePresence > &  cond,
const Cells cells 
) const
pure virtual

Oil formation volume factor.

Parameters
[in]poArray of n oil pressure values.
[in]TArray of n temperature values.
[in]rsArray of n gas solution factor values.
[in]condArray of n objects, each specifying which phases are present with non-zero saturation in a cell.
[in]cellsArray of n cell indices to be associated with the pressure values.
Returns
Array of n formation volume factor values.

Implemented in Opm::BlackoilPropsAdFromDeck.

Referenced by Opm::BlackoilModelBase< Grid, Implementation >::computeWellConnectionPressures(), and Opm::BlackoilModelBase< Grid, Implementation >::fluidReciprocFVF().

virtual ADB Opm::BlackoilPropsAdInterface::bWat ( const ADB pw,
const ADB T,
const Cells cells 
) const
pure virtual

Water formation volume factor.

Parameters
[in]pwArray of n water pressure values.
[in]TArray of n temperature values.
[in]cellsArray of n cell indices to be associated with the pressure values.
Returns
Array of n formation volume factor values.

Implemented in Opm::BlackoilPropsAdFromDeck.

Referenced by Opm::BlackoilModelBase< Grid, Implementation >::computeWellConnectionPressures(), and Opm::BlackoilModelBase< Grid, Implementation >::fluidReciprocFVF().

virtual std::vector<ADB> Opm::BlackoilPropsAdInterface::capPress ( const ADB sw,
const ADB so,
const ADB sg,
const Cells cells 
) const
pure virtual

Capillary pressure for all phases.

Parameters
[in]swArray of n water saturation values.
[in]soArray of n oil saturation values.
[in]sgArray of n gas saturation values.
[in]cellsArray of n cell indices to be associated with the saturation values.
Returns
An std::vector with 3 elements, each an array of n capillary pressure values, containing the offsets for each p_g, p_o, p_w. The capillary pressure between two arbitrary phases alpha and beta is then given as p_alpha - p_beta.

Implemented in Opm::BlackoilPropsAdFromDeck.

Referenced by Opm::BlackoilModelBase< Grid, Implementation >::computeGasPressure(), and Opm::BlackoilModelBase< Grid, Implementation >::computePressures().

virtual ADB Opm::BlackoilPropsAdInterface::muGas ( const ADB pg,
const ADB T,
const ADB rv,
const std::vector< PhasePresence > &  cond,
const Cells cells 
) const
pure virtual

Gas viscosity.

Parameters
[in]pgArray of n gas pressure values.
[in]TArray of n temperature values.
[in]rvArray of n vapor oil/gas ratios.
[in]condArray of n objects, each specifying which phases are present with non-zero saturation in a cell.
[in]cellsArray of n cell indices to be associated with the pressure values.
Returns
Array of n viscosity values.

Implemented in Opm::BlackoilPropsAdFromDeck.

Referenced by Opm::BlackoilModelBase< Grid, Implementation >::fluidViscosity().

virtual ADB Opm::BlackoilPropsAdInterface::muOil ( const ADB po,
const ADB T,
const ADB rs,
const std::vector< PhasePresence > &  cond,
const Cells cells 
) const
pure virtual

Oil viscosity.

Parameters
[in]poArray of n oil pressure values.
[in]TArray of n temperature values.
[in]rsArray of n gas solution factor values.
[in]condArray of n objects, each specifying which phases are present with non-zero saturation in a cell.
[in]cellsArray of n cell indices to be associated with the pressure values.
Returns
Array of n viscosity values.

Implemented in Opm::BlackoilPropsAdFromDeck.

Referenced by Opm::BlackoilModelBase< Grid, Implementation >::fluidViscosity().

virtual ADB Opm::BlackoilPropsAdInterface::muWat ( const ADB pw,
const ADB T,
const Cells cells 
) const
pure virtual

Water viscosity.

Parameters
[in]pwArray of n water pressure values.
[in]TArray of n temperature values.
[in]cellsArray of n cell indices to be associated with the pressure values.
Returns
Array of n viscosity values.

Implemented in Opm::BlackoilPropsAdFromDeck.

Referenced by Opm::BlackoilModelBase< Grid, Implementation >::fluidViscosity().

virtual int Opm::BlackoilPropsAdInterface::numCells ( ) const
pure virtual
Returns
N, the number of cells.

Implemented in Opm::BlackoilPropsAdFromDeck.

virtual int Opm::BlackoilPropsAdInterface::numDimensions ( ) const
pure virtual
Returns
D, the number of spatial dimensions.

Implemented in Opm::BlackoilPropsAdFromDeck.

virtual const double* Opm::BlackoilPropsAdInterface::permeability ( ) const
pure virtual
Returns
Array of ND^2 permeability values. The D^2 permeability values for a cell are organized as a matrix, which is symmetric (so ordering does not matter).

Implemented in Opm::BlackoilPropsAdFromDeck.

virtual const double* Opm::BlackoilPropsAdInterface::porosity ( ) const
pure virtual
Returns
Array of N porosity values.

Implemented in Opm::BlackoilPropsAdFromDeck.

virtual std::vector<ADB> Opm::BlackoilPropsAdInterface::relperm ( const ADB sw,
const ADB so,
const ADB sg,
const Cells cells 
) const
pure virtual

Relative permeabilities for all phases.

Parameters
[in]swArray of n water saturation values.
[in]soArray of n oil saturation values.
[in]sgArray of n gas saturation values.
[in]cellsArray of n cell indices to be associated with the saturation values.
Returns
An std::vector with 3 elements, each an array of n relperm values, containing krw, kro, krg. Use PhaseIndex for indexing into the result.

Implemented in Opm::BlackoilPropsAdFromDeck.

Referenced by Opm::BlackoilModelBase< Grid, Implementation >::computeRelPerm().

virtual ADB Opm::BlackoilPropsAdInterface::rsSat ( const ADB po,
const Cells cells 
) const
pure virtual

Bubble point curve for Rs as function of oil pressure.

Parameters
[in]poArray of n oil pressure values.
[in]cellsArray of n cell indices to be associated with the pressure values.
Returns
Array of n bubble point values for Rs.

Implemented in Opm::BlackoilPropsAdFromDeck.

Referenced by Opm::BlackoilModelBase< Grid, Implementation >::fluidRsSat().

virtual ADB Opm::BlackoilPropsAdInterface::rsSat ( const ADB po,
const ADB so,
const Cells cells 
) const
pure virtual

Bubble point curve for Rs as function of oil pressure.

Parameters
[in]poArray of n oil pressure values.
[in]soArray of n oil saturation values.
[in]cellsArray of n cell indices to be associated with the pressure values.
Returns
Array of n bubble point values for Rs.

Implemented in Opm::BlackoilPropsAdFromDeck.

virtual ADB Opm::BlackoilPropsAdInterface::rvSat ( const ADB po,
const Cells cells 
) const
pure virtual

Condensation curve for Rv as function of oil pressure.

Parameters
[in]poArray of n oil pressure values.
[in]cellsArray of n cell indices to be associated with the pressure values.
Returns
Array of n condensation point values for Rv.

Implemented in Opm::BlackoilPropsAdFromDeck.

Referenced by Opm::BlackoilModelBase< Grid, Implementation >::fluidRvSat().

virtual ADB Opm::BlackoilPropsAdInterface::rvSat ( const ADB po,
const ADB so,
const Cells cells 
) const
pure virtual

Condensation curve for Rv as function of oil pressure.

Parameters
[in]poArray of n oil pressure values.
[in]soArray of n oil saturation values.
[in]cellsArray of n cell indices to be associated with the pressure values.
Returns
Array of n condensation point values for Rv.

Implemented in Opm::BlackoilPropsAdFromDeck.

virtual const double* Opm::BlackoilPropsAdInterface::surfaceDensity ( int  regionIdx = 0) const
pure virtual

Densities of stock components at surface conditions.

Returns
Array of 3 density values.

Implemented in Opm::BlackoilPropsAdFromDeck.

Referenced by Opm::BlackoilModelBase< Grid, Implementation >::computeWellConnectionPressures(), and Opm::BlackoilModelBase< Grid, Implementation >::fluidDensity().

virtual void Opm::BlackoilPropsAdInterface::updateSatHyst ( const std::vector< double > &  saturation,
const std::vector< int > &  cells 
)
pure virtual

Saturation update for hysteresis behavior.

Parameters
[in]cellsArray of n cell indices to be associated with the saturation values.

Implemented in Opm::BlackoilPropsAdFromDeck.

virtual void Opm::BlackoilPropsAdInterface::updateSatOilMax ( const std::vector< double > &  saturation)
pure virtual

Update for max oil saturation.

Implemented in Opm::BlackoilPropsAdFromDeck.


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