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>
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). \]
TypeTag | The 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... | |
|
inline |
Constructs a FVVelocity2P object.
problem | A Problem class object |
|
inline |
Adds velocity output to the output file.
Adds the phase velocities or a total velocity (depending on the formulation) to the output.
MultiWriter | Class defining the output writer |
writer | The output writer (usually a VTKMultiWriter object) |
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.
intersection | Intersection of two grid cells |
cellData | Object containing all model relevant cell data |
|
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.)
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.
intersection | Boundary intersection |
cellData | Object containing all model relevant cell data |
|
inline |
For initialization.