My Project
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 >:

Public Member Functions

 ObstacleProblem (Simulator &simulator)
 
void finishInit ()
 
void endTimeStep ()
 
Problem parameters
std::string name () const
 
template<class Context >
Scalar temperature (const Context &context OPM_UNUSED, unsigned spaceIdx OPM_UNUSED, unsigned timeIdx OPM_UNUSED) 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 &context OPM_UNUSED, unsigned spaceIdx OPM_UNUSED, unsigned timeIdx OPM_UNUSED) 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
 
Volumetric terms
template<class Context >
void initial (PrimaryVariables &values, const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
template<class Context >
void source (RateVector &rate, const Context &context OPM_UNUSED, unsigned spaceIdx OPM_UNUSED, unsigned timeIdx OPM_UNUSED) const
 

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

◆ endTimeStep()

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

◆ finishInit()

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

◆ initial()

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

◆ 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

◆ porosity()

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

◆ solidEnergyLawParams()

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

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 &context  OPM_UNUSED,
unsigned spaceIdx  OPM_UNUSED,
unsigned timeIdx  OPM_UNUSED 
) 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: