Loading...
Searching...
No Matches
Opm::ImmiscibleModel< TypeTag > Class Template Reference

A fully-implicit multi-phase flow model which assumes immiscibility of the phases. More...

`#include <immisciblemodel.hh>`

Inheritance diagram for Opm::ImmiscibleModel< TypeTag >:

## Public Member Functions

| ImmiscibleModel (Simulator &simulator)
std::string | primaryVarName (unsigned pvIdx) const
| Given an primary variable index, return a human readable name.
std::string | eqName (unsigned eqIdx) const
| Given an equation index, return a human readable name.
void | updateBegin ()
| Called by the update() method before it tries to apply the newton method.
Scalar | primaryVarWeight (unsigned globalDofIdx, unsigned pvIdx) const
Scalar | eqWeight (unsigned globalDofIdx, unsigned eqIdx) const
void | registerOutputModules_ ()
Public Member Functions inherited from Opm::MultiPhaseBaseModel< TypeTag >
| MultiPhaseBaseModel (Simulator &simulator)
bool | phaseIsConsidered (unsigned) const
| Returns true iff a fluid phase is used by the model.
void | globalPhaseStorage (EqVector &storage, unsigned phaseIdx)
| Compute the total storage inside one phase of all conservation quantities.
void | registerOutputModules_ ()

## Static Public Member Functions

static void | registerParameters ()
| Register all run-time parameters for the immiscible model.
static std::string | name ()
Static Public Member Functions inherited from Opm::MultiPhaseBaseModel< TypeTag >
static void | registerParameters ()
| Register all run-time parameters for the immiscible model.

## Detailed Description

template<class TypeTag>
class Opm::ImmiscibleModel< TypeTag >

A fully-implicit multi-phase flow model which assumes immiscibility of the phases.

This model implements multi-phase flow of immiscible fluids . By default, the standard multi-phase Darcy approach is used to determine the velocity, i.e.

although the actual approach which is used can be specified via the `FluxModule` property. For example, the velocity model can by changed to the Forchheimer approach by

template<class TypeTag>
struct FluxModule<TypeTag, TTag::MyProblemTypeTag> { using type = Opm::ForchheimerFluxModule<TypeTag>; };
Opm::ForchheimerFluxModule
Specifies a flux module which uses the Forchheimer relation.
Definition forchheimerfluxmodule.hh:66

The core of the model is the conservation mass of each component by means of the equation

The model uses the following primary variables:

- The pressure in Pascal of the phase with the lowest index
- The saturations of the phases that exhibit the lowest indices
- The absolute temperature in Kelvin if energy is conserved via the energy equation

## Member Function Documentation

## eqName()

template<class TypeTag>

std::string Opm::ImmiscibleModel< TypeTag >::eqName | ( | unsigned | eqIdx | ) | const

inline

Given an equation index, return a human readable name.

Parameters

  eqIdx | The index of the conservation equation of interest.

## eqWeight()

template<class TypeTag>

Scalar Opm::ImmiscibleModel< TypeTag >::eqWeight | ( | unsigned | globalDofIdx,
|  | unsigned | eqIdx ) const

inline

Parameters

  globalVertexIdx | The global index of the vertex
  eqIdx | The index of the equation
  globalDofIdx | Global index
  eqIdx | Equation index

## name()

template<class TypeTag>

std::string Opm::ImmiscibleModel< TypeTag >::name | ( |  | ) |

inline static

## primaryVarName()

template<class TypeTag>

std::string Opm::ImmiscibleModel< TypeTag >::primaryVarName | ( | unsigned | pvIdx | ) | const

inline

Given an primary variable index, return a human readable name.

Parameters

  pvIdx | The index of the primary variable of interest.

## primaryVarWeight()

template<class TypeTag>

Scalar Opm::ImmiscibleModel< TypeTag >::primaryVarWeight | ( | unsigned | globalDofIdx,
|  | unsigned | pvIdx ) const

inline

Parameters

  globalDofIdx | The global index of the degree of freedom
  pvIdx | The index of the primary variable

## updateBegin()

template<class TypeTag>

void Opm::ImmiscibleModel< TypeTag >::updateBegin | ( |  | ) |

inline

Called by the update() method before it tries to apply the newton method.

This is primary a hook which the actual model can overload.

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

- opm/models/immiscible/immisciblemodel.hh