3.2-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Member Functions | List of all members
Dumux::FVVelocity2P< TypeTag > Class Template Reference

Determines the velocity from a finite volume solution of the pressure equation of a sequential model (IMPES). More...

#include <dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocity.hh>

Inheritance diagram for Dumux::FVVelocity2P< TypeTag >:
Inheritance graph

Description

template<class TypeTag>
class Dumux::FVVelocity2P< TypeTag >

Determines the velocity from a finite volume solution of the pressure equation of a sequential model (IMPES).

Calculates phase velocities or total velocity from a known pressure field applying a finite volume discretization. The wetting or the non-wetting phase pressure, or the global pressure has to be given as piecewise constant cell values. The phase velocities are calculated following Darcy's law as

\[ v_\alpha = - \frac{k_{r\alpha}}{\mu_\alpha} \textbf{K} \left(\textbf{grad}\, p_\alpha - \varrho_{\alpha} {\textbf g} \right), \]

where \( p_\alpha \) denotes the pressure of phase \(\alpha \in \{ w, n \}\), \( \boldsymbol K \) the absolute permeability tensor, \( \lambda_\alpha \) the phase mobility, \( \varrho_\alpha \) the phase density and \( {\textbf g} \) the gravitational acceleration vector. The total velocity is either calculated as sum of the phase velocities

\[ \boldsymbol v_{total} = \boldsymbol v_{wetting}+\boldsymbol v_{non-wetting}, \]

or with a given global pressure

\[ \boldsymbol v_{total} = \lambda_{total} \boldsymbol K \left(\textbf{grad}\, p_{global} - \sum f_\alpha \varrho_\alpha {\textbf g}\right). \]

Template Parameters
TypeTagThe Type Tag

Public Member Functions

 FVVelocity2P (Problem &problem)
 Constructs a FVVelocity2P object. More...
 
void initialize ()
 For initialization. More...
 
void calculateVelocity (const Intersection &, CellData &)
 Calculates the velocity at a cell-cell interface. More...
 
void calculateVelocityOnBoundary (const Intersection &, CellData &)
 Calculates the velocity at a boundary. More...
 
bool calculateVelocityInTransport ()
 Indicates if velocity is reconstructed in the pressure step or in the transport step. More...
 
template<class MultiWriter >
void addOutputVtkFields (MultiWriter &writer)
 Adds velocity output to the output file. More...
 

Constructor & Destructor Documentation

◆ FVVelocity2P()

template<class TypeTag >
Dumux::FVVelocity2P< TypeTag >::FVVelocity2P ( Problem &  problem)
inline

Constructs a FVVelocity2P object.

Parameters
problemA Problem class object

Member Function Documentation

◆ addOutputVtkFields()

template<class TypeTag >
template<class MultiWriter >
void Dumux::FVVelocity2P< TypeTag >::addOutputVtkFields ( MultiWriter &  writer)
inline

Adds velocity output to the output file.

Adds the phase velocities or a total velocity (depending on the formulation) to the output.

Template Parameters
MultiWriterClass defining the output writer
Parameters
writerThe output writer (usually a VTKMultiWriter object)

◆ calculateVelocity()

template<class TypeTag >
void Dumux::FVVelocity2P< TypeTag >::calculateVelocity ( const Intersection &  intersection,
CellData &  cellData 
)

Calculates the velocity at a cell-cell interface.

Calculates the velocity at a cell-cell interface from a given pressure field.

Parameters
intersectionIntersection of two grid cells
cellDataObject containing all model relevant cell data

◆ calculateVelocityInTransport()

template<class TypeTag >
bool Dumux::FVVelocity2P< TypeTag >::calculateVelocityInTransport ( )
inline

Indicates if velocity is reconstructed in the pressure step or in the transport step.

Returns true (In the standard finite volume discretization the velocity is calculated during the saturation transport.)

◆ calculateVelocityOnBoundary()

template<class TypeTag >
void Dumux::FVVelocity2P< TypeTag >::calculateVelocityOnBoundary ( const Intersection &  intersection,
CellData &  cellData 
)

Calculates the velocity at a boundary.

Calculates the velocity at a boundary from a given pressure field.

Parameters
intersectionBoundary intersection
cellDataObject containing all model relevant cell data

◆ initialize()

template<class TypeTag >
void Dumux::FVVelocity2P< TypeTag >::initialize ( )
inline

For initialization.


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