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

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