DUNE-FEM (unstable)

capabilities.hh
1#ifndef DUNE_FEM_GRIDPART_GEOGRIDPART_CAPABILITIES_HH
2#define DUNE_FEM_GRIDPART_GEOGRIDPART_CAPABILITIES_HH
3
4//- dune-fem includes
5#include <dune/fem/gridpart/common/capabilities.hh>
6
7namespace Dune
8{
9
10 namespace Fem
11 {
12
13 // Forward declaration
14 // -------------------
15
16 template< class >
17 class GeoGridPart;
18
19
20
21 namespace GridPartCapabilities
22 {
23
24 template< class CoordFunction >
25 struct hasGrid< GeoGridPart< CoordFunction > >
26 {
27 // either implement this or leaf it away !!!
28// static const bool v = hasGrid< typename CoordFunction::GridPartType >::v;
29 static const bool v = false;
30 };
31
32
33 template< class CoordFunction >
34 class hasSingleGeometryType< GeoGridPart< CoordFunction > >
35 {
36 typedef typename CoordFunction::GridPartType HostGridPartType;
37
38 public:
39 static const bool v = hasSingleGeometryType< HostGridPartType >::v;
40 static const unsigned int topologyId = hasSingleGeometryType< HostGridPartType >::topologyId;
41 };
42
43
44 template< class CoordFunction >
45 struct isCartesian< GeoGridPart< CoordFunction > >
46 {
47 static const bool v = false;
48 };
49
50
51 template< class CoordFunction, int codim >
52 struct hasEntity< GeoGridPart< CoordFunction >, codim >
53 {
54 // disable codim > 0 && < dim entities because of missing interface for subIndex method
55 // once this is implemented we can simply use hasEntity for the HostGridPart.
56 static const bool v = ( codim == 0 || codim == CoordFunction::GridPartType :: dimension ) ?
57 hasEntity< typename CoordFunction::GridPartType, codim >::v : false ;
58 };
59
60
61 template< class CoordFunction, int codim >
62 struct canCommunicate< GeoGridPart< CoordFunction >, codim >
63 {
64 static const bool v = canCommunicate< typename CoordFunction::GridPartType, codim >::v;
65 };
66
67
68 template< class CoordFunction >
69 struct isConforming< GeoGridPart< CoordFunction > >
70 {
71 static const bool v = isConforming< typename CoordFunction::GridPartType >::v;
72 };
73
74 } // namespace GridPartCapabilities
75
76 } // namespace Fem
77
78} // namespace Dune
79
80#endif // #ifndef DUNE_FEM_GRIDPART_GEOGRIDPART_CAPABILITIES_HH
Dune namespace.
Definition: alignedallocator.hh:13
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Jul 27, 22:29, 2024)