dune-grid  2.9.0
yaspgridgeometry.hh
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
2 // SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
3 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
4 // vi: set et ts=4 sw=2 sts=2:
5 #ifndef DUNE_GRID_YASPGRIDGEOMETRY_HH
6 #define DUNE_GRID_YASPGRIDGEOMETRY_HH
7 
23 namespace Dune {
24 
29  template<int mydim,int cdim, class GridImp>
30  class YaspGeometry : public AxisAlignedCubeGeometry<typename GridImp::ctype,mydim,cdim>
31  {
32  public:
34  typedef typename GridImp::ctype ctype;
35 
37  YaspGeometry (const FieldVector<ctype, cdim>& ll, const FieldVector<ctype, cdim>& ur, const std::bitset<cdim>& shift)
38  : AxisAlignedCubeGeometry<ctype,mydim,cdim>(ll,ur,shift)
39  {
40  assert(mydim == shift.count());
41  }
42  };
43 
45  template<int mydim, class GridImp>
46  class YaspGeometry<mydim,mydim,GridImp> : public AxisAlignedCubeGeometry<typename GridImp::ctype,mydim,mydim>
47  {
48  public:
49  typedef typename GridImp::ctype ctype;
50 
52  YaspGeometry (const FieldVector<ctype, mydim>& ll, const FieldVector<ctype, mydim>& ur)
53  : AxisAlignedCubeGeometry<ctype,mydim,mydim>(ll,ur)
54  {}
55 
57  YaspGeometry (const YaspGeometry& other)
58  : AxisAlignedCubeGeometry<ctype,mydim,mydim>(other)
59  {}
60  };
61 
63  template<int cdim, class GridImp>
64  class YaspGeometry<0,cdim,GridImp> : public AxisAlignedCubeGeometry<typename GridImp::ctype,0,cdim>
65  {
66  public:
67  typedef typename GridImp::ctype ctype;
68 
70  explicit YaspGeometry ( const FieldVector< ctype, cdim > &p )
71  : AxisAlignedCubeGeometry<typename GridImp::ctype,0,cdim>( p )
72  {}
73 
74  YaspGeometry ( const FieldVector< ctype, cdim > &p, const FieldVector< ctype, cdim > &, const std::bitset<cdim> &)
75  : AxisAlignedCubeGeometry<typename GridImp::ctype,0,cdim>( p )
76  {}
77  };
78 } // namespace Dune
79 
80 #endif // DUNE_GRID_YASPGRIDGEOMETRY_HH
Include standard header files.
Definition: agrid.hh:60
The general version that handles all codimensions but 0 and dim.
Definition: yaspgridgeometry.hh:31
YaspGeometry(const FieldVector< ctype, cdim > &ll, const FieldVector< ctype, cdim > &ur, const std::bitset< cdim > &shift)
constructor from midpoint and extension and a bitset defining which unit vectors span the entity
Definition: yaspgridgeometry.hh:37
GridImp::ctype ctype
define type used for coordinates in grid module
Definition: yaspgridgeometry.hh:34
YaspGeometry(const YaspGeometry &other)
copy constructor (skipping temporary variables)
Definition: yaspgridgeometry.hh:57
GridImp::ctype ctype
Definition: yaspgridgeometry.hh:49
YaspGeometry(const FieldVector< ctype, mydim > &ll, const FieldVector< ctype, mydim > &ur)
constructor from midpoint and extension
Definition: yaspgridgeometry.hh:52
YaspGeometry(const FieldVector< ctype, cdim > &p, const FieldVector< ctype, cdim > &, const std::bitset< cdim > &)
Definition: yaspgridgeometry.hh:74
YaspGeometry(const FieldVector< ctype, cdim > &p)
constructor
Definition: yaspgridgeometry.hh:70
GridImp::ctype ctype
Definition: yaspgridgeometry.hh:67