My Project
Opm::Co2InjectionProblem< TypeTag > Class Template Reference

Problem where $CO_2$ is injected under a low permeable layer at a depth of 2700m. More...

#include <co2injectionproblem.hh>

Inheritance diagram for Opm::Co2InjectionProblem< TypeTag >:

Public Member Functions

 Co2InjectionProblem (Simulator &simulator)
 
void finishInit ()
 
Problem parameters
std::string name () const
 
void endTimeStep ()
 
template<class Context >
Scalar temperature (const Context &context, unsigned spaceIdx, unsigned timeIdx) 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 heat storage law of the rock. More...
 
template<class Context >
const ThermalConductionLawParams & thermalConductionLawParams (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
 

Static Public Member Functions

static void registerParameters ()
 

Detailed Description

template<class TypeTag>
class Opm::Co2InjectionProblem< TypeTag >

Problem where $CO_2$ is injected under a low permeable layer at a depth of 2700m.

The domain is sized 60m times 40m and consists of two layers, one which is moderately permeable ( $K = 10^{-12}\;m^2$) for $ y > 22\; m$ and one with a lower intrinsic permeablility ( $ K=10^{-13}\;m^2$) in the rest of the domain.

$CO_2$ gets injected by means of a forced-flow boundary condition into water-filled aquifer, which is situated 2700m below sea level, at the lower-right boundary ( $5m<y<15m$) and migrates upwards due to buoyancy. It accumulates and eventually enters the lower permeable aquitard.

The boundary conditions applied by this problem are no-flow conditions on the top bottom and right boundaries and a free-flow boundary condition on the left. For the free-flow condition, hydrostatic pressure is assumed.

Constructor & Destructor Documentation

◆ Co2InjectionProblem()

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

Member Function Documentation

◆ boundary()

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

◆ endTimeStep()

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

◆ finishInit()

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

◆ initial()

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

◆ intrinsicPermeability()

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

◆ materialLawParams()

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

◆ name()

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

◆ porosity()

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

◆ registerParameters()

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

◆ solidEnergyLawParams()

template<class TypeTag >
template<class Context >
const SolidEnergyLawParams& Opm::Co2InjectionProblem< TypeTag >::solidEnergyLawParams ( const Context &context  OPM_UNUSED,
unsigned spaceIdx  OPM_UNUSED,
unsigned timeIdx  OPM_UNUSED 
) const
inline

Return the parameters for the heat 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::Co2InjectionProblem< 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::Co2InjectionProblem< TypeTag >::temperature ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

◆ thermalConductionLawParams()

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


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