My Project
Loading...
Searching...
No Matches
Opm::FingerProblem< TypeTag > Class Template Reference

Two-phase problem featuring some gravity-driven saturation fingers. More...

#include <fingerproblem.hh>

Inheritance diagram for Opm::FingerProblem< TypeTag >:

Public Types

using RestrictProlongOperator = CopyRestrictProlong< Grid, MaterialLawParamsContainer >
 

Public Member Functions

 FingerProblem (Simulator &simulator)
 
Soil parameters
template<class Context >
Scalar temperature (const Context &, unsigned, unsigned) const
 
template<class Context >
const DimMatrix & intrinsicPermeability (const Context &, unsigned, unsigned) const
 
template<class Context >
Scalar porosity (const Context &, unsigned, unsigned) const
 
template<class Context >
MaterialLawParams & materialLawParams (const Context &context, unsigned spaceIdx, unsigned timeIdx)
 
template<class Context >
const MaterialLawParams & materialLawParams (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
Boundary conditions
template<class Context >
void boundary (BoundaryRateVector &values, const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
Volumetric terms
template<class Context >
void initial (PrimaryVariables &values, const Context &, unsigned, unsigned) const
 
template<class Context >
void constraints (Constraints &constraints, const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
template<class Context >
void source (RateVector &rate, const Context &, unsigned, unsigned) const
 

Auxiliary methods

RestrictProlongOperator restrictProlongOperator ()
 
std::string name () const
 
void finishInit ()
 
void endTimeStep ()
 
static void registerParameters ()
 

Detailed Description

template<class TypeTag>
class Opm::FingerProblem< TypeTag >

Two-phase problem featuring some gravity-driven saturation fingers.

The domain of this problem is sized 10cm times 1m and is initially dry. Water is then injected at three locations on the top of the domain which leads to gravity fingering. The boundary conditions used are no-flow for the left and right and top of the domain and free-flow at the bottom. This problem uses the Parker-Lenhard hystersis model which might lead to non-monotonic saturation in the fingers if the right material parameters is chosen and the spatial discretization is fine enough.

Constructor & Destructor Documentation

◆ FingerProblem()

template<class TypeTag >
Opm::FingerProblem< TypeTag >::FingerProblem ( Simulator &  simulator)
inline

Member Function Documentation

◆ boundary()

template<class TypeTag >
template<class Context >
void Opm::FingerProblem< TypeTag >::boundary ( BoundaryRateVector &  values,
const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

◆ constraints()

template<class TypeTag >
template<class Context >
void Opm::FingerProblem< TypeTag >::constraints ( Constraints &  constraints,
const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

◆ endTimeStep()

template<class TypeTag >
void Opm::FingerProblem< TypeTag >::endTimeStep ( )
inline

◆ finishInit()

template<class TypeTag >
void Opm::FingerProblem< TypeTag >::finishInit ( )
inline

◆ initial()

template<class TypeTag >
template<class Context >
void Opm::FingerProblem< TypeTag >::initial ( PrimaryVariables &  values,
const Context &  ,
unsigned  ,
unsigned   
) const
inline

◆ intrinsicPermeability()

template<class TypeTag >
template<class Context >
const DimMatrix & Opm::FingerProblem< TypeTag >::intrinsicPermeability ( const Context &  ,
unsigned  ,
unsigned   
) const
inline

◆ materialLawParams() [1/2]

template<class TypeTag >
template<class Context >
MaterialLawParams & Opm::FingerProblem< TypeTag >::materialLawParams ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
)
inline

◆ materialLawParams() [2/2]

template<class TypeTag >
template<class Context >
const MaterialLawParams & Opm::FingerProblem< TypeTag >::materialLawParams ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

◆ name()

template<class TypeTag >
std::string Opm::FingerProblem< TypeTag >::name ( ) const
inline

◆ porosity()

template<class TypeTag >
template<class Context >
Scalar Opm::FingerProblem< TypeTag >::porosity ( const Context &  ,
unsigned  ,
unsigned   
) const
inline

◆ registerParameters()

template<class TypeTag >
static void Opm::FingerProblem< TypeTag >::registerParameters ( )
inlinestatic

◆ restrictProlongOperator()

template<class TypeTag >
RestrictProlongOperator Opm::FingerProblem< TypeTag >::restrictProlongOperator ( )
inline

◆ source()

template<class TypeTag >
template<class Context >
void Opm::FingerProblem< TypeTag >::source ( RateVector &  rate,
const Context &  ,
unsigned  ,
unsigned   
) const
inline

For this problem, the source term of all components is 0 everywhere.

◆ temperature()

template<class TypeTag >
template<class Context >
Scalar Opm::FingerProblem< TypeTag >::temperature ( const Context &  ,
unsigned  ,
unsigned   
) const
inline


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