Opm::VertEqProps Struct Referenceabstract

#include <props.hpp>

Inheritance diagram for Opm::VertEqProps:
Inheritance graph

Public Member Functions

virtual void upd_res_sat (const double *sat)=0
 
virtual void upscale_pressure (const double *coarseSaturation, const double *finePressure, double *coarsePressure)=0
 
virtual void upscale_saturation (const double *fineSaturation, double *coarseSaturation)=0
 
virtual void downscale_saturation (const double *coarseSaturation, double *fineSaturation)=0
 
virtual void downscale_pressure (const double *coarseSaturation, const double *coarsePressure, double *finePressure)=0
 

Static Public Member Functions

static VertEqPropscreate (const IncompPropertiesInterface &fineProps, const TopSurf &topSurf, const double *gravity)
 

Member Function Documentation

static VertEqProps* Opm::VertEqProps::create ( const IncompPropertiesInterface &  fineProps,
const TopSurf topSurf,
const double *  gravity 
)
static

Create an upscaled version of fluid and rock properties.

Parameters
finePropsFluid and rock properties for the fine grid.
topSurfGrid for which the properties should be upscaled.
gravityGravity vector (three-dimensional); must contain three elements, whereas the last is for depth. Usually this is {0., 0., Opm::unit::gravity}.
Returns
Fluid object for the corresponding coarse grid. The caller has the responsibility to dispose off the object returned from here.
virtual void Opm::VertEqProps::downscale_pressure ( const double *  coarseSaturation,
const double *  coarsePressure,
double *  finePressure 
)
pure virtual

Downscale to corresponding 3D fine-scale pressure from 2D coarse-scale pressure.

Parameters
[in]coarseSaturationSaturation for each phase, in each column. This is used to determine the brine-co2 phase contact properly.
[in]coarsePressurePressure of the CO2 phase at the top of each column.
[out]finePressurePressure in each block in the fine-scale grid. The order of the cells is given by the fine_col/col_cells members of the TopSurf object which was passed the constructor.
Note
The space for the data must have been allocated by the caller.
virtual void Opm::VertEqProps::downscale_saturation ( const double *  coarseSaturation,
double *  fineSaturation 
)
pure virtual

Downscale to corresponding 3D fine-scale saturations from 2D coarse-scale saturations.

Parameters
[in]coarseSaturationSaturation for each phase, and for each column in the coarse grid. The data for each column is kept together, i.e. the phase index varies most quickly.
[out]fineSaturationSaturation for each phase, and for each block in the fine grid. The data for each block is kept together, i.e. the phase index varies most quickly.
Note
The space for the data must have been allocated by the caller.
You should call upd_res_sat before calling this method to make sure that the position of the interface is up-to-date.
virtual void Opm::VertEqProps::upd_res_sat ( const double *  sat)
pure virtual

Update residual saturation of CO2 through-out the domain.

When the plume move forward, it leaves behind some residual CO2 which wasn't there before. This must be accounted for when calculating the position of the interface from the upscaled saturation.

Parameters
satSaturation for the phases in the coarse domain. It consists of one record for each column in the top surface grid, where each record has one saturation for each phase. The ordering of the phases is the same as in the properties interface.
virtual void Opm::VertEqProps::upscale_pressure ( const double *  coarseSaturation,
const double *  finePressure,
double *  coarsePressure 
)
pure virtual

Upscale pressure from fine-scale to coarse-scale.

Parameters
[in]coarseSaturationSaturation for each phase, in each column. This is used to initialize the brine-co2 phase contact properly.
[in]finePressurePressure for each block in the fine grid. There is only one value for pressure, the pressure for hydrostatic equilibrium in each block.
[out]coarsePressurePressure for each column in the top surface grid. There is only one value for pressure, weighted from each of the blocks in the column.

The space for the data must have been allocated by the caller.

virtual void Opm::VertEqProps::upscale_saturation ( const double *  fineSaturation,
double *  coarseSaturation 
)
pure virtual

Upscale saturation from fine-scale to coarse-scale.

Parameters
[in]fineSaturationSaturation for each phase, and for each block in the fine grid. The data for each block is kept together, i.e. the phase index varies most quickly.
[out]coarseSaturationSaturation for each phase, and for each column in the coarse grid. The data for each column is kept together, i.e. the phase index varies most quickly.

The space for the data must have been allocated by the caller.


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