Loading src/TNL/Meshes/BuildConfigTags.h +19 −10 Original line number Diff line number Diff line Loading @@ -31,8 +31,10 @@ namespace BuildConfigTags { // 1, 2, and 3 dimensions are enabled by default template< typename ConfigTag, int Dimension > struct GridDimensionTag { enum { enabled = ( Dimension > 0 && Dimension <= 3 ) }; }; // Grids are enabled for all real types by default. template< typename ConfigTag, typename Real > struct GridRealTag { enum { enabled = true }; }; // Grids are enabled only for the `float` and `double` real types by default. template< typename ConfigTag, typename Real > struct GridRealTag { enum { enabled = false }; }; template< typename ConfigTag > struct GridRealTag< ConfigTag, float > { enum { enabled = true }; }; template< typename ConfigTag > struct GridRealTag< ConfigTag, double > { enum { enabled = true }; }; // Grids are enabled on all available devices by default. template< typename ConfigTag, typename Device > struct GridDeviceTag { enum { enabled = true }; }; Loading @@ -40,8 +42,10 @@ template< typename ConfigTag, typename Device > struct GridDeviceTag { enum { en template< typename ConfigTag > struct GridDeviceTag< ConfigTag, Devices::Cuda > { enum { enabled = false }; }; #endif // Grids are enabled for all index types by default. template< typename ConfigTag, typename Index > struct GridIndexTag { enum { enabled = true }; }; // Grids are enabled only for the `int` and `long int` index types by default. template< typename ConfigTag, typename Index > struct GridIndexTag { enum { enabled = false }; }; template< typename ConfigTag > struct GridIndexTag< ConfigTag, int > { enum { enabled = true }; }; template< typename ConfigTag > struct GridIndexTag< ConfigTag, long int > { enum { enabled = true }; }; // The Grid is enabled for allowed dimensions and Real, Device and Index types. // Loading Loading @@ -85,14 +89,19 @@ template< typename ConfigTag, typename CellTopology > struct MeshCellTopologyTag // All sensible world dimensions are enabled by default. template< typename ConfigTag, typename CellTopology, int WorldDimension > struct MeshWorldDimensionTag { enum { enabled = ( WorldDimension >= CellTopology::dimension && WorldDimension <= 3 ) }; }; // Meshes are enabled for all real types by default. template< typename ConfigTag, typename Real > struct MeshRealTag { enum { enabled = true }; }; // Meshes are enabled only for the `float` and `double` real types by default. template< typename ConfigTag, typename Real > struct MeshRealTag { enum { enabled = false }; }; template< typename ConfigTag > struct MeshRealTag< ConfigTag, float > { enum { enabled = true }; }; template< typename ConfigTag > struct MeshRealTag< ConfigTag, double > { enum { enabled = true }; }; // Meshes are enabled for all global index types by default. template< typename ConfigTag, typename GlobalIndex > struct MeshGlobalIndexTag { enum { enabled = true }; }; // Meshes are enabled only for the `int` and `long int` global index types by default. template< typename ConfigTag, typename GlobalIndex > struct MeshGlobalIndexTag { enum { enabled = false }; }; template< typename ConfigTag > struct MeshGlobalIndexTag< ConfigTag, int > { enum { enabled = true }; }; template< typename ConfigTag > struct MeshGlobalIndexTag< ConfigTag, long int > { enum { enabled = true }; }; // Meshes are enabled for all local index types by default. template< typename ConfigTag, typename LocalIndex > struct MeshLocalIndexTag { enum { enabled = true }; }; // Meshes are enabled only for the `short int` local index type by default. template< typename ConfigTag, typename LocalIndex > struct MeshLocalIndexTag { enum { enabled = false }; }; template< typename ConfigTag > struct MeshLocalIndexTag< ConfigTag, short int > { enum { enabled = true }; }; // Config tag specifying the MeshConfig to use. template< typename ConfigTag > Loading src/TNL/Solvers/FastBuildConfigTag.h +2 −7 Original line number Diff line number Diff line Loading @@ -16,12 +16,7 @@ namespace TNL { namespace Solvers { class FastBuildConfigTag { public: static void print() { std::cerr << "FastBuildConfigTag" << std::endl; } }; class FastBuildConfigTag {}; /**** * Turn off support for float and long double. Loading src/Tools/tnl-mesh-converter.cpp +2 −3 Original line number Diff line number Diff line Loading @@ -49,11 +49,10 @@ struct MeshWorldDimensionTag< MeshConverterConfigTag, CellTopology, WorldDimensi { enum { enabled = ( WorldDimension == CellTopology::dimension ) }; }; // Meshes are enabled only for types explicitly listed below. template< typename Real > struct MeshRealTag< MeshConverterConfigTag, Real > { enum { enabled = false }; }; template< typename GlobalIndex > struct MeshGlobalIndexTag< MeshConverterConfigTag, GlobalIndex > { enum { enabled = false }; }; template< typename LocalIndex > struct MeshLocalIndexTag< MeshConverterConfigTag, LocalIndex > { enum { enabled = false }; }; template<> struct MeshRealTag< MeshConverterConfigTag, float > { enum { enabled = false }; }; template<> struct MeshRealTag< MeshConverterConfigTag, double > { enum { enabled = true }; }; template<> struct MeshGlobalIndexTag< MeshConverterConfigTag, int > { enum { enabled = true }; }; template<> struct MeshGlobalIndexTag< MeshConverterConfigTag, long int > { enum { enabled = false }; }; template<> struct MeshLocalIndexTag< MeshConverterConfigTag, short int > { enum { enabled = true }; }; } // namespace BuildConfigTags Loading src/Tools/tnl-view.cpp +2 −3 Original line number Diff line number Diff line Loading @@ -47,11 +47,10 @@ struct MeshWorldDimensionTag< TNLViewBuildConfigTag, CellTopology, WorldDimensio { enum { enabled = ( WorldDimension == CellTopology::dimension ) }; }; // Meshes are enabled only for types explicitly listed below. template< typename Real > struct MeshRealTag< TNLViewBuildConfigTag, Real > { enum { enabled = false }; }; template< typename GlobalIndex > struct MeshGlobalIndexTag< TNLViewBuildConfigTag, GlobalIndex > { enum { enabled = false }; }; template< typename LocalIndex > struct MeshLocalIndexTag< TNLViewBuildConfigTag, LocalIndex > { enum { enabled = false }; }; template<> struct MeshRealTag< TNLViewBuildConfigTag, float > { enum { enabled = false }; }; template<> struct MeshRealTag< TNLViewBuildConfigTag, double > { enum { enabled = true }; }; template<> struct MeshGlobalIndexTag< TNLViewBuildConfigTag, int > { enum { enabled = true }; }; template<> struct MeshGlobalIndexTag< TNLViewBuildConfigTag, long int > { enum { enabled = false }; }; template<> struct MeshLocalIndexTag< TNLViewBuildConfigTag, short int > { enum { enabled = true }; }; } // namespace BuildConfigTags Loading Loading
src/TNL/Meshes/BuildConfigTags.h +19 −10 Original line number Diff line number Diff line Loading @@ -31,8 +31,10 @@ namespace BuildConfigTags { // 1, 2, and 3 dimensions are enabled by default template< typename ConfigTag, int Dimension > struct GridDimensionTag { enum { enabled = ( Dimension > 0 && Dimension <= 3 ) }; }; // Grids are enabled for all real types by default. template< typename ConfigTag, typename Real > struct GridRealTag { enum { enabled = true }; }; // Grids are enabled only for the `float` and `double` real types by default. template< typename ConfigTag, typename Real > struct GridRealTag { enum { enabled = false }; }; template< typename ConfigTag > struct GridRealTag< ConfigTag, float > { enum { enabled = true }; }; template< typename ConfigTag > struct GridRealTag< ConfigTag, double > { enum { enabled = true }; }; // Grids are enabled on all available devices by default. template< typename ConfigTag, typename Device > struct GridDeviceTag { enum { enabled = true }; }; Loading @@ -40,8 +42,10 @@ template< typename ConfigTag, typename Device > struct GridDeviceTag { enum { en template< typename ConfigTag > struct GridDeviceTag< ConfigTag, Devices::Cuda > { enum { enabled = false }; }; #endif // Grids are enabled for all index types by default. template< typename ConfigTag, typename Index > struct GridIndexTag { enum { enabled = true }; }; // Grids are enabled only for the `int` and `long int` index types by default. template< typename ConfigTag, typename Index > struct GridIndexTag { enum { enabled = false }; }; template< typename ConfigTag > struct GridIndexTag< ConfigTag, int > { enum { enabled = true }; }; template< typename ConfigTag > struct GridIndexTag< ConfigTag, long int > { enum { enabled = true }; }; // The Grid is enabled for allowed dimensions and Real, Device and Index types. // Loading Loading @@ -85,14 +89,19 @@ template< typename ConfigTag, typename CellTopology > struct MeshCellTopologyTag // All sensible world dimensions are enabled by default. template< typename ConfigTag, typename CellTopology, int WorldDimension > struct MeshWorldDimensionTag { enum { enabled = ( WorldDimension >= CellTopology::dimension && WorldDimension <= 3 ) }; }; // Meshes are enabled for all real types by default. template< typename ConfigTag, typename Real > struct MeshRealTag { enum { enabled = true }; }; // Meshes are enabled only for the `float` and `double` real types by default. template< typename ConfigTag, typename Real > struct MeshRealTag { enum { enabled = false }; }; template< typename ConfigTag > struct MeshRealTag< ConfigTag, float > { enum { enabled = true }; }; template< typename ConfigTag > struct MeshRealTag< ConfigTag, double > { enum { enabled = true }; }; // Meshes are enabled for all global index types by default. template< typename ConfigTag, typename GlobalIndex > struct MeshGlobalIndexTag { enum { enabled = true }; }; // Meshes are enabled only for the `int` and `long int` global index types by default. template< typename ConfigTag, typename GlobalIndex > struct MeshGlobalIndexTag { enum { enabled = false }; }; template< typename ConfigTag > struct MeshGlobalIndexTag< ConfigTag, int > { enum { enabled = true }; }; template< typename ConfigTag > struct MeshGlobalIndexTag< ConfigTag, long int > { enum { enabled = true }; }; // Meshes are enabled for all local index types by default. template< typename ConfigTag, typename LocalIndex > struct MeshLocalIndexTag { enum { enabled = true }; }; // Meshes are enabled only for the `short int` local index type by default. template< typename ConfigTag, typename LocalIndex > struct MeshLocalIndexTag { enum { enabled = false }; }; template< typename ConfigTag > struct MeshLocalIndexTag< ConfigTag, short int > { enum { enabled = true }; }; // Config tag specifying the MeshConfig to use. template< typename ConfigTag > Loading
src/TNL/Solvers/FastBuildConfigTag.h +2 −7 Original line number Diff line number Diff line Loading @@ -16,12 +16,7 @@ namespace TNL { namespace Solvers { class FastBuildConfigTag { public: static void print() { std::cerr << "FastBuildConfigTag" << std::endl; } }; class FastBuildConfigTag {}; /**** * Turn off support for float and long double. Loading
src/Tools/tnl-mesh-converter.cpp +2 −3 Original line number Diff line number Diff line Loading @@ -49,11 +49,10 @@ struct MeshWorldDimensionTag< MeshConverterConfigTag, CellTopology, WorldDimensi { enum { enabled = ( WorldDimension == CellTopology::dimension ) }; }; // Meshes are enabled only for types explicitly listed below. template< typename Real > struct MeshRealTag< MeshConverterConfigTag, Real > { enum { enabled = false }; }; template< typename GlobalIndex > struct MeshGlobalIndexTag< MeshConverterConfigTag, GlobalIndex > { enum { enabled = false }; }; template< typename LocalIndex > struct MeshLocalIndexTag< MeshConverterConfigTag, LocalIndex > { enum { enabled = false }; }; template<> struct MeshRealTag< MeshConverterConfigTag, float > { enum { enabled = false }; }; template<> struct MeshRealTag< MeshConverterConfigTag, double > { enum { enabled = true }; }; template<> struct MeshGlobalIndexTag< MeshConverterConfigTag, int > { enum { enabled = true }; }; template<> struct MeshGlobalIndexTag< MeshConverterConfigTag, long int > { enum { enabled = false }; }; template<> struct MeshLocalIndexTag< MeshConverterConfigTag, short int > { enum { enabled = true }; }; } // namespace BuildConfigTags Loading
src/Tools/tnl-view.cpp +2 −3 Original line number Diff line number Diff line Loading @@ -47,11 +47,10 @@ struct MeshWorldDimensionTag< TNLViewBuildConfigTag, CellTopology, WorldDimensio { enum { enabled = ( WorldDimension == CellTopology::dimension ) }; }; // Meshes are enabled only for types explicitly listed below. template< typename Real > struct MeshRealTag< TNLViewBuildConfigTag, Real > { enum { enabled = false }; }; template< typename GlobalIndex > struct MeshGlobalIndexTag< TNLViewBuildConfigTag, GlobalIndex > { enum { enabled = false }; }; template< typename LocalIndex > struct MeshLocalIndexTag< TNLViewBuildConfigTag, LocalIndex > { enum { enabled = false }; }; template<> struct MeshRealTag< TNLViewBuildConfigTag, float > { enum { enabled = false }; }; template<> struct MeshRealTag< TNLViewBuildConfigTag, double > { enum { enabled = true }; }; template<> struct MeshGlobalIndexTag< TNLViewBuildConfigTag, int > { enum { enabled = true }; }; template<> struct MeshGlobalIndexTag< TNLViewBuildConfigTag, long int > { enum { enabled = false }; }; template<> struct MeshLocalIndexTag< TNLViewBuildConfigTag, short int > { enum { enabled = true }; }; } // namespace BuildConfigTags Loading