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

Class for calculating 2-d velocities from cell-wise constant pressure values. More...

#include <dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocity.hh>

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

Description

template<class TypeTag>
class Dumux::FvMpfaL2dVelocity2p< TypeTag >

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!

Template Parameters
TypeTagThe problem Type Tag

Public Member Functions

 FvMpfaL2dVelocity2p (Problem &problem)
 Constructs a FvMpfaL2dVelocity2p object. 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...
 

Constructor & Destructor Documentation

◆ FvMpfaL2dVelocity2p()

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

Constructs a FvMpfaL2dVelocity2p object.

Parameters
problemA problem class object

Member Function Documentation

◆ addOutputVtkFields()

template<class TypeTag >
template<class MultiWriter >
void Dumux::FvMpfaL2dVelocity2p< 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. If the VtkOutputLevel is equal to zero (default) only primary variables are written, if it is larger than zero also secondary variables are written.

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

◆ calculateBoundaryInteractionVolumeVelocity()

template<class TypeTag >
void Dumux::FvMpfaL2dVelocity2p< 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.

Parameters
interactionVolumeAn InteractionVolume object including the information for calculating the MPFA transmissibilities
cellDataCellData object of an IMPES model for the sub-volume including the boundary face
elemIdxlocal sub-volume index

◆ calculateInnerInteractionVolumeVelocity()

template<class TypeTag >
void Dumux::FvMpfaL2dVelocity2p< TypeTag >::calculateInnerInteractionVolumeVelocity ( InteractionVolume interactionVolume,
CellData &  cellData1,
CellData &  cellData2,
CellData &  cellData3,
CellData &  cellData4,
InnerBoundaryVolumeFaces &  innerBoundaryVolumeFaces 
)

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.

Parameters
interactionVolumeAn InteractionVolume object including the information for calculating the MPFA transmissibilities
cellData1CellData object of an IMPES model for sub-volume 1
cellData2CellData object of an IMPES model for sub-volume 2
cellData3CellData object of an IMPES model for sub-volume 3
cellData4CellData object of an IMPES model for sub-volume 4
innerBoundaryVolumeFacescontainer including information about faces intersecting a boundary

◆ initialize()

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

Initializes the velocity model.

Member Data Documentation

◆ density_

template<class TypeTag >
Scalar Dumux::FvMpfaL2dVelocity2p< TypeTag >::density_[numPhases]
protected

◆ gravity_

template<class TypeTag >
const GravityVector& Dumux::FvMpfaL2dVelocity2p< TypeTag >::gravity_
protected

◆ pressureType_

template<class TypeTag >
const int Dumux::FvMpfaL2dVelocity2p< TypeTag >::pressureType_ = getPropValue<TypeTag, Properties::PressureFormulation>()
staticprotected

gives kind of pressure used ( \( 0 = p_w\), \( 1 = p_n\), \( 2 = p_{global}\))

◆ saturationType_

template<class TypeTag >
const int Dumux::FvMpfaL2dVelocity2p< TypeTag >::saturationType_ = getPropValue<TypeTag, Properties::SaturationFormulation>()
staticprotected

gives kind of saturation used ( \( 0 = S_w\), \( 1 = S_n\))

◆ threshold_

template<class TypeTag >
constexpr Scalar Dumux::FvMpfaL2dVelocity2p< TypeTag >::threshold_ = 1e-15
staticconstexprprotected

◆ transmissibilityCalculator_

template<class TypeTag >
TransmissibilityCalculator Dumux::FvMpfaL2dVelocity2p< TypeTag >::transmissibilityCalculator_
protected

◆ velocityType_

template<class TypeTag >
const int Dumux::FvMpfaL2dVelocity2p< TypeTag >::velocityType_ = getPropValue<TypeTag, Properties::VelocityFormulation>()
staticprotected

gives kind of velocity used ( \( 0 = v_w\), \( 1 = v_n\), \( 2 = v_t\))

◆ viscosity_

template<class TypeTag >
Scalar Dumux::FvMpfaL2dVelocity2p< TypeTag >::viscosity_[numPhases]
protected

◆ vtkOutputLevel_

template<class TypeTag >
int Dumux::FvMpfaL2dVelocity2p< TypeTag >::vtkOutputLevel_
protected

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