Dune Core Modules (2.9.0)

gridfamily.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_ALBERTAGRID_GRIDFAMILTY_HH
6 #define DUNE_ALBERTAGRID_GRIDFAMILTY_HH
7 
14 
15 #include <dune/grid/common/entity.hh>
17 #include <dune/grid/common/intersection.hh>
18 #include <dune/grid/common/intersectioniterator.hh>
19 #include <dune/grid/common/entityiterator.hh>
20 
21 #include <dune/grid/albertagrid/misc.hh>
22 #include <dune/grid/albertagrid/gridview.hh>
24 
25 #if HAVE_ALBERTA
26 
27 namespace Dune
28 {
29 
30  // External Forward Declarations
31  // -----------------------------
32 
33  template< int dim, int dimworld >
34  class AlbertaGrid;
35 
36  template< int codim, int dim, class GridImp >
37  class AlbertaGridEntity;
38 
39  template< int codim, class GridImp >
40  class AlbertaGridEntityPointer;
41 
42  template< int codim, class Grid >
43  class AlbertaGridEntitySeed;
44 
45  template< int mydim, int cdim, class GridImp >
46  class AlbertaGridGeometry;
47 
48  template< int mydim, int cdim, class GridImp >
49  class AlbertaGridGlobalGeometry;
50 
51  template< int dim, int dimworld >
52  class AlbertaGridHierarchicIndexSet;
53 
54  template< class GridImp >
55  class AlbertaGridHierarchicIterator;
56 
57  template< class GridImp >
58  class AlbertaGridLeafIntersection;
59 
60  template< class GridImp >
61  class AlbertaGridLeafIntersectionIterator;
62 
63  template< int dim, int dimworld >
64  class AlbertaGridIdSet;
65 
66  template< int dim, int dimworld >
67  class AlbertaGridIndexSet;
68 
69  template< int codim, PartitionIteratorType pitype, class GridImp >
70  class AlbertaGridLeafIterator;
71 
72  template< int codim, PartitionIteratorType pitype, class GridImp >
73  class AlbertaGridLevelIterator;
74 
75 
76 
77 
78  // AlbertaGridFamily
79  // -----------------
80 
81  template <int dim, int dimworld>
82  struct AlbertaGridFamily
83  {
84  typedef AlbertaGrid< dim, dimworld > GridImp;
85 
86  typedef Alberta::Real ctype;
87 
88  static const int dimension = dim;
89  static const int dimensionworld = dimworld;
90 
91  typedef AlbertaGridIndexSet< dim, dimworld > LevelIndexSetImp;
92  typedef AlbertaGridIndexSet< dim, dimworld > LeafIndexSetImp;
93 
94  typedef AlbertaGridIdSet< dim, dimworld > IdSetImp;
95  typedef unsigned int IdType;
96 
97  struct Traits
98  {
99  typedef GridImp Grid;
100 
104  < const GridImp, AlbertaGridLeafIntersectionIterator< const GridImp >, AlbertaGridLeafIntersection< const GridImp > >
105  LeafIntersectionIterator;
107  < const GridImp, AlbertaGridLeafIntersectionIterator< const GridImp >, AlbertaGridLeafIntersection< const GridImp > >
108  LevelIntersectionIterator;
109 
111 
112  typedef IdType GlobalIdType;
113  typedef IdType LocalIdType;
114 
115  template< int cd >
116  struct Codim
117  {
118  typedef AlbertaGridGlobalGeometry< dim-cd, dimworld, const Grid > GeometryImpl;
119  typedef AlbertaGridGeometry< dim-cd, dim, const Grid > LocalGeometryImpl;
120  typedef Dune::Geometry< dim-cd, dimworld, const Grid, AlbertaGridGlobalGeometry > Geometry;
121  typedef Dune::Geometry< dim-cd, dim, const Grid, LocalGeometryReference > LocalGeometry;
122 
123  typedef AlbertaGridEntity< cd, dim, const GridImp > EntityImpl;
125 
127 
128  template <PartitionIteratorType pitype>
129  struct Partition
130  {
133  };
134 
135  typedef typename Partition< All_Partition >::LevelIterator LevelIterator;
136  typedef typename Partition< All_Partition >::LeafIterator LeafIterator;
137  };
138 
141 
142  typedef IndexSet< GridImp, LevelIndexSetImp, int, std::array< GeometryType, 1 > > LevelIndexSet;
143  typedef IndexSet< GridImp, LeafIndexSetImp, int, std::array< GeometryType, 1 > > LeafIndexSet;
144  typedef AlbertaGridHierarchicIndexSet< dim, dimworld > HierarchicIndexSet;
145  typedef IdSet<GridImp,IdSetImp,IdType> GlobalIdSet;
146  typedef IdSet<GridImp,IdSetImp,IdType> LocalIdSet;
147 
148  typedef Dune::Communication< No_Comm > Communication;
149 
153  [[deprecated("Use Communication instead!")]]
154  typedef Communication CollectiveCommunication;
155  };
156  };
157 
158 }
159 
160 #endif // #if HAVE_ALBERTA
161 
162 #endif // #ifndef DUNE_ALBERTAGRID_GRIDFAMILTY_HH
interface class for an iterator over grid entities
Definition: entityiterator.hh:32
Store a reference to an entity with a minimal memory footprint.
Definition: entityseed.hh:26
Wrapper class for entities.
Definition: entity.hh:66
Wrapper class for geometries.
Definition: geometry.hh:71
Grid view abstract base class.
Definition: gridview.hh:66
Mesh entities of codimension 0 ("elements") allow to visit all intersections with "neighboring" eleme...
Definition: intersectioniterator.hh:83
Intersection of a mesh entity of codimension 0 ("element") with a "neighboring" element or with the d...
Definition: intersection.hh:164
Implements an utility class that provides collective communication methods for sequential programs.
Wrapper and interface classes for element geometries.
Wrapper and interface classes for element geometries.
Dune namespace.
Definition: alignedallocator.hh:13
Communication< T > CollectiveCommunication
Definition: communication.hh:541
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (May 6, 22:30, 2024)