Class for calculating 3-d velocities from cell-wise constant pressure values. More...
#include <dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocity.hh>
Class for calculating 3-d 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 L-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 3-D Hexahedrons of quadrilaterals!
TypeTag | The problem Type Tag |
Public Member Functions | |
FvMpfaL3dVelocity2p (Problem &problem) | |
Constructs a FvMpfaL3dVelocity2p object. More... | |
void | calculateInnerInteractionVolumeVelocity (InteractionVolume &interactionVolume, CellData &cellData1, CellData &cellData2, CellData &cellData3, CellData &cellData4, CellData &cellData5, CellData &cellData6, CellData &cellData7, CellData &cellData8, InteractionVolumeContainer &interactionVolumes, TransmissibilityCalculator &transmissibilityCalculator, int fIdx=-1) |
Calculate velocities for 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 (bool solveTwice=true) |
Initializes the velocity model. More... | |
template<class MultiWriter > | |
void | addOutputVtkFields (MultiWriter &writer) |
Adds velocity output to the output file. More... | |
|
inline |
Constructs a FvMpfaL3dVelocity2p 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. 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::FvMpfaL3dVelocity2p< 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::FvMpfaL3dVelocity2p< TypeTag >::calculateInnerInteractionVolumeVelocity | ( | InteractionVolume & | interactionVolume, |
CellData & | cellData1, | ||
CellData & | cellData2, | ||
CellData & | cellData3, | ||
CellData & | cellData4, | ||
CellData & | cellData5, | ||
CellData & | cellData6, | ||
CellData & | cellData7, | ||
CellData & | cellData8, | ||
InteractionVolumeContainer & | interactionVolumes, | ||
TransmissibilityCalculator & | transmissibilityCalculator, | ||
int | fIdx = -1 |
||
) |
Calculate velocities for 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 |
cellData5 | CellData object of an IMPES model for sub-volume 5 |
cellData6 | CellData object of an IMPES model for sub-volume 6 |
cellData7 | CellData object of an IMPES model for sub-volume 7 |
cellData8 | CellData object of an IMPES model for sub-volume 8 |
interactionVolumes | Container including the interaction volume information for the complete grid |
transmissibilityCalculator | Object including the methods for calculating the transmissibilities |
fIdx | Index of the flux face for which the velocity has to be calculated. If no face index is given, fIdx = -1 and velocities for all flux faces in the interaction volume are calculated! |
|
inline |
Initializes the velocity model.