dune-grid
2.2.0
|
00001 #ifndef DUNE_ALU3DGRID_CAPABILITIES_HH 00002 #define DUNE_ALU3DGRID_CAPABILITIES_HH 00003 00004 // only include this code, if ENABLE_ALUGRID is defined 00005 #ifdef ENABLE_ALUGRID 00006 00007 #include <dune/grid/common/capabilities.hh> 00008 #include <dune/grid/alugrid/common/declaration.hh> 00009 #include <dune/grid/alugrid/3d/alu3dinclude.hh> 00010 #include <dune/geometry/genericgeometry/topologytypes.hh> 00011 00012 00018 namespace Dune 00019 { 00020 00021 template< int dim, int dimworld > 00022 class ALUCubeGrid; 00023 00024 template< int dim, int dimworld > 00025 class ALUSimplexGrid; 00026 00027 00028 namespace Capabilities 00029 { 00030 00031 // Capabilities for ALUCubeGrid 00032 // ---------------------------- 00033 00045 template< > 00046 struct hasSingleGeometryType< ALUCubeGrid< 3, 3 > > 00047 { 00048 static const bool v = true; 00049 static const unsigned int topologyId = GenericGeometry :: CubeTopology< 3 > :: type :: id ; 00050 }; 00051 00052 00056 template< int cdim > 00057 struct hasEntity< ALUCubeGrid< 3, 3 >, cdim > 00058 { 00059 static const bool v = true; 00060 }; 00061 00065 #if ALU3DGRID_PARALLEL 00066 template<> 00067 struct isParallel< ALUCubeGrid< 3, 3 > > 00068 { 00069 static const bool v = true; 00070 }; 00071 #endif 00072 00076 #if ALU3DGRID_PARALLEL 00077 template< int codim > 00078 struct canCommunicate< ALUCubeGrid< 3, 3 >, codim > 00079 { 00080 static const bool v = true; 00081 }; 00082 #endif 00083 00087 template<> 00088 struct isLevelwiseConforming< ALUCubeGrid< 3, 3 > > 00089 { 00090 static const bool v = true; 00091 }; 00092 00096 template<> 00097 struct hasBackupRestoreFacilities< ALUCubeGrid< 3, 3 > > 00098 { 00099 static const bool v = true; 00100 }; 00101 00102 00103 00104 // Capabilities for ALUSimplexGrid 00105 // ------------------------------- 00106 00118 template< > 00119 struct hasSingleGeometryType< ALUSimplexGrid< 3, 3 > > 00120 { 00121 static const bool v = true; 00122 static const unsigned int topologyId = GenericGeometry :: SimplexTopology< 3 > :: type :: id ; 00123 }; 00124 00128 template< int cdim > 00129 struct hasEntity< ALUSimplexGrid< 3, 3 >, cdim > 00130 { 00131 static const bool v = true; 00132 }; 00133 00137 #if ALU3DGRID_PARALLEL 00138 template<> 00139 struct isParallel< ALUSimplexGrid< 3, 3 > > 00140 { 00141 static const bool v = true; 00142 }; 00143 #endif 00144 00148 #if ALU3DGRID_PARALLEL 00149 template< int codim > 00150 struct canCommunicate< ALUSimplexGrid< 3, 3 >, codim > 00151 { 00152 static const bool v = true; 00153 }; 00154 #endif 00155 00159 template<> 00160 struct isLevelwiseConforming< ALUSimplexGrid< 3, 3 > > 00161 { 00162 static const bool v = true; 00163 }; 00164 00168 template<> 00169 struct hasBackupRestoreFacilities< ALUSimplexGrid< 3, 3 > > 00170 { 00171 static const bool v = true; 00172 }; 00173 00174 } // end namespace Capabilities 00175 00176 } //end namespace Dune 00177 00178 #endif // #ifdef ENABLE_ALUGRID 00179 00180 #endif