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

Non-isothermal three-phase gas injection problem where a hot gas is injected into a unsaturated porous medium with a residually trapped NAPL contamination. More...

#include <cuvetteproblem.hh>

Inheritance diagram for Opm::CuvetteProblem< TypeTag >:

Public Member Functions

 CuvetteProblem (Simulator &simulator)
 
void finishInit ()
 
Auxiliary methods
bool shouldWriteRestartFile () const
 
std::string name () const
 
void endTimeStep ()
 
Soil parameters
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 ThermalConductionLawParams & thermalConductionParams (const Context &, unsigned, unsigned) 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 &, unsigned, unsigned) const
 

Detailed Description

template<class TypeTag>
class Opm::CuvetteProblem< TypeTag >

Non-isothermal three-phase gas injection problem where a hot gas is injected into a unsaturated porous medium with a residually trapped NAPL contamination.

The domain is a quasi-two-dimensional container (cuvette). Its dimensions are 1.5 m x 0.74 m. The top and bottom boundaries are closed, the right boundary is a free-flow boundary allowing fluids to escape. From the left, an injection of a hot water-air mixture is injected. The set-up is aimed at remediating an initial NAPL (Non-Aquoeus Phase Liquid) contamination in the domain. The contamination is initially placed partly into the ambient coarse sand and partly into a fine sand lens.

This simulation can be varied through assigning different boundary conditions at the left boundary as described in Class (2001): Theorie und numerische Modellierung nichtisothermer Mehrphasenprozesse in NAPL-kontaminierten poroesen Medien, Dissertation, Eigenverlag des Instituts fuer Wasserbau

To see the basic effect and the differences to scenarios with pure steam or pure air injection, it is sufficient to simulate this problem to about 2-3 hours simulation time. Complete remediation of the domain requires much longer (about 10 days simulated time).

Constructor & Destructor Documentation

◆ CuvetteProblem()

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

Member Function Documentation

◆ boundary()

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

◆ endTimeStep()

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

◆ finishInit()

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

◆ initial()

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

◆ intrinsicPermeability()

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

◆ materialLawParams()

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

◆ name()

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

◆ porosity()

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

◆ shouldWriteRestartFile()

template<class TypeTag >
bool Opm::CuvetteProblem< TypeTag >::shouldWriteRestartFile ( ) const
inline

This problem writes a restart file after every time step.

◆ source()

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

◆ thermalConductionParams()

template<class TypeTag >
template<class Context >
const ThermalConductionLawParams & Opm::CuvetteProblem< TypeTag >::thermalConductionParams ( const Context &  ,
unsigned  ,
unsigned   
) const
inline


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