Class for calculating velocities from cell-wise constant pressure values. More...
#include <dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dvelocity.hh>
Class for calculating velocities from cell-wise constant pressure values.
Calculates phase velocities or total velocity from a known pressure field applying a finite volume discretization and a MPFA O-method. At Dirichlet boundaries a two-point flux approximation is used. The pressure has to be given as piecewise constant cell values. The velocities are calculated as
\[ \boldsymbol v_\alpha = - \lambda_\alpha \boldsymbol K \textbf{grad}\, \Phi_\alpha, \]
and,
\[ \boldsymbol v_t = \boldsymbol v_w + \boldsymbol v_n,\]
where \( \Phi_\alpha \) denotes the potential of phase \( \alpha \), \( \boldsymbol K \) the intrinsic permeability, and \( \lambda_\alpha \) a phase mobility.
Remark1: only for 2-D quadrilateral grids!
TypeTag | The problem Type Tag |
Public Member Functions | |
FvMpfaO2dVelocity2P (Problem &problem) | |
void | calculateInnerInteractionVolumeVelocity (InteractionVolume &interactionVolume, CellData &cellData1, CellData &cellData2, CellData &cellData3, CellData &cellData4, InnerBoundaryVolumeFaces &innerBoundaryVolumeFaces) |
Calculates velocities for all flux faces of an interaction volume. More... | |
void | calculateBoundaryInteractionVolumeVelocity (InteractionVolume &interactionVolume, CellData &cellData, int elemIdx) |
Calculates the velocity at a boundary flux faces. More... | |
void | initialize () |
Initializes the velocity model. More... | |
template<class MultiWriter > | |
void | addOutputVtkFields (MultiWriter &writer) |
Adds velocity output to the output file. More... | |
|
inline |
|
inline |
Adds velocity output to the output file.
Adds the phase velocities or a total velocity (depending on the formulation) to the output. If the VtkOutputLevel is equal to zero (default) only primary variables are written, if it is larger than zero also secondary variables are written.
MultiWriter | Class defining the output writer |
writer | The output writer (usually a VTKMultiWriter object) |
void Dumux::FvMpfaO2dVelocity2P< TypeTag >::calculateBoundaryInteractionVolumeVelocity | ( | InteractionVolume & | interactionVolume, |
CellData & | cellData, | ||
int | elemIdx | ||
) |
Calculates the velocity at a boundary flux faces.
Calculates the velocity at a boundary flux face and adds it to the face velocity vector in the CellData
object.
interactionVolume | An InteractionVolume object including the information for calculating the MPFA transmissibilities |
cellData | CellData object of an IMPES model for the sub-volume including the boundary face |
elemIdx | local sub-volume index |
void Dumux::FvMpfaO2dVelocity2P< TypeTag >::calculateInnerInteractionVolumeVelocity | ( | InteractionVolume & | interactionVolume, |
CellData & | cellData1, | ||
CellData & | cellData2, | ||
CellData & | cellData3, | ||
CellData & | cellData4, | ||
InnerBoundaryVolumeFaces & | innerBoundaryVolumeFaces | ||
) |
Calculates velocities for all flux faces of an interaction volume.
Calculates the velocities at the flux faces of an interation volume around a vertex ! which is not a boundary vertex.
Calculates the velocities at the flux faces of an interation volume around a vertex which is not a boundary vertex and adds them to the face velocity vectors in the CellData
objects.
interactionVolume | An InteractionVolume object including the information for calculating the MPFA transmissibilities |
cellData1 | CellData object of an IMPES model for sub-volume 1 |
cellData2 | CellData object of an IMPES model for sub-volume 2 |
cellData3 | CellData object of an IMPES model for sub-volume 3 |
cellData4 | CellData object of an IMPES model for sub-volume 4 |
innerBoundaryVolumeFaces | container including information about faces intersecting a boundary |
|
inline |
Initializes the velocity model.