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

Class including the information of a 3d interaction volume of an adaptive MPFA L-method that does not change with time. More...

#include <dumux/porousmediumflow/sequential/cellcentered/mpfa/linteractionvolume3dadaptive.hh>

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

Description

template<class TypeTag>
class Dumux::FvMpfaL3dInteractionVolumeAdaptive< TypeTag >

Class including the information of a 3d interaction volume of an adaptive MPFA L-method that does not change with time.

Includes information needed to calculate the transmissibility matrices of an L-interaction-volume.

Public Types

enum  HangingNodeTypes {
  noHangingNode = -1 , twoSmallCells = 0 , fourSmallCellsFace = 1 , fourSmallCellsEdge = 2 ,
  fourSmallCellsDiag = 3 , sixSmallCells = 4
}
 The different hanging node interaction volume types (see dissertation M. Wolff, http://elib.uni-stuttgart.de/opus/volltexte/2013/8661/) More...
 
enum  FaceTypes { inside = 1 , boundary = 0 , outside = -1 }
 
enum  { subVolumeTotalNum = IndexTranslator::subVolumeTotalNum , fluxFacesTotalNum = IndexTranslator::fluxFacesTotalNum , fluxEdgesTotalNum = IndexTranslator::fluxEdgesTotalNum }
 

Public Member Functions

 FvMpfaL3dInteractionVolumeAdaptive (const Grid &grid)
 Constructs a FvMpfaL3dInteractionVolumeAdaptive object. More...
 
void reset ()
 Reset the interaction volume (deletes stored data) More...
 
void setSubVolumeElement (const Element &element, int subVolumeIdx)
 Store a dune element as a sub volume element. More...
 
void setHangingNodeType (int hNType)
 Store the type of hanging-node-interaction volume. More...
 
bool sameLevel ()
 Check if elements in the interaction volume are of the same grid level. More...
 
bool hasLevel (int level)
 Check if an element of a certain grid level is stored. More...
 
bool isHangingNodeVolume ()
 Check whether the interaction volume is a hanging-node volume. More...
 
int getHangingNodeType ()
 The type of the interaction volume as type of FvMpfaL3dInteractionVolumeAdaptive<TypeTag>::HangingNodeTypes. More...
 
void printInteractionVolumeInfo ()
 Print the stored interaction volume data. More...
 
void setCenterPosition (const DimVector &centerVertexPos)
 Store position of the central vertex. More...
 
void setFacePosition (const DimVector &pos, int fIdx)
 Store the position of a flux face. More...
 
void setEdgePosition (const DimVector &pos, int edgeIdx)
 Store the center of the edges. More...
 
void setFaceArea (Scalar faceArea, int fIdx)
 Store the flux face areas. More...
 
void setNormal (DimVector &normal, int subVolumeIdx, int subVolumeFaceIdx)
 Store the normals. More...
 
void setBoundary (BoundaryTypes &boundaryTypes, int subVolumeFaceIdx)
 Store the types of boundary conditions. More...
 
void setOutsideFace (int subVolumeFaceIdx)
 Define a flux face to be outside the model domain (for boundary vertices) More...
 
void setDirichletCondition (PrimaryVariables &condition, int subVolumeFaceIdx)
 Store Dirichlet boundary conditions. More...
 
void setNeumannCondition (PrimaryVariables &condition, int subVolumeFaceIdx)
 Store Neumann boundary conditions. More...
 
void setIndexOnElement (int indexInInside, int subVolumeIdx, int subVolumeFaceIdx)
 Store the local dune face index dependent on the local interaction volume indices. More...
 
DimVector & getCenterPosition ()
 The position of the central vertex. More...
 
int getFaceIndexFromSubVolume (int subVolumeIdx, int subVolumeFaceIdx)
 The local interaction volume face index dependent on the local sub volume indices. More...
 
int getEdgeIndexFromSubVolumeFace (int subVolumeIdx, int subVolumeFaceIdx, int subVolumeEdgeIdx)
 The local interaction volume edge index dependent on the local sub volume indices. More...
 
int getElementNumber ()
 Number of stored dune elements. More...
 
int getIndexOnElement (int subVolumeIdx, int subVolumeFaceIdx)
 The local dune face index dependent on the local interaction volume indices. More...
 
Element getSubVolumeElement (int subVolumeIdx)
 The dune element of the interaction volume sub-volume. More...
 
bool hasSubVolumeElement (int subVolumeIdx)
 Check if a dune element is stored for an interaction volume sub-volume. More...
 
BoundaryTypes & getBoundaryType (int subVolumeFaceIdx)
 The boundary types. More...
 
bool isOutsideFace (int subVolumeFaceIdx)
 Check if an interaction volume face is outside the model domain (for boundary vertices) More...
 
bool isInsideFace (int subVolumeFaceIdx)
 Check if an interaction volume face is inside the model domain (for boundary vertices) More...
 
bool isBoundaryFace (int subVolumeFaceIdx)
 Check if an interaction volume face is a model domain boundary (for boundary vertices) More...
 
bool isInnerVolume ()
 Check if an interaction volume is not located around a boundary vertex. More...
 
bool isBoundaryInteractionVolume ()
 Check if an interaction volume is located around a boundary vertex. More...
 
PrimaryVariables & getDirichletValues (int subVolumeFaceIdx)
 The Dirichlet boundary values. More...
 
PrimaryVariables & getNeumannValues (int subVolumeFaceIdx)
 The Neumann boundary values. More...
 
DimVector & getNormal (int subVolumeIdx, int subVolumeFaceIdx)
 The face normal. More...
 
DimVector & getFacePosition (int subVolumeIdx, int subVolumeFaceIdx)
 The position of the face center. More...
 
DimVector & getFacePosition (int fIdx)
 The position of the face center. More...
 
DimVector & getEdgePosition (int subVolumeIdx, int subVolumeFaceIdx, int subVolumeEdgeIdx)
 The position of the edge center. More...
 
DimVector & getEdgePosition (int edgeIdx)
 The position of the edge center. More...
 
Scalar & getFaceArea (int subVolumeIdx, int subVolumeFaceIdx)
 The interaction volume flux face area. More...
 
Scalar & getFaceArea (int fIdx)
 The interaction volume flux face area. More...
 

Member Enumeration Documentation

◆ anonymous enum

template<class TypeTag >
anonymous enum
inherited
Enumerator
subVolumeTotalNum 

Number of sub-volumes in the interaction volume.

fluxFacesTotalNum 

Number of flux faces in the interaction volume.

fluxEdgesTotalNum 

Number of edges in the interaction volume.

◆ FaceTypes

template<class TypeTag >
enum Dumux::FvMpfaL3dInteractionVolume::FaceTypes
inherited
Enumerator
inside 

Flux face is inside the model domain.

boundary 

Flux face is a boundary face.

outside 

Flux face is outside the model domain.

◆ HangingNodeTypes

The different hanging node interaction volume types (see dissertation M. Wolff, http://elib.uni-stuttgart.de/opus/volltexte/2013/8661/)

Enumerator
noHangingNode 

regular interaction volume

twoSmallCells 

hanging-node interaction volume of type 5 or 7

fourSmallCellsFace 

hanging-node interaction volume of type 1

fourSmallCellsEdge 

hanging-node interaction volume of type 3

fourSmallCellsDiag 

hanging-node interaction volume of type 4

sixSmallCells 

hanging-node interaction volume of type 2 or 6

Constructor & Destructor Documentation

◆ FvMpfaL3dInteractionVolumeAdaptive()

template<class TypeTag >
Dumux::FvMpfaL3dInteractionVolumeAdaptive< TypeTag >::FvMpfaL3dInteractionVolumeAdaptive ( const Grid &  grid)
inline

Constructs a FvMpfaL3dInteractionVolumeAdaptive object.

Member Function Documentation

◆ getBoundaryType()

template<class TypeTag >
BoundaryTypes & Dumux::FvMpfaL3dInteractionVolume< TypeTag >::getBoundaryType ( int  subVolumeFaceIdx)
inlineinherited

The boundary types.

Parameters
subVolumeFaceIdxThe local face index in the interaction volume
Returns
Object containing information about the boundary types.

◆ getCenterPosition()

template<class TypeTag >
DimVector & Dumux::FvMpfaL3dInteractionVolume< TypeTag >::getCenterPosition ( )
inlineinherited

The position of the central vertex.

◆ getDirichletValues()

template<class TypeTag >
PrimaryVariables & Dumux::FvMpfaL3dInteractionVolume< TypeTag >::getDirichletValues ( int  subVolumeFaceIdx)
inlineinherited

The Dirichlet boundary values.

Parameters
subVolumeFaceIdxThe local face index in the interaction volume
Returns
Vector of primary variables.

◆ getEdgeIndexFromSubVolumeFace()

template<class TypeTag >
int Dumux::FvMpfaL3dInteractionVolume< TypeTag >::getEdgeIndexFromSubVolumeFace ( int  subVolumeIdx,
int  subVolumeFaceIdx,
int  subVolumeEdgeIdx 
)
inlineinherited

The local interaction volume edge index dependent on the local sub volume indices.

◆ getEdgePosition() [1/2]

template<class TypeTag >
DimVector & Dumux::FvMpfaL3dInteractionVolume< TypeTag >::getEdgePosition ( int  edgeIdx)
inlineinherited

The position of the edge center.

Parameters
edgeIdxThe local edge index in the interaction volume
Returns
Position of the edge center

◆ getEdgePosition() [2/2]

template<class TypeTag >
DimVector & Dumux::FvMpfaL3dInteractionVolume< TypeTag >::getEdgePosition ( int  subVolumeIdx,
int  subVolumeFaceIdx,
int  subVolumeEdgeIdx 
)
inlineinherited

The position of the edge center.

Parameters
subVolumeIdxThe local element index in the interaction volume
subVolumeFaceIdxThe local face index in the interaction volume element
subVolumeEdgeIdxThe local edge index in the interaction volume element
Returns
Position of the edge center

◆ getElementNumber()

template<class TypeTag >
int Dumux::FvMpfaL3dInteractionVolume< TypeTag >::getElementNumber ( )
inlineinherited

Number of stored dune elements.

◆ getFaceArea() [1/2]

template<class TypeTag >
Scalar & Dumux::FvMpfaL3dInteractionVolume< TypeTag >::getFaceArea ( int  fIdx)
inlineinherited

The interaction volume flux face area.

Parameters
fIdxThe local face index in the interaction volume
Returns
Area of the flux face

◆ getFaceArea() [2/2]

template<class TypeTag >
Scalar & Dumux::FvMpfaL3dInteractionVolume< TypeTag >::getFaceArea ( int  subVolumeIdx,
int  subVolumeFaceIdx 
)
inlineinherited

The interaction volume flux face area.

Parameters
subVolumeIdxThe local element index in the interaction volume
subVolumeFaceIdxThe local face index in the interaction volume element
Returns
Area of the flux face

◆ getFaceIndexFromSubVolume()

template<class TypeTag >
int Dumux::FvMpfaL3dInteractionVolume< TypeTag >::getFaceIndexFromSubVolume ( int  subVolumeIdx,
int  subVolumeFaceIdx 
)
inlineinherited

The local interaction volume face index dependent on the local sub volume indices.

◆ getFacePosition() [1/2]

template<class TypeTag >
DimVector & Dumux::FvMpfaL3dInteractionVolume< TypeTag >::getFacePosition ( int  fIdx)
inlineinherited

The position of the face center.

Parameters
fIdxThe local face index in the interaction volume
Returns
Position of face center

◆ getFacePosition() [2/2]

template<class TypeTag >
DimVector & Dumux::FvMpfaL3dInteractionVolume< TypeTag >::getFacePosition ( int  subVolumeIdx,
int  subVolumeFaceIdx 
)
inlineinherited

The position of the face center.

Parameters
subVolumeIdxThe local element index in the interaction volume
subVolumeFaceIdxThe local face index in the interaction volume element
Returns
Position of face center

◆ getHangingNodeType()

template<class TypeTag >
int Dumux::FvMpfaL3dInteractionVolumeAdaptive< TypeTag >::getHangingNodeType ( )
inline

The type of the interaction volume as type of FvMpfaL3dInteractionVolumeAdaptive<TypeTag>::HangingNodeTypes.

◆ getIndexOnElement()

template<class TypeTag >
int Dumux::FvMpfaL3dInteractionVolume< TypeTag >::getIndexOnElement ( int  subVolumeIdx,
int  subVolumeFaceIdx 
)
inlineinherited

The local dune face index dependent on the local interaction volume indices.

Parameters
subVolumeIdxThe local element index in the interaction volume
subVolumeFaceIdxThe local face index in the interaction volume element
Returns
Face index of the Dune reference element

◆ getNeumannValues()

template<class TypeTag >
PrimaryVariables & Dumux::FvMpfaL3dInteractionVolume< TypeTag >::getNeumannValues ( int  subVolumeFaceIdx)
inlineinherited

The Neumann boundary values.

Parameters
subVolumeFaceIdxThe local face index in the interaction volume
Returns
Vector of phase fluxes.

◆ getNormal()

template<class TypeTag >
DimVector & Dumux::FvMpfaL3dInteractionVolume< TypeTag >::getNormal ( int  subVolumeIdx,
int  subVolumeFaceIdx 
)
inlineinherited

The face normal.

Parameters
subVolumeIdxThe local element index in the interaction volume
subVolumeFaceIdxThe local face index in the interaction volume element
Returns
Normal vector

◆ getSubVolumeElement()

template<class TypeTag >
Element Dumux::FvMpfaL3dInteractionVolume< TypeTag >::getSubVolumeElement ( int  subVolumeIdx)
inlineinherited

The dune element of the interaction volume sub-volume.

Parameters
subVolumeIdxThe local element index in the interaction volume
Returns
The interaction volume sub-element.

◆ hasLevel()

template<class TypeTag >
bool Dumux::FvMpfaL3dInteractionVolumeAdaptive< TypeTag >::hasLevel ( int  level)
inline

Check if an element of a certain grid level is stored.

Parameters
levelthe dune grid level
Returns
true if an element of a certain grid level is stored

◆ hasSubVolumeElement()

template<class TypeTag >
bool Dumux::FvMpfaL3dInteractionVolume< TypeTag >::hasSubVolumeElement ( int  subVolumeIdx)
inlineinherited

Check if a dune element is stored for an interaction volume sub-volume.

Parameters
subVolumeIdxThe local element index in the interaction volume
Returns
returns true if an element pointer is stored at position subVolumeIdx.

◆ isBoundaryFace()

template<class TypeTag >
bool Dumux::FvMpfaL3dInteractionVolume< TypeTag >::isBoundaryFace ( int  subVolumeFaceIdx)
inlineinherited

Check if an interaction volume face is a model domain boundary (for boundary vertices)

Parameters
subVolumeFaceIdxThe local face index in the interaction volume
Returns
returns true if the flux face is a boundary face.

◆ isBoundaryInteractionVolume()

template<class TypeTag >
bool Dumux::FvMpfaL3dInteractionVolume< TypeTag >::isBoundaryInteractionVolume ( )
inlineinherited

Check if an interaction volume is located around a boundary vertex.

Returns
returns true if an interaction volume located around a boundary vertex

◆ isHangingNodeVolume()

template<class TypeTag >
bool Dumux::FvMpfaL3dInteractionVolumeAdaptive< TypeTag >::isHangingNodeVolume ( )
inline

Check whether the interaction volume is a hanging-node volume.

Returns
true if the interaction volume is a hanging-node volume

◆ isInnerVolume()

template<class TypeTag >
bool Dumux::FvMpfaL3dInteractionVolume< TypeTag >::isInnerVolume ( )
inlineinherited

Check if an interaction volume is not located around a boundary vertex.

Returns
returns true if an interaction volume is not located around a boundary vertex

◆ isInsideFace()

template<class TypeTag >
bool Dumux::FvMpfaL3dInteractionVolume< TypeTag >::isInsideFace ( int  subVolumeFaceIdx)
inlineinherited

Check if an interaction volume face is inside the model domain (for boundary vertices)

Parameters
subVolumeFaceIdxThe local face index in the interaction volume
Returns
returns true if the flux face is inside the model domain.

◆ isOutsideFace()

template<class TypeTag >
bool Dumux::FvMpfaL3dInteractionVolume< TypeTag >::isOutsideFace ( int  subVolumeFaceIdx)
inlineinherited

Check if an interaction volume face is outside the model domain (for boundary vertices)

Parameters
subVolumeFaceIdxThe local face index in the interaction volume
Returns
returns true if the flux face is outside the model domain.

◆ printInteractionVolumeInfo()

template<class TypeTag >
void Dumux::FvMpfaL3dInteractionVolumeAdaptive< TypeTag >::printInteractionVolumeInfo ( )
inline

Print the stored interaction volume data.

◆ reset()

template<class TypeTag >
void Dumux::FvMpfaL3dInteractionVolumeAdaptive< TypeTag >::reset ( )
inline

Reset the interaction volume (deletes stored data)

◆ sameLevel()

template<class TypeTag >
bool Dumux::FvMpfaL3dInteractionVolumeAdaptive< TypeTag >::sameLevel ( )
inline

Check if elements in the interaction volume are of the same grid level.

Returns
true if all elements are on the same grid level

◆ setBoundary()

template<class TypeTag >
void Dumux::FvMpfaL3dInteractionVolume< TypeTag >::setBoundary ( BoundaryTypes &  boundaryTypes,
int  subVolumeFaceIdx 
)
inlineinherited

Store the types of boundary conditions.

Parameters
boundaryTypesBoundaryTypes object
subVolumeFaceIdxThe local face index in the interaction volume

◆ setCenterPosition()

template<class TypeTag >
void Dumux::FvMpfaL3dInteractionVolume< TypeTag >::setCenterPosition ( const DimVector &  centerVertexPos)
inlineinherited

Store position of the central vertex.

◆ setDirichletCondition()

template<class TypeTag >
void Dumux::FvMpfaL3dInteractionVolume< TypeTag >::setDirichletCondition ( PrimaryVariables &  condition,
int  subVolumeFaceIdx 
)
inlineinherited

Store Dirichlet boundary conditions.

Parameters
conditionVector of primary variables
subVolumeFaceIdxThe local face index in the interaction volume

◆ setEdgePosition()

template<class TypeTag >
void Dumux::FvMpfaL3dInteractionVolume< TypeTag >::setEdgePosition ( const DimVector &  pos,
int  edgeIdx 
)
inlineinherited

Store the center of the edges.

Parameters
posPosition of face center
edgeIdxThe interaction volume edge index

◆ setFaceArea()

template<class TypeTag >
void Dumux::FvMpfaL3dInteractionVolume< TypeTag >::setFaceArea ( Scalar  faceArea,
int  fIdx 
)
inlineinherited

Store the flux face areas.

Parameters
faceAreaThe flux face area
fIdxThe interaction volume face index

◆ setFacePosition()

template<class TypeTag >
void Dumux::FvMpfaL3dInteractionVolume< TypeTag >::setFacePosition ( const DimVector &  pos,
int  fIdx 
)
inlineinherited

Store the position of a flux face.

Parameters
posPosition of face center
fIdxThe interaction volume face index

◆ setHangingNodeType()

template<class TypeTag >
void Dumux::FvMpfaL3dInteractionVolumeAdaptive< TypeTag >::setHangingNodeType ( int  hNType)
inline

Store the type of hanging-node-interaction volume.

Parameters
hNTypethe type of hanging-node-interaction volume of type FvMpfaL3dInteractionVolumeAdaptive<TypeTag>::HangingNodeTypes

◆ setIndexOnElement()

template<class TypeTag >
void Dumux::FvMpfaL3dInteractionVolume< TypeTag >::setIndexOnElement ( int  indexInInside,
int  subVolumeIdx,
int  subVolumeFaceIdx 
)
inlineinherited

Store the local dune face index dependent on the local interaction volume indices.

Parameters
indexInInsideFace index of the Dune reference element
subVolumeIdxThe local element index in the interaction volume
subVolumeFaceIdxThe local face index in the interaction volume element

◆ setNeumannCondition()

template<class TypeTag >
void Dumux::FvMpfaL3dInteractionVolume< TypeTag >::setNeumannCondition ( PrimaryVariables &  condition,
int  subVolumeFaceIdx 
)
inlineinherited

Store Neumann boundary conditions.

Parameters
conditionVector phase fluxes
subVolumeFaceIdxThe local face index in the interaction volume

◆ setNormal()

template<class TypeTag >
void Dumux::FvMpfaL3dInteractionVolume< TypeTag >::setNormal ( DimVector &  normal,
int  subVolumeIdx,
int  subVolumeFaceIdx 
)
inlineinherited

Store the normals.

Parameters
normalThe normal vector
subVolumeIdxThe local element index in the interaction volume
subVolumeFaceIdxThe local face index in the interaction volume element

◆ setOutsideFace()

template<class TypeTag >
void Dumux::FvMpfaL3dInteractionVolume< TypeTag >::setOutsideFace ( int  subVolumeFaceIdx)
inlineinherited

Define a flux face to be outside the model domain (for boundary vertices)

Parameters
subVolumeFaceIdxThe local face index in the interaction volume

◆ setSubVolumeElement()

template<class TypeTag >
void Dumux::FvMpfaL3dInteractionVolumeAdaptive< TypeTag >::setSubVolumeElement ( const Element &  element,
int  subVolumeIdx 
)
inline

Store a dune element as a sub volume element.

Parameters
elementThe element
subVolumeIdxThe local element index in the interaction volume

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