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

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

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

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

Description

template<class TypeTag>
class Dumux::FvMpfaL3dVelocity2pAdaptive< TypeTag >

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!

Remark2: Allowed difference in grid levels of two neighboring cells: 1

Template Parameters
TypeTagThe problem Type Tag

Public Member Functions

 FvMpfaL3dVelocity2pAdaptive (Problem &problem)
 Constructs a FvMpfaL3dVelocity2pAdaptive object. More...
 
void calculateHangingNodeInteractionVolumeVelocity (InteractionVolume &interactionVolume, CellData &cellData1, CellData &cellData2, CellData &cellData3, CellData &cellData4, CellData &cellData5, CellData &cellData6, CellData &cellData7, CellData &cellData8, int fIdx=-1)
 Calculates velocities for flux faces of a hanging node interaction volume. More...
 
void initialize ()
 Initializes the velocity model. 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...
 

Constructor & Destructor Documentation

◆ FvMpfaL3dVelocity2pAdaptive()

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

Constructs a FvMpfaL3dVelocity2pAdaptive object.

Parameters
problemA problem class object

Member Function Documentation

◆ addOutputVtkFields()

template<class TypeTag >
template<class MultiWriter >
void Dumux::FvMpfaL3dVelocity2p< TypeTag >::addOutputVtkFields ( MultiWriter &  writer)
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.

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

◆ calculateBoundaryInteractionVolumeVelocity()

template<class TypeTag >
void Dumux::FvMpfaL3dVelocity2p< TypeTag >::calculateBoundaryInteractionVolumeVelocity ( InteractionVolume &  interactionVolume,
CellData &  cellData,
int  elemIdx 
)
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.

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

◆ calculateHangingNodeInteractionVolumeVelocity()

template<class TypeTag >
void Dumux::FvMpfaL3dVelocity2pAdaptive< TypeTag >::calculateHangingNodeInteractionVolumeVelocity ( InteractionVolume &  interactionVolume,
CellData &  cellData1,
CellData &  cellData2,
CellData &  cellData3,
CellData &  cellData4,
CellData &  cellData5,
CellData &  cellData6,
CellData &  cellData7,
CellData &  cellData8,
int  fIdx = -1 
)

Calculates 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.

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
cellData5CellData object of an IMPES model for sub-volume 5
cellData6CellData object of an IMPES model for sub-volume 6
cellData7CellData object of an IMPES model for sub-volume 7
cellData8CellData object of an IMPES model for sub-volume 8
fIdxIndex 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!

◆ calculateInnerInteractionVolumeVelocity()

template<class TypeTag >
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 
)
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.

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
cellData5CellData object of an IMPES model for sub-volume 5
cellData6CellData object of an IMPES model for sub-volume 6
cellData7CellData object of an IMPES model for sub-volume 7
cellData8CellData object of an IMPES model for sub-volume 8
interactionVolumesContainer including the interaction volume information for the complete grid
transmissibilityCalculatorObject including the methods for calculating the transmissibilities
fIdxIndex 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!

◆ initialize() [1/2]

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

Initializes the velocity model.

◆ initialize() [2/2]

template<class TypeTag >
void Dumux::FvMpfaL3dVelocity2p< TypeTag >::initialize ( bool  solveTwice = true)
inlineinherited

Initializes the velocity model.


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