dune-grid  2.1.1
alugrid/2d/capabilities.hh
Go to the documentation of this file.
00001 #ifndef DUNE_ALU2DGRID_CAPABILITIES_HH
00002 #define DUNE_ALU2DGRID_CAPABILITIES_HH
00003 
00004 // only include this code, if ENABLE_ALUGRID is defined
00005 #ifdef ENABLE_ALUGRID
00006 
00007 #include <dune/grid/alugrid/2d/alu2dinclude.hh>
00008 #include <dune/grid/common/capabilities.hh>
00009 #include <dune/grid/genericgeometry/topologytypes.hh>
00010 
00011 
00017 namespace Dune
00018 {
00019 
00020   template< int dim, int dimworld >
00021   class ALUSimplexGrid;
00022 
00023   template< int dim, int dimw >
00024   class ALUCubeGrid;
00025 
00026   template< int dim, int dimworld >
00027   class ALUConformGrid;
00028 
00029 
00030 
00031   namespace Capabilities
00032   {
00033 
00034 
00035     // Capabilities for ALUSimplexGrid
00036     // -------------------------------
00037 
00041     template< int dimworld >
00042     struct hasSingleGeometryType< ALUSimplexGrid< 2, dimworld > >
00043     {
00044       static const bool v = true;
00045       static const unsigned int topologyId = GenericGeometry :: SimplexTopology< 2 > :: type :: id ;
00046     };
00047 
00048 
00052     template< int dimworld, int cdim >
00053     struct hasEntity< ALUSimplexGrid< 2, dimworld >, cdim >
00054     {
00055       static const bool v = true;
00056     };
00057 
00058 #if ALU2DGRID_PARALLEL
00059 
00062     //- default is false 
00063     template< int dimworld >
00064     struct isParallel< ALUSimplexGrid< 2, dimworld > >
00065     {
00066       static const bool v = true;
00067     };
00068 #endif // #if ALU2DGRID_PARALLEL
00069 
00070 #if ALU2DGRID_PARALLEL
00071 
00074     //- default is false 
00075     template< int dimworld >
00076     struct canCommunicate< ALUSimplexGrid< 2, dimworld >, 0 >
00077     {
00078       static const bool v = true;
00079     };
00080 #endif // #if ALU2DGRID_PARALLEL
00081 
00085     template< int dimworld >
00086     struct isLevelwiseConforming< ALUSimplexGrid< 2, dimworld > >
00087     {
00088       static const bool v = true;
00089     };
00090 
00094     template< int dimworld >
00095     struct hasBackupRestoreFacilities< ALUSimplexGrid< 2, dimworld > >
00096     {
00097       static const bool v = true;
00098     };
00099 
00100 
00101 
00102     // Capabilities for ALUCubeGrid
00103     // ----------------------------
00104 
00108     template< int wdim >
00109     struct hasSingleGeometryType< ALUCubeGrid< 2, wdim > >
00110     {
00111       static const bool v = true;
00112       static const unsigned int topologyId = GenericGeometry :: CubeTopology< 2 > :: type :: id ;
00113     };
00114 
00118     template< int wdim, int cdim >
00119     struct hasEntity< Dune::ALUCubeGrid< 2, wdim >, cdim >
00120     {
00121       static const bool v = true;
00122     };
00123 
00124 #if ALU2DGRID_PARALLEL
00125 
00128     //- default is false 
00129     template< int dimworld >
00130     struct isParallel< ALUCubeGrid< 2, dimworld > >
00131     {
00132       static const bool v = true;
00133     };
00134 #endif // #if ALU2DGRID_PARALLEL
00135 
00136 #if ALU2DGRID_PARALLEL
00137 
00140     //- default is false 
00141     template< int dimworld >
00142     struct canCommunicate< ALUCubeGrid< 2, dimworld >, 0 >
00143     {
00144       static const bool v = true;
00145     };
00146 #endif // #if ALU2DGRID_PARALLEL
00147 
00151     template<int wdim>
00152     struct isLevelwiseConforming< Dune::ALUCubeGrid< 2, wdim > >
00153     {
00154       static const bool v = true;
00155     };
00156 
00160     template<int wdim>
00161     struct hasBackupRestoreFacilities< Dune::ALUCubeGrid< 2, wdim > >
00162     {
00163       static const bool v = true;
00164     };
00165 
00166 
00167 
00168     // Capabilities for ALUConformGrid
00169     // -------------------------------
00170 
00174     template< int dimworld >
00175     struct hasSingleGeometryType< ALUConformGrid< 2, dimworld > >
00176     {
00177       static const bool v = true;
00178       static const unsigned int topologyId = GenericGeometry :: SimplexTopology< 2 > :: type :: id ;
00179     };
00180 
00184     template< int dimworld, int cdim >
00185     struct hasEntity< ALUConformGrid< 2, dimworld >, cdim >
00186     {
00187       static const bool v = true;
00188     };
00189 
00190 #if ALU2DGRID_PARALLEL
00191 
00194     //- default is false 
00195     template< int dimworld >
00196     struct isParallel< ALUConformGrid< 2, dimworld > >
00197     {
00198       static const bool v = true;
00199     };
00200 #endif // #if ALU2DGRID_PARALLEL
00201 
00202 #if ALU2DGRID_PARALLEL
00203 
00206     //- default is false 
00207     template< int dimworld >
00208     struct canCommunicate< ALUConformGrid< 2, dimworld >, 0 >
00209     {
00210       static const bool v = true;
00211     };
00212 #endif // #if ALU2DGRID_PARALLEL
00213 
00217     template< int dimworld >
00218     struct isLeafwiseConforming< ALUConformGrid< 2, dimworld > >
00219     {
00220       static const bool v = true;
00221     };
00222 
00226     template< int dimworld >
00227     struct hasBackupRestoreFacilities< ALUConformGrid< 2, dimworld > >
00228     {
00229       static const bool v = true;
00230     };
00231 
00232   } // namespace Capabilities
00233 
00234 } // namespace Dune 
00235 
00236 #endif // #ifdef ENABLE_ALUGRID
00237 
00238 #endif // #ifndef DUNE_ALU2DGRID_CAPABILITIES_HH