Opm::BlackoilPropertiesInterface Class Referenceabstract

#include <BlackoilPropertiesInterface.hpp>

Inheritance diagram for Opm::BlackoilPropertiesInterface:
Inheritance graph

Public Member Functions

virtual ~BlackoilPropertiesInterface ()
 
virtual int numDimensions () const =0
 
virtual int numCells () const =0
 
virtual const int * cellPvtRegionIndex () 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 void viscosity (const int n, const double *p, const double *T, const double *z, const int *cells, double *mu, double *dmudp) const =0
 
virtual void matrix (const int n, const double *p, const double *T, const double *z, const int *cells, double *A, double *dAdp) const =0
 
virtual void density (const int n, const double *A, const int *cells, double *rho) const =0
 
virtual const double * surfaceDensity (int regionIdx=0) 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
 
virtual void swatInitScaling (const int cell, const double pcow, double &swat)=0
 

Detailed Description

Abstract base class for blackoil fluid and reservoir properties. Supports variable number of spatial dimensions, called D. Supports variable number of phases, but assumes that the number of components is equal to the 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

◆ ~BlackoilPropertiesInterface()

virtual Opm::BlackoilPropertiesInterface::~BlackoilPropertiesInterface ( )
inlinevirtual

Member Function Documentation

◆ capPress()

virtual void Opm::BlackoilPropertiesInterface::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} = \frac{dpc_i}{ds^j}, and is output in Fortran order (m_00 m_10 m_20 m_01 ...)

Implemented in Opm::BlackoilPropertiesBasic, and Opm::BlackoilPropertiesFromDeck.

◆ cellPvtRegionIndex()

virtual const int * Opm::BlackoilPropertiesInterface::cellPvtRegionIndex ( ) const
pure virtual

Return an array containing the PVT table index for each grid cell

Implemented in Opm::BlackoilPropertiesBasic, and Opm::BlackoilPropertiesFromDeck.

◆ density()

virtual void Opm::BlackoilPropertiesInterface::density ( const int  n,
const double *  A,
const int *  cells,
double *  rho 
) const
pure virtual

Densities of stock components at reservoir conditions.

Parameters
[in]nNumber of data points.
[in]AArray of nP^2 values, where the P^2 values for a cell give the matrix A = RB^{-1} which relates z to u by z = Au. The matrices are assumed to be in Fortran order, and are typically the result of a call to the method matrix().
[in]cellsThe index of the grid cell of each data point.
[out]rhoArray of nP density values, array must be valid before calling.

Implemented in Opm::BlackoilPropertiesBasic, and Opm::BlackoilPropertiesFromDeck.

◆ matrix()

virtual void Opm::BlackoilPropertiesInterface::matrix ( const int  n,
const double *  p,
const double *  T,
const double *  z,
const int *  cells,
double *  A,
double *  dAdp 
) const
pure virtual
Parameters
[in]nNumber of data points.
[in]pArray of n pressure values.
[in]TArray of n temperature values.
[in]zArray of nP surface volume values.
[in]cellsArray of n cell indices to be associated with the p and z values.
[out]AArray of nP^2 values, array must be valid before calling. The P^2 values for a cell give the matrix A = RB^{-1} which relates z to u by z = Au. The matrices are output in Fortran order.
[out]dAdpIf non-null: array of nP^2 matrix derivative values, array must be valid before calling. The matrices are output in Fortran order.

Implemented in Opm::BlackoilPropertiesBasic, and Opm::BlackoilPropertiesFromDeck.

◆ numCells()

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

Implemented in Opm::BlackoilPropertiesBasic, and Opm::BlackoilPropertiesFromDeck.

Referenced by Opm::initStateBasic().

◆ numDimensions()

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

Implemented in Opm::BlackoilPropertiesBasic, and Opm::BlackoilPropertiesFromDeck.

◆ numPhases()

virtual int Opm::BlackoilPropertiesInterface::numPhases ( ) const
pure virtual
Returns
P, the number of phases (also the number of components).

Implemented in Opm::BlackoilPropertiesBasic, and Opm::BlackoilPropertiesFromDeck.

Referenced by Opm::initStateBasic().

◆ permeability()

virtual const double * Opm::BlackoilPropertiesInterface::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::BlackoilPropertiesBasic, and Opm::BlackoilPropertiesFromDeck.

◆ phaseUsage()

virtual PhaseUsage Opm::BlackoilPropertiesInterface::phaseUsage ( ) const
pure virtual
Returns
Object describing the active phases.

Implemented in Opm::BlackoilPropertiesBasic, and Opm::BlackoilPropertiesFromDeck.

◆ porosity()

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

Implemented in Opm::BlackoilPropertiesBasic, and Opm::BlackoilPropertiesFromDeck.

◆ relperm()

virtual void Opm::BlackoilPropertiesInterface::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} = \frac{dkr_i}{ds^j}, and is output in Fortran order (m_00 m_10 m_20 m_01 ...)

Implemented in Opm::BlackoilPropertiesBasic, and Opm::BlackoilPropertiesFromDeck.

◆ satRange()

virtual void Opm::BlackoilPropertiesInterface::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::BlackoilPropertiesBasic, and Opm::BlackoilPropertiesFromDeck.

◆ surfaceDensity()

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

Densities of stock components at surface conditions.

Returns
Array of P density values.

Implemented in Opm::BlackoilPropertiesBasic, and Opm::BlackoilPropertiesFromDeck.

◆ swatInitScaling()

virtual void Opm::BlackoilPropertiesInterface::swatInitScaling ( const int  cell,
const double  pcow,
double &  swat 
)
pure virtual

Update capillary pressure scaling according to pressure diff. and initial water saturation.

Parameters
[in]cellCell index.
[in]pcowP_oil - P_water.
[in/out]swat Water saturation. / Possibly modified Water saturation.

Implemented in Opm::BlackoilPropertiesBasic, and Opm::BlackoilPropertiesFromDeck.

◆ viscosity()

virtual void Opm::BlackoilPropertiesInterface::viscosity ( const int  n,
const double *  p,
const double *  T,
const double *  z,
const int *  cells,
double *  mu,
double *  dmudp 
) const
pure virtual
Parameters
[in]nNumber of data points.
[in]pArray of n pressure values.
[in]TArray of n temperature values.
[in]zArray of nP surface volume values.
[in]cellsArray of n cell indices to be associated with the p and z values.
[out]muArray of nP viscosity values, array must be valid before calling.
[out]dmudpIf non-null: array of nP viscosity derivative values, array must be valid before calling.

Implemented in Opm::BlackoilPropertiesBasic, and Opm::BlackoilPropertiesFromDeck.


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