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
27namespace 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.111.3 (Dec 21, 23:30, 2024)