Opm::LensProblem< TypeTag > Class Template Reference

Soil contamination problem where DNAPL infiltrates a fully water saturated medium. More...

#include <lensproblem.hh>

Inheritance diagram for Opm::LensProblem< TypeTag >:
Inheritance graph

Public Member Functions

 LensProblem (Simulator &simulator)
 
void finishInit ()
 Called by the Opm::Simulator in order to initialize the problem. More...
 
Soil parameters
template<class Context >
const DimMatrix & intrinsicPermeability (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
template<class Context >
Scalar porosity (const Context &, unsigned, unsigned) const
 
template<class Context >
const MaterialLawParams & materialLawParams (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
template<class Context >
Scalar temperature (const Context &, unsigned, unsigned) const
 
Auxiliary methods
std::string name () const
 The problem name. More...
 
void beginTimeStep ()
 Called by the simulator before each time integration. More...
 
void beginIteration ()
 Called by the simulator before each Newton-Raphson iteration. More...
 
void endTimeStep ()
 Called by the simulator after each time integration. More...
 
Boundary conditions
template<class Context >
void boundary (BoundaryRateVector &values, const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 Evaluate the boundary conditions for a boundary segment. More...
 
Volumetric terms
template<class Context >
void initial (PrimaryVariables &values, const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 Evaluate the initial value for a control volume. More...
 
template<class Context >
void source (RateVector &rate, const Context &, unsigned, unsigned) const
 Evaluate the source term for all phases within a given sub-control-volume. More...
 

Static Public Member Functions

static void registerParameters ()
 
static std::string briefDescription ()
 Returns a human readable description of the problem for the help message. More...
 

Detailed Description

template<class TypeTag>
class Opm::LensProblem< TypeTag >

Soil contamination problem where DNAPL infiltrates a fully water saturated medium.

The domain is sized 6m times 4m and features a rectangular lens with low permeablility which spans from (1m, 2m) to (4m, 3m) and is surrounded by a medium with higher permability. Note that this problem is discretized using only two dimensions, so from the point of view of the model, the depth of the domain is implicitly assumed to be 1 m everywhere.

On the top and the bottom of the domain no-flow boundary conditions are used, while free-flow conditions apply on the left and right boundaries; DNAPL is injected at the top boundary from 3m to 4m at a rate of 0.04 kg/(s m^2).

At the boundary on the left, a free-flow condition using the hydrostatic pressure scaled by a factor of 1.125 is imposed, while on the right, it is just the hydrostatic pressure. The DNAPL saturation on both sides is zero.

Constructor & Destructor Documentation

◆ LensProblem()

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

Member Function Documentation

◆ beginIteration()

template<class TypeTag >
void Opm::LensProblem< TypeTag >::beginIteration ( )
inline

Called by the simulator before each Newton-Raphson iteration.

◆ beginTimeStep()

template<class TypeTag >
void Opm::LensProblem< TypeTag >::beginTimeStep ( )
inline

Called by the simulator before each time integration.

◆ boundary()

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

Evaluate the boundary conditions for a boundary segment.

Parameters
valuesStores the fluxes over the boundary segment.
contextThe object representing the execution context from which this method is called.
spaceIdxThe local index of the spatial entity which represents the boundary segment.
timeIdxThe index used for the time discretization

References Opm::LensProblem< TypeTag >::materialLawParams(), and Opm::LensProblem< TypeTag >::temperature().

◆ briefDescription()

template<class TypeTag >
static std::string Opm::LensProblem< TypeTag >::briefDescription ( )
inlinestatic

Returns a human readable description of the problem for the help message.

The problem description is printed as part of the –help message. It is optional and should not exceed one or two lines of text.

◆ endTimeStep()

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

Called by the simulator after each time integration.

This method is intended to do some post processing of the solution. (e.g., some additional output)

◆ finishInit()

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

Called by the Opm::Simulator in order to initialize the problem.

If you overload this method don't forget to call ParentType::finishInit()

◆ initial()

template<class TypeTag >
template<class Context >
void Opm::LensProblem< TypeTag >::initial ( PrimaryVariables &  values,
const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

Evaluate the initial value for a control volume.

Parameters
valuesStores the primary variables.
contextThe object representing the execution context from which this method is called.
spaceIdxThe local index of the spatial entity which represents the boundary segment.
timeIdxThe index used for the time discretization

References Opm::LensProblem< TypeTag >::materialLawParams().

◆ intrinsicPermeability()

template<class TypeTag >
template<class Context >
const DimMatrix & Opm::LensProblem< TypeTag >::intrinsicPermeability ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

◆ materialLawParams()

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

◆ name()

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

The problem name.

This is used as a prefix for files generated by the simulation. It is highly recommend to overwrite this method in the concrete problem which is simulated.

◆ porosity()

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

◆ registerParameters()

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

◆ source()

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

Evaluate the source term for all phases within a given sub-control-volume.

Parameters
rateStores the values of the volumetric creation/anihilition rates of the conserved quantities.
contextThe object representing the execution context from which this method is called.
spaceIdxThe local index of the spatial entity which represents the boundary segment.
timeIdxThe index used for the time discretization

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

◆ temperature()

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

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