Interactionvolume container for 3-d MPFA L-method on an h-adaptive grid. More...
#include <dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontaineradaptive.hh>
Interactionvolume container for 3-d MPFA L-method on an h-adaptive grid.
Container class which stores MPFA-interaction-volume information for each vertex of a DUNE grid. Each InteractionVolume
object stores the information which is necessary to calculate MPFA transmissibility matrices:
Public Types | |
using | InteractionVolume = GetPropType< TypeTag, Properties::MPFAInteractionVolume > |
Public Member Functions | |
std::set< int > & | faceVerticeIndices (int eIdxGlobal, int fIdx) |
Returns the set of vertices on an element face. More... | |
FvMpfaL3dInteractionVolumeContainerAdaptive (Problem &problem) | |
Constructs a FvMpfaL3dInteractionVolumeContainerAdaptive object. More... | |
void | update () |
Updates the interaction volume container. More... | |
void | initialize (bool solveTwice=true) |
Initializes the interaction volume container. More... | |
InteractionVolume & | interactionVolume (int vertexIdx) |
Returns an interaction volume. More... | |
InteractionVolume & | interactionVolume (int vertexIdx) const |
Returns an interaction volume. More... | |
GlobalInteractionVolumeVector & | interactionVolumesGlobal () |
Returns the interaction volumes container. More... | |
GlobalInteractionVolumeVector & | interactionVolumesGlobal () const |
Returns the interaction volumes container. More... | |
Scalar | faceAreaFactor (InteractionVolume &interactionVolume, int elemGlobalIdx, int elemLocalIdx, int localFaceIdx) |
Returns the area weighting factor for the fluxes. More... | |
Scalar | faceAreaFactor (int elemGlobalIdx, int indexInInside) |
Returns the area weighting factor for the fluxes. More... | |
Scalar | getRealFluxFaceArea (InteractionVolume &interactionVolume, int elemGlobalIdx, int elemLocalIdx, int localFaceIdx) |
Returns the area trough which fluxes are calculated by the MPFA. More... | |
Scalar | getRealFluxFaceArea (int elemGlobalIdx, int indexInInside) |
Returns the area trough which fluxes are calculated by the MPFA. More... | |
Scalar | getRealFaceArea (InteractionVolume &interactionVolume, int elemGlobalIdx, int elemLocalIdx, int localFaceIdx) |
Returns the face area of the element. More... | |
Scalar | getRealFaceArea (int elemGlobalIdx, int indexInInside) |
Returns the face area of the element. More... | |
Protected Member Functions | |
void | storeInteractionVolumeInfo () |
Stores interaction volumes for each grid vertex. More... | |
void | storeSubVolumeElements (const Element &element, std::vector< std::vector< int > > &elemVertMap) |
Function for storing the elements of an interaction volume and constructing a map from a vertex to its surrounding elements. More... | |
void | storeIntersectionInfo (const Element &element, std::vector< std::vector< int > > &elemVertMap) |
Stores information with respect to DUNE intersections in the interaction volumes. More... | |
void | storeInnerInteractionVolume (InteractionVolume &interactionVolume, const Vertex &vertex, bool sameLevel=true) |
Stores additional information which can be constructed for interaction volumes of non-boundary vertices. More... | |
void | storeBoundaryInteractionVolume (InteractionVolume &interactionVolume, const Vertex &vertex) |
Stores additional information for interaction volumes of boundary vertices. More... | |
void | addRealFluxFaceArea_ (Scalar faceArea, int eIdxGlobal, int fIdx) |
void | addRealFaceArea_ (Scalar faceArea, int eIdxGlobal, int fIdx) |
Protected Attributes | |
GlobalInteractionVolumeVector | interactionVolumes_ |
FaceAreaVector | realFluxFaceArea_ |
using Dumux::FvMpfaL3dInteractionVolumeContainerAdaptive< TypeTag >::InteractionVolume = GetPropType<TypeTag, Properties::MPFAInteractionVolume> |
Type for storing an MPFA-interaction-volume. (Usually of type FvMpfaL3dInteractionVolume or FvMpfaL3dInteractionVolumeAdaptive)
|
inline |
Constructs a FvMpfaL3dInteractionVolumeContainerAdaptive object.
problem | A problem class object |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
Returns the area weighting factor for the fluxes.
elemGlobalIdx | Global index of an element in the DUNE grid |
indexInInside | Local index of the face in the DUNE reference element |
|
inlineinherited |
Returns the area weighting factor for the fluxes.
interactionVolume | An interaction volume object |
elemGlobalIdx | Global index of an element in the DUNE grid |
elemLocalIdx | Local index of an element in the interaction volume |
localFaceIdx | Local index of a flux face with respect to an element of the interaction volume |
|
inline |
Returns the set of vertices on an element face.
The DUNE reference elements does not allow to access hanging nodes from a given element face. However, if a flux through a entire element face has to be calculated, e.g. if single fluxes have to be updated in an implicit treatment of the transport equation, it is necessary to get the complete set of vertices on a face: 4 corners + all hanging nodes.
|
inlineinherited |
Returns the face area of the element.
elemGlobalIdx | Global index of an element in the DUNE grid |
indexInInside | Local index of the face in the DUNE reference element |
|
inlineinherited |
Returns the face area of the element.
interactionVolume | An interaction volume object |
elemGlobalIdx | Global index of an element in the DUNE grid |
elemLocalIdx | Local index of an element in the interaction volume |
localFaceIdx | Local index of a flux face with respect to an element of the interaction volume |
|
inlineinherited |
Returns the area trough which fluxes are calculated by the MPFA.
elemGlobalIdx | Global index of an element in the DUNE grid |
indexInInside | Local index of the face in the DUNE reference element |
|
inlineinherited |
Returns the area trough which fluxes are calculated by the MPFA.
interactionVolume | An interaction volume object |
elemGlobalIdx | Global index of an element in the DUNE grid |
elemLocalIdx | Local index of an element in the interaction volume |
localFaceIdx | Local index of a flux face with respect to an element of the interaction volume |
|
inlineinherited |
Initializes the interaction volume container.
Builds and stores the interaction volumes for the entire grid
|
inlineinherited |
Returns an interaction volume.
vertexIdx | Global index of a vertex in the DUNE grid |
|
inlineinherited |
Returns an interaction volume.
vertexIdx | Global index of a vertex in the DUNE grid |
|
inlineinherited |
Returns the interaction volumes container.
|
inlineinherited |
Returns the interaction volumes container.
|
protectedinherited |
Stores additional information for interaction volumes of boundary vertices.
Stores additional information for interaction volumes of boundary vertices:
Assumes a local storage following the DUNE reference element index, which is performed by the function FvMpfaL3dInteractionVolumeContainer<TypeTag>::storeSubVolumeElements(const Element& element, std::vector < std::vector<int> >& elemVertMap).
interactionVolume | An interaction volume object |
vertex | The vertex (level dim entity) for which the interaction volume is stored |
|
protectedinherited |
Stores additional information which can be constructed for interaction volumes of non-boundary vertices.
Stores additional information which can be constructed for interaction volumes of non-boundary vertices:
Assumes a local storage following the DUNE reference element index, which is performed by the function FvMpfaL3dInteractionVolumeContainer<TypeTag>::storeSubVolumeElements(const Element& element, std::vector < std::vector<int> >& elemVertMap).
interactionVolume | An interaction volume object |
vertex | The vertex (level dim entity) for which the interaction volume is stored |
sameLevel | Level indicator: true if all elements of an interaction volume are of the same level |
|
protected |
Stores interaction volumes for each grid vertex.
|
protectedinherited |
Stores information with respect to DUNE intersections in the interaction volumes.
Stores information with respect to DUNE intersections, such as normals, in the interaction volumes. Assumes a local storage following the DUNE reference element index, which is performed by the function FvMpfaL3dInteractionVolumeContainer<TypeTag>::storeSubVolumeElements(const Element& element, std::vector < std::vector<int> >& elemVertMap).
element | A level 0 Entity of a DUNE grid |
elemVertMap | Vector containing the global vertex-element map |
|
protectedinherited |
Function for storing the elements of an interaction volume and constructing a map from a vertex to its surrounding elements.
Stores an element in all interaction volumes it belongs to. Additionally, the global index of an element is stored at the position of its local index according to a DUNE reference element for every vertex of the element.
element | A level 0 Entity of a DUNE grid |
elemVertMap | Vector containing the global vertex-element map |
|
inlineinherited |
Updates the interaction volume container.
Rebuilds and stores the interaction volumes for the entire grid
|
protectedinherited |
|
protectedinherited |