12#ifndef DUMUX_DISCRETIZATION_PQ2_SUBCONTROLVOLUME_HH
13#define DUMUX_DISCRETIZATION_PQ2_SUBCONTROLVOLUME_HH
15#include <dune/geometry/type.hh>
16#include <dune/geometry/multilineargeometry.hh>
30template<
class Gr
idView>
33 using Grid =
typename GridView::Grid;
35 static const int dim = Grid::dimension;
36 static const int dimWorld = Grid::dimensionworld;
42 using Geometry = Dune::MultiLinearGeometry<Scalar, dim, dimWorld, GeometryTraits>;
53template<
class Gr
idView,
class T = PQ2DefaultScvGeometryTraits<Gr
idView>>
56 using Scalar =
typename T::Scalar;
57 using GridIndexType =
typename T::GridIndexType;
58 using LocalIndexType =
typename T::LocalIndexType;
73 const GridIndexType eIdx,
74 const GridIndexType dofIdx,
75 bool overlapping =
false)
84 , overlapping_(overlapping)
93 {
return dofPosition_; }
100 {
return overlapping_; }
106 {
return indexInElement_; }
112 {
return localDofIndex_; }
118 LocalIndexType indexInElement_;
119 LocalIndexType localDofIndex_;
121 GridIndexType dofIdx_;
the sub control volume for the pq2 scheme
Definition: discretization/pq2/subcontrolvolume.hh:55
const GlobalPosition & dofPosition() const
The position of the degree of freedom.
Definition: discretization/pq2/subcontrolvolume.hh:92
GridIndexType elementIndex() const
Definition: discretization/pq2/subcontrolvolume.hh:108
bool isOverlapping() const
returns true if the sub control volume is overlapping with another scv
Definition: discretization/pq2/subcontrolvolume.hh:99
GridIndexType dofIndex() const
Definition: discretization/pq2/subcontrolvolume.hh:102
PQ2SubControlVolume(const Scalar &volume, const GlobalPosition &dofPosition, const GlobalPosition ¢er, const LocalIndexType indexInElement, const LocalIndexType localDofIndex, const GridIndexType eIdx, const GridIndexType dofIdx, bool overlapping=false)
Definition: discretization/pq2/subcontrolvolume.hh:68
LocalIndexType indexInElement() const
Definition: discretization/pq2/subcontrolvolume.hh:105
PQ2SubControlVolume()=default
typename T::GlobalPosition GlobalPosition
export the type used for global coordinates
Definition: discretization/pq2/subcontrolvolume.hh:62
Scalar volume() const
Definition: discretization/pq2/subcontrolvolume.hh:95
LocalIndexType localDofIndex() const
Definition: discretization/pq2/subcontrolvolume.hh:111
T Traits
state the traits public and thus export all types
Definition: discretization/pq2/subcontrolvolume.hh:64
const GlobalPosition & center() const
The center of the sub control volume.
Definition: discretization/pq2/subcontrolvolume.hh:88
Helper class constructing the dual grid finite volume geometries for the cvfe discretizazion method.
Define some often used mathematical functions.
typename GridView::IndexSet::IndexType GridIndex
Definition: indextraits.hh:27
unsigned int LocalIndex
Definition: indextraits.hh:28
Default traits class to be used for the sub-control volumes for the pq2 scheme.
Definition: discretization/pq2/subcontrolvolume.hh:32
typename IndexTraits< GridView >::LocalIndex LocalIndexType
Definition: discretization/pq2/subcontrolvolume.hh:39
static const int dimWorld
Definition: discretization/pq2/subcontrolvolume.hh:36
static const int dim
Definition: discretization/pq2/subcontrolvolume.hh:35
typename CornerStorage::value_type GlobalPosition
Definition: discretization/pq2/subcontrolvolume.hh:44
typename GeometryTraits::template CornerStorage< dim, dimWorld >::Type CornerStorage
Definition: discretization/pq2/subcontrolvolume.hh:43
typename IndexTraits< GridView >::GridIndex GridIndexType
Definition: discretization/pq2/subcontrolvolume.hh:38
Dune::MultiLinearGeometry< Scalar, dim, dimWorld, GeometryTraits > Geometry
Definition: discretization/pq2/subcontrolvolume.hh:42
typename GridView::Grid Grid
Definition: discretization/pq2/subcontrolvolume.hh:33
typename Grid::ctype Scalar
Definition: discretization/pq2/subcontrolvolume.hh:40
Traits for an efficient corner storage for the PQ2 method.
Definition: discretization/pq2/geometryhelper.hh:34