dune-fem 2.8.0
Loading...
Searching...
No Matches
misc/capabilities.hh
Go to the documentation of this file.
1#ifndef DUNE_FEM_CAPABILITIES_HH
2#define DUNE_FEM_CAPABILITIES_HH
3
4#include <dune/common/version.hh>
5
6#include <dune/grid/common/capabilities.hh>
7
9#include <dune/fem/misc/metaprogramming.hh>
10
11namespace Dune
12{
13
14 // Core Capabilities
15 // -----------------
16
17 namespace Capabilities
18 {
19
20 // hasHierarchicIndexSet
21 // ---------------------
22
23 template< class Grid >
25
26 template< class Grid >
27 struct hasHierarchicIndexSet< const Grid >
28 {
29 static const bool v = false;
30 };
31
32 template< class Grid >
34 {
35 static const bool v = false;
36 };
37
38#if HAVE_DUNE_ALUGRID
39 template< int dim, int dimw, ALUGridElementType elType, ALUGridRefinementType refineType, class Comm >
40 struct hasHierarchicIndexSet< ALUGrid< dim, dimw, elType, refineType, Comm > >
41 {
42 static const bool v = true;
43 };
44#endif // #if HAVE_DUNE_ALUGRID
45
46 template<>
47 struct hasHierarchicIndexSet< OneDGrid >
48 {
49 static const bool v = false;
50 };
51
52 template< int dim >
54 {
55 static const bool v = false;
56 };
57
58 template< int dim, class CoordCont >
59 struct hasHierarchicIndexSet< YaspGrid< dim, CoordCont > >
60 {
61 static const bool v = false;
62 };
63
64
65 template< class HostGrid, class CoordFunction, class Allocator >
66 struct hasHierarchicIndexSet< GeometryGrid< HostGrid, CoordFunction, Allocator > >
67 {
68 //static const bool v = hasHierarchicIndexSet< HostGrid > :: v;
69 static const bool v = false ;
70 };
71
72 } // namespace Capabilities
73
74
75 namespace Fem
76 {
77
78 // Fem Capabilities
79 // ----------------
80
81 namespace Capabilities
82 {
83
84 // hasAllCodimEntities
85 // -------------------
86
87 template< class Grid >
89 {
90 template< unsigned int codim >
91 struct Codim
92 : public Dune::Capabilities::hasEntity< Grid, codim >
93 {};
94
95 public:
96 static const bool v = Loop< MetaAnd, Codim, Grid :: dimension > :: v;
97 static const bool value = v;
98 };
99
100
101 // supportsCallbackAdaptation
102 // --------------------------
103
104 template< class Grid >
106 {
107 static const bool v = false;
108 };
109
110 template< class Grid >
111 struct supportsCallbackAdaptation< const Grid >
112 {
114 };
115
116#if HAVE_DUNE_ALUGRID
117 template< int dim, int dimworld, ALUGridElementType elType, ALUGridRefinementType refineType, class Comm >
118 struct supportsCallbackAdaptation< ALUGrid< dim, dimworld, elType, refineType, Comm > >
119 {
120 static const bool v = true;
121 };
122#endif // #if HAVE_DUNE_ALUGRID
123
124 template< int dim, int dimworld >
125 struct supportsCallbackAdaptation< AlbertaGrid< dim, dimworld > >
126 {
127 static const bool v = true;
128 };
129
130 template< class HostGrid, class CoordFunction, class Allocator >
131 struct supportsCallbackAdaptation< GeometryGrid< HostGrid, CoordFunction, Allocator > >
132 {
134 };
135
136#if HAVE_DUNE_METAGRID
137 template< class HostGrid >
138 struct supportsCallbackAdaptation< CartesianGrid< HostGrid > >
139 {
141 };
142#endif // #if HAVE_DUNE_METAGRID
143
144
145
146 // isLocallyAdaptive
147 // -----------------
148
149 template< class Grid >
151 {
152 static const bool v = false;
153 };
154
155 template< class Grid >
156 struct isLocallyAdaptive< const Grid >
157 {
159 };
160
161#if HAVE_DUNE_ALUGRID
162 template< int dim, int dimworld, ALUGridElementType elType, ALUGridRefinementType refineType, class Comm >
163 struct isLocallyAdaptive< ALUGrid< dim, dimworld, elType, refineType, Comm > >
164 {
165 static const bool v = true;
166 };
167#endif //#f HAVE_DUNE_ALUGRID
168
169 template< int dim, int dimworld >
170 struct isLocallyAdaptive< AlbertaGrid< dim, dimworld > >
171 {
172 static const bool v = true;
173 };
174
175 template< int dim >
176 struct isLocallyAdaptive< UGGrid< dim > >
177 {
178 static const bool v = true;
179 };
180
181 template<>
182 struct isLocallyAdaptive< OneDGrid >
183 {
184 static const bool v = true;
185 };
186
187 template< class HostGrid, class CoordFunction, class Allocator >
188 struct isLocallyAdaptive< GeometryGrid< HostGrid, CoordFunction, Allocator > >
189 {
191 };
192
193#if HAVE_DUNE_METAGRID
194 template< class HostGrid >
195 struct isLocallyAdaptive< CartesianGrid< HostGrid > >
196 {
197 static const bool v = isLocallyAdaptive< HostGrid > :: v;
198 };
199#endif // #if HAVE_DUNE_METAGRID
200
201 } // namespace Capabilities
202
203 } // namespace Fem
204
205} // namespace Dune
206
207#endif // #ifndef DUNE_FEM_CAPABILITIES_HH
Definition: bindguard.hh:11
Definition: misc/capabilities.hh:34
static const bool v
Definition: misc/capabilities.hh:35
Definition: misc/capabilities.hh:89
static const bool v
Definition: misc/capabilities.hh:96
static const bool value
Definition: misc/capabilities.hh:97
Definition: misc/capabilities.hh:106
static const bool v
Definition: misc/capabilities.hh:107
Definition: misc/capabilities.hh:151
static const bool v
Definition: misc/capabilities.hh:152
Definition: griddeclaration.hh:33
Definition: griddeclaration.hh:36
Definition: griddeclaration.hh:39