Class for calculating 2-d velocities from cell-wise constant pressure values. More...
#include <dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocityadaptive.hh>
Class for calculating 2-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 quadrilaterals!
TypeTag | The problem Type Tag |
Public Member Functions | |
FvMpfaL2dVelocity2pAdaptive (Problem &problem) | |
Constructs a FvMpfaL2dVelocity2pAdaptive object. More... | |
void | calculateHangingNodeInteractionVolumeVelocity (InteractionVolume &interactionVolume, CellData &cellData1, CellData &cellData2, CellData &cellData4, InnerBoundaryVolumeFaces &innerBoundaryVolumeFaces) |
Calculatex velocities for flux faces of a hanging node interaction volume. More... | |
void | calculateInnerInteractionVolumeVelocity (InteractionVolume &interactionVolume, CellData &cellData1, CellData &cellData2, CellData &cellData3, CellData &cellData4, InnerBoundaryVolumeFaces &innerBoundaryVolumeFaces) |
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 () |
Initializes the velocity model. More... | |
template<class MultiWriter > | |
void | addOutputVtkFields (MultiWriter &writer) |
Adds velocity output to the output file. More... | |
Protected Attributes | |
TransmissibilityCalculator | transmissibilityCalculator_ |
const GravityVector & | gravity_ |
Scalar | density_ [numPhases] |
Scalar | viscosity_ [numPhases] |
int | vtkOutputLevel_ |
Static Protected Attributes | |
static constexpr Scalar | threshold_ = 1e-15 |
static const int | velocityType_ = getPropValue<TypeTag, Properties::VelocityFormulation>() |
gives kind of velocity used ( \( 0 = v_w\), \( 1 = v_n\), \( 2 = v_t\)) More... | |
static const int | pressureType_ = getPropValue<TypeTag, Properties::PressureFormulation>() |
gives kind of pressure used ( \( 0 = p_w\), \( 1 = p_n\), \( 2 = p_{global}\)) More... | |
static const int | saturationType_ = getPropValue<TypeTag, Properties::SaturationFormulation>() |
gives kind of saturation used ( \( 0 = S_w\), \( 1 = S_n\)) More... | |
|
inline |
Constructs a FvMpfaL2dVelocity2pAdaptive object.
problem | A problem class object |
|
inlineinherited |
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) |
|
inherited |
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::FvMpfaL2dVelocity2pAdaptive< TypeTag >::calculateHangingNodeInteractionVolumeVelocity | ( | InteractionVolume & | interactionVolume, |
CellData & | cellData1, | ||
CellData & | cellData2, | ||
CellData & | cellData4, | ||
InnerBoundaryVolumeFaces & | innerBoundaryVolumeFaces | ||
) |
Calculatex velocities for flux faces of a hanging node interaction volume.
Calculates the velocities at the flux faces of an interation volume around a hanging node vertex.
Calculates the velocities at the flux faces of an interation volume around a hanging node 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 |
cellData4 | CellData object of an IMPES model for sub-volume 4 |
innerBoundaryVolumeFaces | container including information about faces intersecting a boundary |
|
inherited |
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 |
innerBoundaryVolumeFaces | container including information about faces intersecting a boundary |
|
inlineinherited |
Initializes the velocity model.
|
protectedinherited |
|
protectedinherited |
|
staticprotectedinherited |
gives kind of pressure used ( \( 0 = p_w\), \( 1 = p_n\), \( 2 = p_{global}\))
|
staticprotectedinherited |
gives kind of saturation used ( \( 0 = S_w\), \( 1 = S_n\))
|
staticconstexprprotectedinherited |
|
protectedinherited |
|
staticprotectedinherited |
gives kind of velocity used ( \( 0 = v_w\), \( 1 = v_n\), \( 2 = v_t\))
|
protectedinherited |
|
protectedinherited |