All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
immisciblemodel.hh File Reference

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

#include <opm/material/densead/Math.hpp>
#include "immiscibleproperties.hh"
#include "immiscibleindices.hh"
#include "immiscibleextensivequantities.hh"
#include "immiscibleprimaryvariables.hh"
#include "immiscibleintensivequantities.hh"
#include "immiscibleratevector.hh"
#include "immiscibleboundaryratevector.hh"
#include "immisciblelocalresidual.hh"
#include <ewoms/models/common/multiphasebasemodel.hh>
#include <ewoms/models/common/energymodule.hh>
#include <ewoms/io/vtkenergymodule.hh>
#include <opm/material/components/NullComponent.hpp>
#include <opm/material/fluidsystems/GasPhase.hpp>
#include <opm/material/fluidsystems/LiquidPhase.hpp>
#include <opm/material/fluidsystems/SinglePhaseFluidSystem.hpp>
#include <opm/material/fluidsystems/TwoPhaseImmiscibleFluidSystem.hpp>
#include <sstream>
#include <string>

Go to the source code of this file.

Classes

class  Ewoms::ImmiscibleModel< TypeTag >
 A fully-implicit multi-phase flow model which assumes immiscibility of the phases. More...
 
class  Ewoms::ImmiscibleModel< TypeTag >
 A fully-implicit multi-phase flow model which assumes immiscibility of the phases. More...
 

Functions

 Ewoms::Properties::NEW_TYPE_TAG (ImmiscibleModel, INHERITS_FROM(MultiPhaseBaseModel, VtkEnergy))
 The generic type tag for problems using the immiscible multi-phase model.
 
 Ewoms::Properties::NEW_TYPE_TAG (ImmiscibleSinglePhaseModel, INHERITS_FROM(ImmiscibleModel))
 The type tag for single-phase immiscible problems.
 
 Ewoms::Properties::NEW_TYPE_TAG (ImmiscibleTwoPhaseModel, INHERITS_FROM(ImmiscibleModel))
 The type tag for two-phase immiscible problems.
 
 Ewoms::Properties::SET_TYPE_PROP (ImmiscibleModel, LocalResidual, Ewoms::ImmiscibleLocalResidual< TypeTag >)
 Use the immiscible multi-phase local jacobian operator for the immiscible multi-phase model.
 
 Ewoms::Properties::SET_TYPE_PROP (ImmiscibleModel, Model, Ewoms::ImmiscibleModel< TypeTag >)
 the Model property
 
 Ewoms::Properties::SET_TYPE_PROP (ImmiscibleModel, RateVector, Ewoms::ImmiscibleRateVector< TypeTag >)
 the RateVector property
 
 Ewoms::Properties::SET_TYPE_PROP (ImmiscibleModel, BoundaryRateVector, Ewoms::ImmiscibleBoundaryRateVector< TypeTag >)
 the BoundaryRateVector property
 
 Ewoms::Properties::SET_TYPE_PROP (ImmiscibleModel, PrimaryVariables, Ewoms::ImmisciblePrimaryVariables< TypeTag >)
 the PrimaryVariables property
 
 Ewoms::Properties::SET_TYPE_PROP (ImmiscibleModel, IntensiveQuantities, Ewoms::ImmiscibleIntensiveQuantities< TypeTag >)
 the IntensiveQuantities property
 
 Ewoms::Properties::SET_TYPE_PROP (ImmiscibleModel, ExtensiveQuantities, Ewoms::ImmiscibleExtensiveQuantities< TypeTag >)
 the ExtensiveQuantities property
 
 Ewoms::Properties::SET_TYPE_PROP (ImmiscibleModel, Indices, Ewoms::ImmiscibleIndices< TypeTag, 0 >)
 The indices required by the isothermal immiscible multi-phase model.
 
 Ewoms::Properties::SET_BOOL_PROP (ImmiscibleModel, EnableEnergy, false)
 Disable the energy equation by default.
 
 Ewoms::Properties::SET_PROP (ImmiscibleSinglePhaseModel, FluidSystem)
 The fluid system to use by default.
 
 Ewoms::Properties::SET_PROP (ImmiscibleSinglePhaseModel, Fluid)
 
 Ewoms::Properties::SET_BOOL_PROP (ImmiscibleSinglePhaseModel, VtkWriteSaturations, false)
 
 Ewoms::Properties::SET_BOOL_PROP (ImmiscibleSinglePhaseModel, VtkWriteMobilities, false)
 
 Ewoms::Properties::SET_BOOL_PROP (ImmiscibleSinglePhaseModel, VtkWriteRelativePermeabilities, false)
 
 Ewoms::Properties::SET_PROP (ImmiscibleTwoPhaseModel, WettingPhase)
 
 Ewoms::Properties::SET_PROP (ImmiscibleTwoPhaseModel, NonwettingPhase)
 
 Ewoms::Properties::SET_PROP (ImmiscibleTwoPhaseModel, FluidSystem)
 

Detailed Description

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

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

\[ \mathbf{v}_\alpha = - \frac{k_{r\alpha}}{\mu_\alpha} \mathbf{K}\left(\mathbf{grad}\, p_\alpha - \varrho_{\alpha} \mathbf{g} \right) \;, \]

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

* SET_TYPE_PROP(MyProblemTypeTag, FluxModule, Ewoms::ForchheimerFluxModule<TypeTag>);
*

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

\[ \frac{\partial\;\phi S_\alpha \rho_\alpha }{\partial t} - \mathrm{div} \left\{ \rho_\alpha \mathbf{v}_\alpha \right\} - q_\alpha = 0 \;. \]

The model uses the following primary variables:

  • The pressure $p_0$ in Pascal of the phase with the lowest index
  • The saturations $S_\alpha$ of the $M - 1$ phases that exhibit the lowest indices
  • The absolute temperature $T$ in Kelvin if energy is conserved via the energy equation