dune-grid
2.2.0
|
00001 #ifndef DUNE_CAPABILITIES_HH 00002 #define DUNE_CAPABILITIES_HH 00003 00008 namespace Dune 00009 { 00010 00012 namespace Capabilities 00013 { 00014 00021 template<class Grid> 00022 struct hasSingleGeometryType 00023 { 00024 static const bool v = false; 00025 // this value will be initialized with something big 00026 // since it is invalid 00027 static const unsigned int topologyId = ~0u; 00028 }; 00029 00042 template<class Grid> 00043 struct isCartesian 00044 { 00045 // default value is false 00046 static const bool v = false; 00047 }; 00048 00052 template<class Grid, int codim> 00053 struct hasEntity 00054 { 00055 static const bool v = false; 00056 }; 00057 00061 template<class Grid> 00062 struct isParallel 00063 { 00064 static const bool v = false; 00065 }; 00066 00074 template< class Grid, int codim > 00075 struct canCommunicate 00076 { 00077 static const bool v = false; 00078 }; 00079 00083 template<class Grid> 00084 struct isLevelwiseConforming 00085 { 00086 static const bool v = false; 00087 }; 00088 00092 template<class Grid> 00093 struct isLeafwiseConforming 00094 { 00095 static const bool v = false; 00096 }; 00097 00101 template<class Grid> 00102 struct hasBackupRestoreFacilities 00103 { 00104 static const bool v = false; 00105 }; 00106 00117 template <class Grid> 00118 struct threadSafe { 00119 static const bool v = false; 00120 }; 00121 00132 template <class Grid> 00133 struct viewThreadSafe { 00134 static const bool v = false; 00135 }; 00136 00137 /* 00138 forward 00139 Capabilities::Something<const Grid> 00140 to 00141 Capabilities::Something<Grid> 00142 */ 00143 00144 template<class Grid> 00145 struct hasSingleGeometryType< const Grid > 00146 { 00147 static const bool v = Dune::Capabilities::hasSingleGeometryType<Grid>::v; 00148 static const unsigned int topologyId = 00149 Dune::Capabilities::hasSingleGeometryType<Grid>::topologyId; 00150 }; 00151 00152 template<class Grid> 00153 struct isCartesian< const Grid > 00154 { 00155 static const bool v = Dune::Capabilities::isCartesian<Grid>::v; 00156 }; 00157 00158 template<class Grid, int codim> 00159 struct hasEntity<const Grid, codim> 00160 { 00161 static const bool v = Dune::Capabilities::hasEntity<Grid,codim>::v; 00162 }; 00163 00164 template<class Grid> 00165 struct isParallel<const Grid> 00166 { 00167 static const bool v = Dune::Capabilities::isParallel<Grid>::v; 00168 }; 00169 00170 template< class Grid, int codim > 00171 struct canCommunicate< const Grid, codim > 00172 { 00173 static const bool v = Dune::Capabilities::canCommunicate< Grid, codim >::v; 00174 }; 00175 00176 template<class Grid> 00177 struct isLevelwiseConforming<const Grid> 00178 { 00179 static const bool v = Dune::Capabilities::isLevelwiseConforming<Grid>::v; 00180 }; 00181 00182 template<class Grid> 00183 struct isLeafwiseConforming<const Grid> 00184 { 00185 static const bool v = Dune::Capabilities::isLeafwiseConforming<Grid>::v; 00186 }; 00187 00188 template<class Grid> 00189 struct hasBackupRestoreFacilities<const Grid> 00190 { 00191 static const bool v = Dune::Capabilities::hasBackupRestoreFacilities<Grid>::v; 00192 }; 00193 00194 template <class Grid> 00195 struct threadSafe<const Grid> { 00196 static const bool v = Dune::Capabilities::threadSafe<Grid>::v; 00197 }; 00198 00199 template <class Grid> 00200 struct viewThreadSafe<const Grid> { 00201 static const bool v = Dune::Capabilities::viewThreadSafe<Grid>::v; 00202 }; 00203 00204 } 00205 00206 } 00207 00208 #endif // DUNE_CAPABILITIES_HH