Loading src/TNL/Meshes/MeshDetails/CMakeLists.txt +1 −2 Original line number Diff line number Diff line Loading @@ -9,7 +9,6 @@ SET( headers MeshEntityId.h MeshEntity_impl.h MeshIntegrityChecker.h MeshIntegrityCheckerLayer.h MeshReaderNetgen.h MeshWriterNetgen.h MeshWriterVTKLegacy.h Mesh_impl.h ) Loading src/TNL/Meshes/Readers/CMakeLists.txt 0 → 100755 +5 −0 Original line number Diff line number Diff line SET( headers Netgen.h TNL.h ) INSTALL( FILES ${headers} DESTINATION include/tnl-${tnlVersion}/TNL/Meshes/Readers ) src/TNL/Meshes/MeshDetails/MeshReaderNetgen.h→src/TNL/Meshes/Readers/Netgen.h +0 −0 File moved. View file src/TNL/Meshes/Readers/TNL.h 0 → 100644 +109 −0 Original line number Diff line number Diff line /*************************************************************************** TNL.h - description ------------------- begin : Nov 20, 2016 copyright : (C) 2016 by Tomas Oberhuber et al. email : tomas.oberhuber@fjfi.cvut.cz ***************************************************************************/ /* See Copyright Notice in tnl/Copyright */ #pragma once #include <TNL/String.h> #include <TNL/Object.h> #include <TNL/Containers/List.h> namespace TNL { namespace Meshes { namespace Readers { class TNL { public: bool readFile( const String& fileName ) { this->reset(); String meshType; if( ! getObjectType( fileName, meshType ) ) { std::cerr << "I am not able to detect the mesh type from the file " << fileName << "." << std::endl; return EXIT_FAILURE; } Containers::List< String > parsedMeshType; if( ! parseObjectType( meshType, parsedMeshType ) ) { std::cerr << "Unable to parse the mesh type " << meshType << "." << std::endl; return false; } meshType = parsedMeshType[ 0 ]; if( meshType == "Meshes::Grid" ) { // save parts necessary to determine the mesh type meshDimension = std::atoi( parsedMeshType[ 1 ].getString() ); realType = parsedMeshType[ 2 ]; indexType = parsedMeshType[ 4 ]; } // TODO: loading of unstructured meshes else { std::cerr << "The mesh type " << meshType << " is not supported (yet)." << std::endl; return false; } return true; } template< typename MeshType > bool initializeMesh( MeshType& mesh ) { return mesh.load( fileName ); } String getMeshType() const { return meshType; } int getMeshDimension() const { return meshDimension; } String getRealType() const { return realType; } String getIndexType() const { return indexType; } protected: String fileName; String meshType; int meshDimension = 0; String realType; String indexType; void reset() { fileName = ""; meshType = ""; meshDimension = 0; realType = ""; indexType = ""; } }; } // namespace Readers } // namespace Meshes } // namespace TNL src/TNL/Solvers/MeshTypeResolver.h +11 −32 Original line number Diff line number Diff line Loading @@ -11,6 +11,8 @@ #pragma once #include <TNL/Config/ParameterContainer.h> #include <TNL/Solvers/BuildConfigTags.h> #include <TNL/Meshes/Readers/TNL.h> namespace TNL { namespace Solvers { Loading Loading @@ -51,20 +53,20 @@ class MeshTypeResolver< ProblemSetter, Real, Device, Index, ConfigTag, true > protected: static bool resolveMeshDimension( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); Meshes::Readers::TNL& reader ); // Overload for disabled dimensions template< int MeshDimension, typename = typename std::enable_if< ! ConfigTagDimension<ConfigTag,MeshDimension>::enabled >::type, typename = typename std::enable_if< ! ConfigTagDimensions<ConfigTag,MeshDimension>::enabled >::type, typename = void > static bool resolveMeshRealType( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); Meshes::Readers::TNL& reader ); // Overload for enabled dimensions template< int MeshDimension, typename = typename std::enable_if< ConfigTagDimension<ConfigTag,MeshDimension>::enabled >::type > typename = typename std::enable_if< ConfigTagDimensions<ConfigTag,MeshDimension>::enabled >::type > static bool resolveMeshRealType( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); Meshes::Readers::TNL& reader ); // Overload for disabled real types template< int MeshDimension, Loading @@ -72,14 +74,14 @@ class MeshTypeResolver< ProblemSetter, Real, Device, Index, ConfigTag, true > typename = typename std::enable_if< ! ConfigTagReal<ConfigTag, MeshRealType>::enabled >::type, typename = void > static bool resolveMeshIndexType( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); Meshes::Readers::TNL& reader ); // Overload for enabled real types template< int MeshDimension, typename MeshRealType, typename = typename std::enable_if< ConfigTagReal<ConfigTag, MeshRealType>::enabled >::type > static bool resolveMeshIndexType( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); Meshes::Readers::TNL& reader ); // Overload for disabled index types template< int MeshDimension, Loading @@ -88,7 +90,7 @@ class MeshTypeResolver< ProblemSetter, Real, Device, Index, ConfigTag, true > typename = typename std::enable_if< ! ConfigTagIndex<ConfigTag, MeshIndexType>::enabled >::type, typename = void > static bool resolveMeshType( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); Meshes::Readers::TNL& reader ); // Overload for enabled index types template< int MeshDimension, Loading @@ -96,7 +98,7 @@ class MeshTypeResolver< ProblemSetter, Real, Device, Index, ConfigTag, true > typename MeshIndexType, typename = typename std::enable_if< ConfigTagIndex<ConfigTag, MeshIndexType>::enabled >::type > static bool resolveMeshType( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); Meshes::Readers::TNL& reader ); Loading @@ -104,29 +106,6 @@ class MeshTypeResolver< ProblemSetter, Real, Device, Index, ConfigTag, true > friend class MeshTypeResolverDimensionSupportChecker; }; /*template< int Dimension, bool DimensionSupport, typename MeshTypeResolver > class MeshTypeResolverDimensionSupportChecker { }; template< int Dimension, typename MeshTypeResolver > class MeshTypeResolverDimensionSupportChecker< Dimension, true, MeshTypeResolver > { public: static bool checkDimension( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); }; template< int Dimension, typename MeshTypeResolver > class MeshTypeResolverDimensionSupportChecker< Dimension, false, MeshTypeResolver > { public: static bool checkDimension( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); };*/ } // namespace Solvers } // namespace TNL Loading Loading
src/TNL/Meshes/MeshDetails/CMakeLists.txt +1 −2 Original line number Diff line number Diff line Loading @@ -9,7 +9,6 @@ SET( headers MeshEntityId.h MeshEntity_impl.h MeshIntegrityChecker.h MeshIntegrityCheckerLayer.h MeshReaderNetgen.h MeshWriterNetgen.h MeshWriterVTKLegacy.h Mesh_impl.h ) Loading
src/TNL/Meshes/Readers/CMakeLists.txt 0 → 100755 +5 −0 Original line number Diff line number Diff line SET( headers Netgen.h TNL.h ) INSTALL( FILES ${headers} DESTINATION include/tnl-${tnlVersion}/TNL/Meshes/Readers )
src/TNL/Meshes/MeshDetails/MeshReaderNetgen.h→src/TNL/Meshes/Readers/Netgen.h +0 −0 File moved. View file
src/TNL/Meshes/Readers/TNL.h 0 → 100644 +109 −0 Original line number Diff line number Diff line /*************************************************************************** TNL.h - description ------------------- begin : Nov 20, 2016 copyright : (C) 2016 by Tomas Oberhuber et al. email : tomas.oberhuber@fjfi.cvut.cz ***************************************************************************/ /* See Copyright Notice in tnl/Copyright */ #pragma once #include <TNL/String.h> #include <TNL/Object.h> #include <TNL/Containers/List.h> namespace TNL { namespace Meshes { namespace Readers { class TNL { public: bool readFile( const String& fileName ) { this->reset(); String meshType; if( ! getObjectType( fileName, meshType ) ) { std::cerr << "I am not able to detect the mesh type from the file " << fileName << "." << std::endl; return EXIT_FAILURE; } Containers::List< String > parsedMeshType; if( ! parseObjectType( meshType, parsedMeshType ) ) { std::cerr << "Unable to parse the mesh type " << meshType << "." << std::endl; return false; } meshType = parsedMeshType[ 0 ]; if( meshType == "Meshes::Grid" ) { // save parts necessary to determine the mesh type meshDimension = std::atoi( parsedMeshType[ 1 ].getString() ); realType = parsedMeshType[ 2 ]; indexType = parsedMeshType[ 4 ]; } // TODO: loading of unstructured meshes else { std::cerr << "The mesh type " << meshType << " is not supported (yet)." << std::endl; return false; } return true; } template< typename MeshType > bool initializeMesh( MeshType& mesh ) { return mesh.load( fileName ); } String getMeshType() const { return meshType; } int getMeshDimension() const { return meshDimension; } String getRealType() const { return realType; } String getIndexType() const { return indexType; } protected: String fileName; String meshType; int meshDimension = 0; String realType; String indexType; void reset() { fileName = ""; meshType = ""; meshDimension = 0; realType = ""; indexType = ""; } }; } // namespace Readers } // namespace Meshes } // namespace TNL
src/TNL/Solvers/MeshTypeResolver.h +11 −32 Original line number Diff line number Diff line Loading @@ -11,6 +11,8 @@ #pragma once #include <TNL/Config/ParameterContainer.h> #include <TNL/Solvers/BuildConfigTags.h> #include <TNL/Meshes/Readers/TNL.h> namespace TNL { namespace Solvers { Loading Loading @@ -51,20 +53,20 @@ class MeshTypeResolver< ProblemSetter, Real, Device, Index, ConfigTag, true > protected: static bool resolveMeshDimension( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); Meshes::Readers::TNL& reader ); // Overload for disabled dimensions template< int MeshDimension, typename = typename std::enable_if< ! ConfigTagDimension<ConfigTag,MeshDimension>::enabled >::type, typename = typename std::enable_if< ! ConfigTagDimensions<ConfigTag,MeshDimension>::enabled >::type, typename = void > static bool resolveMeshRealType( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); Meshes::Readers::TNL& reader ); // Overload for enabled dimensions template< int MeshDimension, typename = typename std::enable_if< ConfigTagDimension<ConfigTag,MeshDimension>::enabled >::type > typename = typename std::enable_if< ConfigTagDimensions<ConfigTag,MeshDimension>::enabled >::type > static bool resolveMeshRealType( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); Meshes::Readers::TNL& reader ); // Overload for disabled real types template< int MeshDimension, Loading @@ -72,14 +74,14 @@ class MeshTypeResolver< ProblemSetter, Real, Device, Index, ConfigTag, true > typename = typename std::enable_if< ! ConfigTagReal<ConfigTag, MeshRealType>::enabled >::type, typename = void > static bool resolveMeshIndexType( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); Meshes::Readers::TNL& reader ); // Overload for enabled real types template< int MeshDimension, typename MeshRealType, typename = typename std::enable_if< ConfigTagReal<ConfigTag, MeshRealType>::enabled >::type > static bool resolveMeshIndexType( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); Meshes::Readers::TNL& reader ); // Overload for disabled index types template< int MeshDimension, Loading @@ -88,7 +90,7 @@ class MeshTypeResolver< ProblemSetter, Real, Device, Index, ConfigTag, true > typename = typename std::enable_if< ! ConfigTagIndex<ConfigTag, MeshIndexType>::enabled >::type, typename = void > static bool resolveMeshType( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); Meshes::Readers::TNL& reader ); // Overload for enabled index types template< int MeshDimension, Loading @@ -96,7 +98,7 @@ class MeshTypeResolver< ProblemSetter, Real, Device, Index, ConfigTag, true > typename MeshIndexType, typename = typename std::enable_if< ConfigTagIndex<ConfigTag, MeshIndexType>::enabled >::type > static bool resolveMeshType( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); Meshes::Readers::TNL& reader ); Loading @@ -104,29 +106,6 @@ class MeshTypeResolver< ProblemSetter, Real, Device, Index, ConfigTag, true > friend class MeshTypeResolverDimensionSupportChecker; }; /*template< int Dimension, bool DimensionSupport, typename MeshTypeResolver > class MeshTypeResolverDimensionSupportChecker { }; template< int Dimension, typename MeshTypeResolver > class MeshTypeResolverDimensionSupportChecker< Dimension, true, MeshTypeResolver > { public: static bool checkDimension( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); }; template< int Dimension, typename MeshTypeResolver > class MeshTypeResolverDimensionSupportChecker< Dimension, false, MeshTypeResolver > { public: static bool checkDimension( const Config::ParameterContainer& parameters, const Containers::List< String >& parsedMeshType ); };*/ } // namespace Solvers } // namespace TNL Loading