My Project
Loading...
Searching...
No Matches
Opm::ReservoirPropertyCapillary< dim > Class Template Reference

A property class for incompressible two-phase flow. More...

#include <ReservoirPropertyCapillary.hpp>

Inheritance diagram for Opm::ReservoirPropertyCapillary< dim >:
Opm::ReservoirPropertyCommon< dim, ReservoirPropertyCapillary< dim >, RockJfunc >

Public Types

typedef ScalarMobility Mobility
 The (scalar) mobility type.
 
- Public Types inherited from Opm::ReservoirPropertyCommon< dim, ReservoirPropertyCapillary< dim >, RockJfunc >
enum  
 The number of phases.
 
typedef ImmutableCMatrix PermTensor
 Tensor type for read-only access to permeability.
 
typedef OwnCMatrix MutablePermTensor
 Tensor type to be used for holding copies of permeability tensors.
 
typedef SharedCMatrix SharedPermTensor
 Tensor type for read and write access to permeability.
 

Public Member Functions

double mobilityFirstPhase (int cell_index, double saturation) const
 Mobility of first (water) phase.
 
double mobilitySecondPhase (int cell_index, double saturation) const
 Mobility of second (oil) phase.
 
void phaseMobility (int phase_index, int cell_index, double saturation, double &phase_mob) const
 Phase mobility.
 
double totalMobility (int cell_index, double saturation) const
 Total mobility.
 
double fractionalFlow (int cell_index, double saturation) const
 Fractional flow (of the first phase).
 
template<class Vector >
void phaseMobilities (int cell_index, double saturation, Vector &mobility) const
 Mobilities for both phases.
 
template<class Vector >
void phaseMobilitiesDeriv (int c, double s, Vector &dmob) const
 
void computeCflFactors ()
 Computes cfl factors. Called from ReservoirPropertyCommon::init().
 
- Public Member Functions inherited from Opm::ReservoirPropertyCommon< dim, ReservoirPropertyCapillary< dim >, RockJfunc >
 ReservoirPropertyCommon ()
 Default constructor.
 
void init (const Opm::Deck &, const std::vector< int > &global_cell, const double perm_threshold=0.0, const std::string *rock_list_filename=0, const bool use_jfunction_scaling=true, const double sigma=1.0, const double theta=0.0)
 Initialize from a grdecl file.
 
void init (const int num_cells, const double uniform_poro=0.2, const double uniform_perm=100.0 *Opm::prefix::milli *Opm::unit::darcy)
 Initialize a uniform reservoir.
 
void setViscosities (double v1, double v2)
 Set viscosities of both faces.
 
void setDensities (double d1, double d2)
 Set densitities of both faces.
 
double viscosityFirstPhase () const
 Viscosity of first (water) phase.
 
double viscositySecondPhase () const
 Viscosity of second (oil) phase.
 
double densityFirstPhase () const
 Density of first (water) phase.
 
double densitySecondPhase () const
 Density of second (oil) phase.
 
double porosity (int cell_index) const
 Read-access to porosity.
 
double ntg (int cell_index) const
 Read-access to ntg.
 
double swcr (int cell_index) const
 Read-access to swcr.
 
double sowcr (int cell_index) const
 Read-access to sowcr.
 
PermTensor permeability (int cell_index) const
 Read-access to permeability.
 
SharedPermTensor permeabilityModifiable (int cell_index)
 Read- and write-access to permeability.
 
void phaseDensities (int, Vector &density) const
 Densities for both phases.
 
double densityDifference () const
 Difference of densities.
 
double cflFactor () const
 A factor useful in cfl computations.
 
double cflFactorGravity () const
 A factor useful in gravity cfl computations.
 
double cflFactorCapillary () const
 A factor useful in gravity cfl computations.
 
double capillaryPressure (int cell_index, double saturation) const
 Capillary pressure.
 
double capillaryPressureDeriv (int c, double s) const
 Derivative of Capillary pressure.
 
double s_min (int c) const
 
double s_max (int c) const
 
double saturationFromCapillaryPressure (int cell_index, double cap_press) const
 Inverse of the capillary pressure function.
 
void writeSintefLegacyFormat (const std::string &grid_prefix) const
 Write permeability and porosity in the Sintef legacy format.
 

Additional Inherited Members

- Protected Member Functions inherited from Opm::ReservoirPropertyCommon< dim, ReservoirPropertyCapillary< dim >, RockJfunc >
void assignPorosity (const Opm::Deck &deck, const std::vector< int > &global_cell)
 
void assignNTG (const Opm::Deck &deck, const std::vector< int > &global_cell)
 
void assignSWCR (const Opm::Deck &deck, const std::vector< int > &global_cell)
 
void assignSOWCR (const Opm::Deck &deck, const std::vector< int > &global_cell)
 
void assignPermeability (const Opm::Deck &deck, const std::vector< int > &global_cell, const double perm_threshold)
 
void assignRockTable (const Opm::Deck &deck, const std::vector< int > &global_cell)
 
void readRocks (const std::string &rock_list_file)
 
ReservoirPropertyCapillary< dim > & asImpl ()
 
- Protected Attributes inherited from Opm::ReservoirPropertyCommon< dim, ReservoirPropertyCapillary< dim >, RockJfunc >
std::vector< double > porosity_
 
std::vector< double > ntg_
 
std::vector< double > swcr_
 
std::vector< double > sowcr_
 
std::vector< double > permeability_
 
std::vector< unsigned char > permfield_valid_
 
double density1_
 
double density2_
 
double viscosity1_
 
double viscosity2_
 
double cfl_factor_
 
double cfl_factor_gravity_
 
double cfl_factor_capillary_
 
std::vector< RockJfuncrock_
 
std::vector< int > cell_to_rock_
 
PermeabilityKind permeability_kind_
 

Detailed Description

template<int dim>
class Opm::ReservoirPropertyCapillary< dim >

A property class for incompressible two-phase flow.

Template Parameters
dimthe dimension of the space, used for giving permeability tensors the right size.

Member Function Documentation

◆ fractionalFlow()

template<int dim>
double Opm::ReservoirPropertyCapillary< dim >::fractionalFlow ( int  cell_index,
double  saturation 
) const

Fractional flow (of the first phase).

Parameters
cell_indexindex of a grid cell.
saturationa saturation value.
Returns
fractional flow value at the given cell and saturation.

◆ mobilityFirstPhase()

template<int dim>
double Opm::ReservoirPropertyCapillary< dim >::mobilityFirstPhase ( int  cell_index,
double  saturation 
) const

Mobility of first (water) phase.

Parameters
cell_indexindex of a grid cell.
saturationa saturation value.
Returns
mobility value of first phase at the given cell and saturation.

◆ mobilitySecondPhase()

template<int dim>
double Opm::ReservoirPropertyCapillary< dim >::mobilitySecondPhase ( int  cell_index,
double  saturation 
) const

Mobility of second (oil) phase.

Parameters
cell_indexindex of a grid cell.
saturationa saturation value.
Returns
mobility value of second phase at the given cell and saturation.

◆ phaseMobilities()

template<int dim>
template<class Vector >
void Opm::ReservoirPropertyCapillary< dim >::phaseMobilities ( int  cell_index,
double  saturation,
Vector &  mobility 
) const

Mobilities for both phases.

Template Parameters
Vectora class with size() and operator[].
Parameters
cell_indexindex of a grid cell.
saturationa saturation value.
[out]mobilitythe phase mobilities at the given cell and saturation. Expected to be of size 2 before (and after) the call.

◆ phaseMobility()

template<int dim>
void Opm::ReservoirPropertyCapillary< dim >::phaseMobility ( int  phase_index,
int  cell_index,
double  saturation,
double &  phase_mob 
) const

Phase mobility.

Parameters
phase_indexphase for which to compute mobility.
cell_indexindex of a grid cell.
saturationa saturation value.
[out]phase_mobphase mobility at the given cell and saturation.

◆ totalMobility()

template<int dim>
double Opm::ReservoirPropertyCapillary< dim >::totalMobility ( int  cell_index,
double  saturation 
) const

Total mobility.

Parameters
cell_indexindex of a grid cell.
saturationa saturation value.
Returns
total mobility value at the given cell and saturation.

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