12#ifndef DUMUX_DISCRETIZATION_PQ1BUBBLE_SUBCONTROLVOLUMEFACE_HH 
   13#define DUMUX_DISCRETIZATION_PQ1BUBBLE_SUBCONTROLVOLUMEFACE_HH 
   17#include <dune/geometry/type.hh> 
   18#include <dune/geometry/multilineargeometry.hh> 
   33template<
class Gr
idView>
 
   36    using Grid = 
typename GridView::Grid;
 
   37    static constexpr int dim = Grid::dimension;
 
   38    static constexpr int dimWorld = Grid::dimensionworld;
 
 
   63    using GridIndexType = 
typename T::GridIndexType;
 
   64    using LocalIndexType = 
typename T::LocalIndexType;
 
   65    using Scalar = 
typename T::Scalar;
 
   66    using CornerStorage = 
typename T::CornerStorage;
 
   67    using Geometry = 
typename T::Geometry;
 
   68    using BoundaryFlag = 
typename T::BoundaryFlag;
 
   83                                  const std::array<LocalIndexType, 2>& scvIndices,
 
   84                                  const LocalIndexType localScvfIdx,
 
   85                                  bool overlapping = 
false)
 
   89    , localScvfIdx_(localScvfIdx)
 
   90    , scvIndices_(scvIndices)
 
   92    , overlapping_(overlapping)
 
 
  100                                  const std::array<LocalIndexType, 2>& scvIndices,
 
  101                                  const LocalIndexType localScvfIdx,
 
  102                                  const BoundaryFlag& bFlag,
 
  103                                  bool overlapping = 
false)
 
  105    , unitOuterNormal_(
normal)
 
  107    , localScvfIdx_(localScvfIdx)
 
  108    , scvIndices_(scvIndices)
 
  110    , overlapping_(overlapping)
 
  111    , boundaryFlag_(bFlag)
 
 
  128    { 
return overlapping_; }
 
 
  131    { 
return boundary_; }
 
 
  135    { 
return unitOuterNormal_; }
 
 
  139    { 
return scvIndices_[0]; }
 
 
  143    { 
return scvIndices_[1]; }
 
 
  147    { 
return static_cast<std::size_t
>(!
boundary()); }
 
 
  151    { 
return localScvfIdx_; }
 
 
  155    { 
return boundaryFlag_.get(); }
 
 
  161    LocalIndexType localScvfIdx_;
 
  162    std::array<LocalIndexType, 2> scvIndices_;
 
 
Boundary flag to store e.g. in sub control volume faces.
Boundary flag to store e.g. in sub control volume faces.
Definition boundaryflag.hh:55
std::size_t value_type
Definition boundaryflag.hh:39
typename PQ1BubbleDefaultScvfGeometryTraits< GridView >::GlobalPosition GlobalPosition
Definition discretization/pq1bubble/subcontrolvolumeface.hh:72
std::size_t numOutsideScvs() const
The number of scvs on the outside of this face.
Definition discretization/pq1bubble/subcontrolvolumeface.hh:146
const GlobalPosition & center() const
Definition discretization/pq1bubble/subcontrolvolumeface.hh:115
PQ1BubbleDefaultScvfGeometryTraits< GridView > Traits
Definition discretization/pq1bubble/subcontrolvolumeface.hh:74
PQ1BubbleSubControlVolumeFace(const GlobalPosition ¢er, const Scalar area, const GlobalPosition &normal, const std::array< LocalIndexType, 2 > &scvIndices, const LocalIndexType localScvfIdx, const BoundaryFlag &bFlag, bool overlapping=false)
Constructor for boundary scvfs.
Definition discretization/pq1bubble/subcontrolvolumeface.hh:97
bool boundary() const
Definition discretization/pq1bubble/subcontrolvolumeface.hh:130
bool isOverlapping() const
returns true if the sub control volume face is overlapping with another scv
Definition discretization/pq1bubble/subcontrolvolumeface.hh:127
GridIndexType outsideScvIdx() const
index of the outside sub control volume
Definition discretization/pq1bubble/subcontrolvolumeface.hh:142
const GlobalPosition unitOuterNormal() const
The unit outer normal.
Definition discretization/pq1bubble/subcontrolvolumeface.hh:134
LocalIndexType index() const
The local index of this sub control volume face.
Definition discretization/pq1bubble/subcontrolvolumeface.hh:150
PQ1BubbleSubControlVolumeFace()=default
The default constructor.
BoundaryFlag::value_type boundaryFlag() const
Return the boundary flag.
Definition discretization/pq1bubble/subcontrolvolumeface.hh:154
const GlobalPosition & ipGlobal() const
The integration point for flux evaluations in global coordinates.
Definition discretization/pq1bubble/subcontrolvolumeface.hh:119
GridIndexType insideScvIdx() const
Index of the inside sub control volume.
Definition discretization/pq1bubble/subcontrolvolumeface.hh:138
Scalar area() const
Definition discretization/pq1bubble/subcontrolvolumeface.hh:123
PQ1BubbleSubControlVolumeFace(const GlobalPosition ¢er, const Scalar area, const GlobalPosition &normal, const std::array< LocalIndexType, 2 > &scvIndices, const LocalIndexType localScvfIdx, bool overlapping=false)
Constructor for inner scvfs.
Definition discretization/pq1bubble/subcontrolvolumeface.hh:80
Base class for a sub control volume face, i.e a part of the boundary of a sub control volume we compu...
Definition subcontrolvolumefacebase.hh:29
Helper class constructing the dual grid finite volume geometries for the cvfe discretizazion method.
Vector normal(const Vector &v)
Create a vector normal to the given one (v is expected to be non-zero)
Definition normal.hh:26
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 volume faces for the cvfe scheme.
Definition discretization/pq1bubble/subcontrolvolumeface.hh:35
PQ1BubbleMLGeometryTraits< Scalar > GeometryTraits
Definition discretization/pq1bubble/subcontrolvolumeface.hh:42
static constexpr int dim
Definition discretization/pq1bubble/subcontrolvolumeface.hh:37
typename GeometryTraits::template CornerStorage< dim-1, dimWorld >::Type CornerStorage
Definition discretization/pq1bubble/subcontrolvolumeface.hh:44
typename IndexTraits< GridView >::GridIndex GridIndexType
Definition discretization/pq1bubble/subcontrolvolumeface.hh:39
typename GridView::Grid Grid
Definition discretization/pq1bubble/subcontrolvolumeface.hh:36
typename Grid::ctype Scalar
Definition discretization/pq1bubble/subcontrolvolumeface.hh:41
typename CornerStorage::value_type GlobalPosition
Definition discretization/pq1bubble/subcontrolvolumeface.hh:45
Dune::MultiLinearGeometry< Scalar, dim-1, dimWorld, GeometryTraits > Geometry
Definition discretization/pq1bubble/subcontrolvolumeface.hh:43
Dumux::BoundaryFlag< Grid > BoundaryFlag
Definition discretization/pq1bubble/subcontrolvolumeface.hh:46
static constexpr int dimWorld
Definition discretization/pq1bubble/subcontrolvolumeface.hh:38
typename IndexTraits< GridView >::LocalIndex LocalIndexType
Definition discretization/pq1bubble/subcontrolvolumeface.hh:40
Traits for an efficient corner storage for the PQ1Bubble method.
Definition discretization/pq1bubble/geometryhelper.hh:34
Base class for a sub control volume face.