Opm::ObstacleProblem< TypeTag > Class Template Reference

Problem where liquid water is first stopped by a low-permeability lens and then seeps though it. More...

#include <obstacleproblem.hh>

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

Public Member Functions

 ObstacleProblem (Simulator &simulator)
 
void finishInit ()
 Called by the Opm::Simulator in order to initialize the problem. More...
 
void endTimeStep ()
 Called by the simulator after each time integration. More...
 
Problem parameters
std::string name () const
 The problem name. More...
 
template<class Context >
Scalar temperature (const Context &, unsigned, unsigned) const
 
template<class Context >
const DimMatrix & intrinsicPermeability (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
template<class Context >
Scalar porosity (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
template<class Context >
const MaterialLawParams & materialLawParams (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
template<class Context >
const SolidEnergyLawParams & solidEnergyLawParams (const Context &, unsigned, unsigned) const
 Return the parameters for the energy storage law of the rock. More...
 
template<class Context >
const ThermalConductionLawParams & thermalConductionParams (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
 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 ()
 

Detailed Description

template<class TypeTag>
class Opm::ObstacleProblem< TypeTag >

Problem where liquid water is first stopped by a low-permeability lens and then seeps though it.

Liquid water is injected by using of a free-flow condition on the lower right of the domain. This water level then raises until hydrostatic pressure is reached. On the left of the domain, a rectangular obstacle with $10^3$ lower permeability than the rest of the domain first stops the for a while until it seeps through it.

The domain is sized 60m times 40m and consists of two media, a moderately permeable soil ( $ K_0=10e-12 m^2$) and an obstacle at $[10; 20]m \times [0; 35]m $ with a lower permeablility of $ K_1=K_0/1000$.

Initially the whole domain is filled by nitrogen, the temperature is $20^\circ C$ for the whole domain. The gas pressure is initially 1 bar, at the inlet of the liquid water on the right side it is 2 bar.

The boundary is no-flow except on the lower 10 meters of the left and the right boundary where a free flow condition is assumed.

Constructor & Destructor Documentation

◆ ObstacleProblem()

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

Member Function Documentation

◆ boundary()

template<class TypeTag >
template<class Context >
void Opm::ObstacleProblem< 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

◆ endTimeStep()

template<class TypeTag >
void Opm::ObstacleProblem< 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::ObstacleProblem< 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::ObstacleProblem< 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::ObstacleProblem< TypeTag >::materialLawParams().

◆ intrinsicPermeability()

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

◆ materialLawParams()

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

◆ name()

template<class TypeTag >
std::string Opm::ObstacleProblem< 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::ObstacleProblem< TypeTag >::porosity ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

◆ registerParameters()

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

◆ solidEnergyLawParams()

template<class TypeTag >
template<class Context >
const SolidEnergyLawParams & Opm::ObstacleProblem< TypeTag >::solidEnergyLawParams ( const Context &  ,
unsigned  ,
unsigned   
) const
inline

Return the parameters for the energy storage law of the rock.

In this case, we assume the rock-matrix to be granite.

◆ source()

template<class TypeTag >
template<class Context >
void Opm::ObstacleProblem< 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::ObstacleProblem< TypeTag >::temperature ( const Context &  ,
unsigned  ,
unsigned   
) const
inline

This problem simply assumes a constant temperature.

◆ thermalConductionParams()

template<class TypeTag >
template<class Context >
const ThermalConductionLawParams & Opm::ObstacleProblem< TypeTag >::thermalConductionParams ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline


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