Opm::IncompPropertiesInterface Class Referenceabstract

#include <IncompPropertiesInterface.hpp>

Inheritance diagram for Opm::IncompPropertiesInterface:
Inheritance graph

Public Member Functions

virtual ~IncompPropertiesInterface ()
 
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 const double * viscosity () const =0
 
virtual const double * density () const =0
 
virtual const double * surfaceDensity () const =0
 
virtual void relperm (const int n, const double *s, const int *cells, double *kr, double *dkrds) const =0
 
virtual void capPress (const int n, const double *s, const int *cells, double *pc, double *dpcds) const =0
 
virtual void satRange (const int n, const int *cells, double *smin, double *smax) const =0
 

Detailed Description

Abstract base class for incompressible fluid and reservoir properties.

Supports variable number of spatial dimensions, called D. Supports variable number of phases, called P. In general, when arguments call for n values of some vector or matrix property, such as saturation, they shall always be ordered cellwise: [s^1_0 s^2_0 s^3_0 s^1_1 s^2_2 ... ] in which s^i_j denotes saturation of phase i in cell j.

Constructor & Destructor Documentation

virtual Opm::IncompPropertiesInterface::~IncompPropertiesInterface ( )
inlinevirtual

Member Function Documentation

virtual void Opm::IncompPropertiesInterface::capPress ( const int  n,
const double *  s,
const int *  cells,
double *  pc,
double *  dpcds 
) const
pure virtual
Parameters
[in]nNumber of data points.
[in]sArray of nP saturation values.
[in]cellsArray of n cell indices to be associated with the s values.
[out]pcArray of nP capillary pressure values, array must be valid before calling.
[out]dpcdsIf non-null: array of nP^2 derivative values, array must be valid before calling. The P^2 derivative matrix is m_{ij} = {dpc_i}{ds^j}, and is output in Fortran order (m_00 m_10 m_20 m01 ...)

Implemented in Opm::IncompPropertiesBasic, Opm::IncompPropertiesFromDeck, Opm::IncompPropertiesSinglePhase, and Opm::IncompPropertiesShadow.

Referenced by Opm::IncompPropertiesShadow::capPress(), and Opm::SimpleFluid2pWrappingProps::pc().

virtual const double* Opm::IncompPropertiesInterface::density ( ) const
pure virtual
virtual int Opm::IncompPropertiesInterface::numDimensions ( ) const
pure virtual
virtual const double* Opm::IncompPropertiesInterface::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::IncompPropertiesBasic, Opm::IncompPropertiesSinglePhase, Opm::IncompPropertiesFromDeck, and Opm::IncompPropertiesShadow.

Referenced by Opm::IncompPropertiesShadow::permeability(), and Opm::IncompPropertiesShadow::usePermeability().

virtual const double* Opm::IncompPropertiesInterface::porosity ( ) const
pure virtual
virtual void Opm::IncompPropertiesInterface::relperm ( const int  n,
const double *  s,
const int *  cells,
double *  kr,
double *  dkrds 
) const
pure virtual
Parameters
[in]nNumber of data points.
[in]sArray of nP saturation values.
[in]cellsArray of n cell indices to be associated with the s values.
[out]krArray of nP relperm values, array must be valid before calling.
[out]dkrdsIf non-null: array of nP^2 relperm derivative values, array must be valid before calling. The P^2 derivative matrix is m_{ij} = {dkr_i}{ds^j}, and is output in Fortran order (m_00 m_10 m_20 m01 ...)

Implemented in Opm::IncompPropertiesBasic, Opm::IncompPropertiesFromDeck, Opm::IncompPropertiesSinglePhase, and Opm::IncompPropertiesShadow.

Referenced by Opm::SimpleFluid2pWrappingProps::mobility(), and Opm::IncompPropertiesShadow::relperm().

virtual void Opm::IncompPropertiesInterface::satRange ( const int  n,
const int *  cells,
double *  smin,
double *  smax 
) const
pure virtual

Obtain the range of allowable saturation values. In cell cells[i], saturation of phase p is allowed to be in the interval [smin[i*P + p], smax[i*P + p]].

Parameters
[in]nNumber of data points.
[in]cellsArray of n cell indices.
[out]sminArray of nP minimum s values, array must be valid before calling.
[out]smaxArray of nP maximum s values, array must be valid before calling.

Implemented in Opm::IncompPropertiesBasic, Opm::IncompPropertiesFromDeck, Opm::IncompPropertiesSinglePhase, and Opm::IncompPropertiesShadow.

Referenced by Opm::IncompPropertiesShadow::satRange(), and Opm::SimpleFluid2pWrappingProps::SimpleFluid2pWrappingProps().

virtual const double* Opm::IncompPropertiesInterface::surfaceDensity ( ) const
pure virtual

Densities of fluid phases at surface conditions. Note: a reasonable question to ask is why there can be different densities at surface and reservoir conditions, when the phases are assumed incompressible. The answer is that even if we approximate the phases as being incompressible during simulation, the density difference between surface and reservoir may be larger. For accurate reporting and using data given in terms of surface values, we need to handle this difference.

Returns
Array of P density values.

Implemented in Opm::IncompPropertiesBasic, Opm::IncompPropertiesSinglePhase, Opm::IncompPropertiesFromDeck, and Opm::IncompPropertiesShadow.

Referenced by Opm::IncompPropertiesShadow::surfaceDensity(), and Opm::IncompPropertiesShadow::useSurfaceDensity().

virtual const double* Opm::IncompPropertiesInterface::viscosity ( ) const
pure virtual

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