Loading src/TNL/Meshes/MeshBuilder.h +0 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ #pragma once #include <TNL/Containers/Vector.h> #include <TNL/Meshes/MeshDetails/traits/MeshTraits.h> namespace TNL { namespace Meshes { Loading src/TNL/Meshes/MeshDetails/initializer/EntityInitializer.h +19 −1 Original line number Diff line number Diff line Loading @@ -46,7 +46,9 @@ template< typename MeshConfig, class EntityInitializerLayer; template< typename MeshConfig, typename EntityTopology > typename EntityTopology, bool SubvertexStorage = MeshConfig::subentityStorage( typename MeshTraits< MeshConfig >::template EntityTraits< EntityTopology::dimension >::EntityTopology(), 0 ) > class EntityInitializer : public EntityInitializerLayer< MeshConfig, DimensionTag< EntityTopology::dimension >, Loading @@ -72,6 +74,22 @@ public: } }; template< typename MeshConfig, typename EntityTopology > class EntityInitializer< MeshConfig, EntityTopology, false > : public EntityInitializerLayer< MeshConfig, DimensionTag< EntityTopology::dimension >, DimensionTag< MeshTraits< MeshConfig >::meshDimension > > { using MeshTraitsType = MeshTraits< MeshConfig >; using GlobalIndexType = typename MeshTraitsType::GlobalIndexType; using SeedType = EntitySeed< MeshConfig, EntityTopology >; using InitializerType = Initializer< MeshConfig >; public: static void initEntity( const GlobalIndexType& entityIndex, const SeedType& entitySeed, InitializerType& initializer) {} }; /**** * Mesh entity initializer layer with specializations Loading src/Tools/tnl-mesh-converter.cpp +45 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,51 @@ template<> struct MeshGlobalIndexTag< MeshConverterConfigTag, int > { enum { ena template<> struct MeshGlobalIndexTag< MeshConverterConfigTag, long int > { enum { enabled = false }; }; template<> struct MeshLocalIndexTag< MeshConverterConfigTag, short int > { enum { enabled = true }; }; // Config tag specifying the MeshConfig template to use. template<> struct MeshConfigTemplateTag< MeshConverterConfigTag > { template< typename Cell, int WorldDimension = Cell::dimension, typename Real = double, typename GlobalIndex = int, typename LocalIndex = GlobalIndex > struct MeshConfig { using CellTopology = Cell; using RealType = Real; using GlobalIndexType = GlobalIndex; using LocalIndexType = LocalIndex; static constexpr int worldDimension = WorldDimension; static constexpr int meshDimension = Cell::dimension; template< typename EntityTopology > static constexpr bool subentityStorage( EntityTopology, int SubentityDimension ) { return SubentityDimension == 0 && EntityTopology::dimension == meshDimension; } template< typename EntityTopology > static constexpr bool subentityOrientationStorage( EntityTopology, int SubentityDimension ) { return false; } template< typename EntityTopology > static constexpr bool superentityStorage( EntityTopology, int SuperentityDimension ) { return false; } template< typename EntityTopology > static constexpr bool boundaryTagsStorage( EntityTopology ) { return false; } }; }; } // namespace BuildConfigTags } // namespace Meshes } // namespace TNL Loading Loading
src/TNL/Meshes/MeshBuilder.h +0 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ #pragma once #include <TNL/Containers/Vector.h> #include <TNL/Meshes/MeshDetails/traits/MeshTraits.h> namespace TNL { namespace Meshes { Loading
src/TNL/Meshes/MeshDetails/initializer/EntityInitializer.h +19 −1 Original line number Diff line number Diff line Loading @@ -46,7 +46,9 @@ template< typename MeshConfig, class EntityInitializerLayer; template< typename MeshConfig, typename EntityTopology > typename EntityTopology, bool SubvertexStorage = MeshConfig::subentityStorage( typename MeshTraits< MeshConfig >::template EntityTraits< EntityTopology::dimension >::EntityTopology(), 0 ) > class EntityInitializer : public EntityInitializerLayer< MeshConfig, DimensionTag< EntityTopology::dimension >, Loading @@ -72,6 +74,22 @@ public: } }; template< typename MeshConfig, typename EntityTopology > class EntityInitializer< MeshConfig, EntityTopology, false > : public EntityInitializerLayer< MeshConfig, DimensionTag< EntityTopology::dimension >, DimensionTag< MeshTraits< MeshConfig >::meshDimension > > { using MeshTraitsType = MeshTraits< MeshConfig >; using GlobalIndexType = typename MeshTraitsType::GlobalIndexType; using SeedType = EntitySeed< MeshConfig, EntityTopology >; using InitializerType = Initializer< MeshConfig >; public: static void initEntity( const GlobalIndexType& entityIndex, const SeedType& entitySeed, InitializerType& initializer) {} }; /**** * Mesh entity initializer layer with specializations Loading
src/Tools/tnl-mesh-converter.cpp +45 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,51 @@ template<> struct MeshGlobalIndexTag< MeshConverterConfigTag, int > { enum { ena template<> struct MeshGlobalIndexTag< MeshConverterConfigTag, long int > { enum { enabled = false }; }; template<> struct MeshLocalIndexTag< MeshConverterConfigTag, short int > { enum { enabled = true }; }; // Config tag specifying the MeshConfig template to use. template<> struct MeshConfigTemplateTag< MeshConverterConfigTag > { template< typename Cell, int WorldDimension = Cell::dimension, typename Real = double, typename GlobalIndex = int, typename LocalIndex = GlobalIndex > struct MeshConfig { using CellTopology = Cell; using RealType = Real; using GlobalIndexType = GlobalIndex; using LocalIndexType = LocalIndex; static constexpr int worldDimension = WorldDimension; static constexpr int meshDimension = Cell::dimension; template< typename EntityTopology > static constexpr bool subentityStorage( EntityTopology, int SubentityDimension ) { return SubentityDimension == 0 && EntityTopology::dimension == meshDimension; } template< typename EntityTopology > static constexpr bool subentityOrientationStorage( EntityTopology, int SubentityDimension ) { return false; } template< typename EntityTopology > static constexpr bool superentityStorage( EntityTopology, int SuperentityDimension ) { return false; } template< typename EntityTopology > static constexpr bool boundaryTagsStorage( EntityTopology ) { return false; } }; }; } // namespace BuildConfigTags } // namespace Meshes } // namespace TNL Loading