Loading Documentation/Tutorials/Meshes/GameOfLife.cpp +6 −6 Original line number Diff line number Diff line Loading @@ -24,10 +24,10 @@ template<> struct MeshCellTopologyTag< MyConfigTag, Topologies::Quadrangle > { e //template<> struct MeshCellTopologyTag< MyConfigTag, Topologies::Tetrahedron > { enum { enabled = true }; }; //template<> struct MeshCellTopologyTag< MyConfigTag, Topologies::Hexahedron > { enum { enabled = true }; }; // Meshes are enabled only for the world dimension equal to the cell dimension. template< typename CellTopology, int WorldDimension > struct MeshWorldDimensionTag< MyConfigTag, CellTopology, WorldDimension > { enum { enabled = ( WorldDimension == CellTopology::dimension ) }; }; // Meshes are enabled only for the space dimension equal to the cell dimension. template< typename CellTopology, int SpaceDimension > struct MeshSpaceDimensionTag< MyConfigTag, CellTopology, SpaceDimension > { enum { enabled = ( SpaceDimension == CellTopology::dimension ) }; }; // Meshes are enabled only for types explicitly listed below. template<> struct MeshRealTag< MyConfigTag, float > { enum { enabled = false }; }; Loading @@ -41,12 +41,12 @@ template<> struct MeshConfigTemplateTag< MyConfigTag > { template< typename Cell, int WorldDimension = Cell::dimension, int SpaceDimension = Cell::dimension, typename Real = double, typename GlobalIndex = int, typename LocalIndex = short int > struct MeshConfig : public DefaultConfig< Cell, WorldDimension, Real, GlobalIndex, LocalIndex > : public DefaultConfig< Cell, SpaceDimension, Real, GlobalIndex, LocalIndex > { template< typename EntityTopology > static constexpr bool subentityStorage( EntityTopology, int SubentityDimension ) Loading Documentation/Tutorials/Meshes/MeshConfigurationExample.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -13,12 +13,12 @@ template<> struct MeshConfigTemplateTag< MyConfigTag > { template< typename Cell, int WorldDimension = Cell::dimension, int SpaceDimension = Cell::dimension, typename Real = double, typename GlobalIndex = int, typename LocalIndex = short int > struct MeshConfig : public DefaultConfig< Cell, WorldDimension, Real, GlobalIndex, LocalIndex > : public DefaultConfig< Cell, SpaceDimension, Real, GlobalIndex, LocalIndex > { template< typename EntityTopology > static constexpr bool subentityStorage( EntityTopology, int SubentityDimension ) Loading src/TNL/Meshes/DefaultConfig.h +2 −2 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ namespace Meshes { * Basic structure for mesh configuration. */ template< typename Cell, int WorldDimension = Cell::dimension, int SpaceDimension = Cell::dimension, typename Real = double, typename GlobalIndex = int, typename LocalIndex = short int > Loading @@ -36,7 +36,7 @@ struct DefaultConfig using GlobalIndexType = GlobalIndex; using LocalIndexType = LocalIndex; static constexpr int worldDimension = WorldDimension; static constexpr int spaceDimension = SpaceDimension; static constexpr int meshDimension = Cell::dimension; /**** Loading src/TNL/Meshes/Geometry/getOutwardNormalVector.h +2 −2 Original line number Diff line number Diff line Loading @@ -99,7 +99,7 @@ getOutwardNormalVector( const Mesh< MeshConfig, Device > & mesh, using FaceType = MeshEntity< MeshConfig, Device, Topologies::Edge >; using PointType = typename MeshTraits< MeshConfig >::PointType; static_assert( std::is_same< typename MeshType::Face, FaceType >::value, "getOutwardNormalVector called for an entity which is not a face" ); static_assert( MeshConfig::worldDimension == 2, "TODO: normal vectors for 2D meshes in a 3D space are not implemented yet" ); static_assert( MeshConfig::spaceDimension == 2, "TODO: normal vectors for 2D meshes in a 3D space are not implemented yet" ); const auto& v0 = mesh.getPoint( face.template getSubentityIndex< 0 >( 0 ) ); const auto& v1 = mesh.getPoint( face.template getSubentityIndex< 0 >( 1 ) ); Loading @@ -125,7 +125,7 @@ getOutwardNormalVector( const Mesh< MeshConfig, Device > & mesh, using FaceType = MeshEntity< MeshConfig, Device, EntityTopology >; using PointType = typename MeshTraits< MeshConfig >::PointType; static_assert( std::is_same< typename MeshType::Face, FaceType >::value, "getOutwardNormalVector called for an entity which is not a face" ); static_assert( MeshConfig::worldDimension == 3, "general overload intended for 3D was called with the wrong world dimension" ); static_assert( MeshConfig::spaceDimension == 3, "general overload intended for 3D was called with the wrong space dimension" ); const auto& v0 = mesh.getPoint( face.template getSubentityIndex< 0 >( 0 ) ); const auto& v1 = mesh.getPoint( face.template getSubentityIndex< 0 >( 1 ) ); Loading src/TNL/Meshes/MeshDetails/ConfigValidator.h +1 −1 Original line number Diff line number Diff line Loading @@ -98,7 +98,7 @@ class ConfigValidator static constexpr int meshDimension = MeshConfig::CellTopology::dimension; static_assert( 1 <= meshDimension, "zero dimensional meshes are not supported" ); static_assert( meshDimension <= MeshConfig::worldDimension, "world dimension must not be less than mesh dimension" ); static_assert( meshDimension <= MeshConfig::spaceDimension, "space dimension must not be less than mesh dimension" ); }; } // namespace Meshes Loading Loading
Documentation/Tutorials/Meshes/GameOfLife.cpp +6 −6 Original line number Diff line number Diff line Loading @@ -24,10 +24,10 @@ template<> struct MeshCellTopologyTag< MyConfigTag, Topologies::Quadrangle > { e //template<> struct MeshCellTopologyTag< MyConfigTag, Topologies::Tetrahedron > { enum { enabled = true }; }; //template<> struct MeshCellTopologyTag< MyConfigTag, Topologies::Hexahedron > { enum { enabled = true }; }; // Meshes are enabled only for the world dimension equal to the cell dimension. template< typename CellTopology, int WorldDimension > struct MeshWorldDimensionTag< MyConfigTag, CellTopology, WorldDimension > { enum { enabled = ( WorldDimension == CellTopology::dimension ) }; }; // Meshes are enabled only for the space dimension equal to the cell dimension. template< typename CellTopology, int SpaceDimension > struct MeshSpaceDimensionTag< MyConfigTag, CellTopology, SpaceDimension > { enum { enabled = ( SpaceDimension == CellTopology::dimension ) }; }; // Meshes are enabled only for types explicitly listed below. template<> struct MeshRealTag< MyConfigTag, float > { enum { enabled = false }; }; Loading @@ -41,12 +41,12 @@ template<> struct MeshConfigTemplateTag< MyConfigTag > { template< typename Cell, int WorldDimension = Cell::dimension, int SpaceDimension = Cell::dimension, typename Real = double, typename GlobalIndex = int, typename LocalIndex = short int > struct MeshConfig : public DefaultConfig< Cell, WorldDimension, Real, GlobalIndex, LocalIndex > : public DefaultConfig< Cell, SpaceDimension, Real, GlobalIndex, LocalIndex > { template< typename EntityTopology > static constexpr bool subentityStorage( EntityTopology, int SubentityDimension ) Loading
Documentation/Tutorials/Meshes/MeshConfigurationExample.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -13,12 +13,12 @@ template<> struct MeshConfigTemplateTag< MyConfigTag > { template< typename Cell, int WorldDimension = Cell::dimension, int SpaceDimension = Cell::dimension, typename Real = double, typename GlobalIndex = int, typename LocalIndex = short int > struct MeshConfig : public DefaultConfig< Cell, WorldDimension, Real, GlobalIndex, LocalIndex > : public DefaultConfig< Cell, SpaceDimension, Real, GlobalIndex, LocalIndex > { template< typename EntityTopology > static constexpr bool subentityStorage( EntityTopology, int SubentityDimension ) Loading
src/TNL/Meshes/DefaultConfig.h +2 −2 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ namespace Meshes { * Basic structure for mesh configuration. */ template< typename Cell, int WorldDimension = Cell::dimension, int SpaceDimension = Cell::dimension, typename Real = double, typename GlobalIndex = int, typename LocalIndex = short int > Loading @@ -36,7 +36,7 @@ struct DefaultConfig using GlobalIndexType = GlobalIndex; using LocalIndexType = LocalIndex; static constexpr int worldDimension = WorldDimension; static constexpr int spaceDimension = SpaceDimension; static constexpr int meshDimension = Cell::dimension; /**** Loading
src/TNL/Meshes/Geometry/getOutwardNormalVector.h +2 −2 Original line number Diff line number Diff line Loading @@ -99,7 +99,7 @@ getOutwardNormalVector( const Mesh< MeshConfig, Device > & mesh, using FaceType = MeshEntity< MeshConfig, Device, Topologies::Edge >; using PointType = typename MeshTraits< MeshConfig >::PointType; static_assert( std::is_same< typename MeshType::Face, FaceType >::value, "getOutwardNormalVector called for an entity which is not a face" ); static_assert( MeshConfig::worldDimension == 2, "TODO: normal vectors for 2D meshes in a 3D space are not implemented yet" ); static_assert( MeshConfig::spaceDimension == 2, "TODO: normal vectors for 2D meshes in a 3D space are not implemented yet" ); const auto& v0 = mesh.getPoint( face.template getSubentityIndex< 0 >( 0 ) ); const auto& v1 = mesh.getPoint( face.template getSubentityIndex< 0 >( 1 ) ); Loading @@ -125,7 +125,7 @@ getOutwardNormalVector( const Mesh< MeshConfig, Device > & mesh, using FaceType = MeshEntity< MeshConfig, Device, EntityTopology >; using PointType = typename MeshTraits< MeshConfig >::PointType; static_assert( std::is_same< typename MeshType::Face, FaceType >::value, "getOutwardNormalVector called for an entity which is not a face" ); static_assert( MeshConfig::worldDimension == 3, "general overload intended for 3D was called with the wrong world dimension" ); static_assert( MeshConfig::spaceDimension == 3, "general overload intended for 3D was called with the wrong space dimension" ); const auto& v0 = mesh.getPoint( face.template getSubentityIndex< 0 >( 0 ) ); const auto& v1 = mesh.getPoint( face.template getSubentityIndex< 0 >( 1 ) ); Loading
src/TNL/Meshes/MeshDetails/ConfigValidator.h +1 −1 Original line number Diff line number Diff line Loading @@ -98,7 +98,7 @@ class ConfigValidator static constexpr int meshDimension = MeshConfig::CellTopology::dimension; static_assert( 1 <= meshDimension, "zero dimensional meshes are not supported" ); static_assert( meshDimension <= MeshConfig::worldDimension, "world dimension must not be less than mesh dimension" ); static_assert( meshDimension <= MeshConfig::spaceDimension, "space dimension must not be less than mesh dimension" ); }; } // namespace Meshes Loading