Loading src/mesh/tnlMeshInitializer.h +10 −0 Original line number Diff line number Diff line Loading @@ -108,17 +108,27 @@ class tnlMeshInitializerLayer< ConfigTag, bool checkCells() { typedef typename tnlMeshEntity< ConfigTag, EntityTag >::template SubentitiesTraits< 0 >::LocalIndexType LocalIndexType; const GlobalIndexType numberOfVertices( this->getMesh().getNumberOfVertices() ); for( GlobalIndexType cell = 0; cell < this->getMesh().getNumberOfCells(); cell++ ) for( LocalIndexType i = 0; i < this->getMesh().getCell( cell ).getNumberOfVertices(); i++ ) { if( this->getMesh().getCell( cell ).getVerticesIndices()[ i ] == - 1 ) { cerr << "The cell number " << cell << " does not have properly set vertex index number " << i << "." << endl; return false; } if( this->getMesh().getCell( cell ).getVerticesIndices()[ i ] >= numberOfVertices ) { cerr << "The cell number " << cell << " does not have properly set vertex index number " << i << ". The index is higher than the number of all vertices ( " << numberOfVertices << " )." << endl; return false; } } return true; } Loading src/mesh/tnlMeshIntegrityChecker.h +22 −0 Original line number Diff line number Diff line Loading @@ -23,7 +23,29 @@ template< typename MeshType > class tnlMeshIntegrityChecker { public: typedef typename MeshType::Config ConfigTag; typedef typename ConfigTag::CellTag CellTag; typedef tnlDimensionsTraits< CellTag::dimensions > CellDimensionsTraits; typedef tnlMeshEntitiesTraits< ConfigTag, CellDimensionsTraits > CellTraits; typedef typename CellTraits::SharedContainerType CellsSharedContainerType; typedef tnlDimensionsTraits< 0 > VertexDimensionsTraits; typedef tnlMeshEntitiesTraits< ConfigTag, VertexDimensionsTraits > VertexTraits; typedef typename VertexTraits::SharedContainerType VertexSharedConatinerType; static bool checkMesh( const MeshType& mesh ) { for( CellsGlobalIndexType cell = 0; cell < mesh.getNumberOfCells(); cell++ ) { cout << "Checking cell number " << cell << endl; } return true; } }; Loading tools/src/tnl-mesh-convert.h +10 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <mesh/topologies/tnlMeshTetrahedronTag.h> #include <mesh/tnlMesh.h> #include <mesh/tnlMeshInitializer.h> #include <mesh/tnlMeshIntegrityChecker.h> #include <core/mfilename.h> template< int Dimensions > Loading @@ -39,7 +40,8 @@ bool readMeshWithDimensions( const tnlParameterContainer& parameters ) { typedef tnlMeshTriangleTag CellTag; }; tnlMesh< MeshConfig > mesh; typedef tnlMesh< MeshConfig > MeshType; MeshType mesh; if( fileExt == "ng" && ! tnlMeshReaderNetgen::readMesh<>( inputFileName, mesh, true ) ) return false; Loading @@ -47,6 +49,8 @@ bool readMeshWithDimensions( const tnlParameterContainer& parameters ) meshInitializer.setVerbose( true ); if( ! meshInitializer.initMesh( mesh ) ) return false; if( ! tnlMeshIntegrityChecker< MeshType >::checkMesh( mesh ) ) return false; tnlString outputFile; if( parameters.GetParameter< tnlString >( "output-file", outputFile ) ) { Loading @@ -64,7 +68,8 @@ bool readMeshWithDimensions( const tnlParameterContainer& parameters ) { typedef tnlMeshTetrahedronTag CellTag; }; tnlMesh< MeshConfig > mesh; typedef tnlMesh< MeshConfig > MeshType; MeshType mesh; if( fileExt == "ng" && ! tnlMeshReaderNetgen::readMesh<>( inputFileName, mesh, true ) ) return false; Loading @@ -72,6 +77,8 @@ bool readMeshWithDimensions( const tnlParameterContainer& parameters ) meshInitializer.setVerbose( true ); if( ! meshInitializer.initMesh( mesh ) ) return false; if( ! tnlMeshIntegrityChecker< MeshType >::checkMesh( mesh ) ) return false; tnlString outputFile; if( parameters.GetParameter< tnlString >( "output-file", outputFile ) ) { Loading Loading
src/mesh/tnlMeshInitializer.h +10 −0 Original line number Diff line number Diff line Loading @@ -108,17 +108,27 @@ class tnlMeshInitializerLayer< ConfigTag, bool checkCells() { typedef typename tnlMeshEntity< ConfigTag, EntityTag >::template SubentitiesTraits< 0 >::LocalIndexType LocalIndexType; const GlobalIndexType numberOfVertices( this->getMesh().getNumberOfVertices() ); for( GlobalIndexType cell = 0; cell < this->getMesh().getNumberOfCells(); cell++ ) for( LocalIndexType i = 0; i < this->getMesh().getCell( cell ).getNumberOfVertices(); i++ ) { if( this->getMesh().getCell( cell ).getVerticesIndices()[ i ] == - 1 ) { cerr << "The cell number " << cell << " does not have properly set vertex index number " << i << "." << endl; return false; } if( this->getMesh().getCell( cell ).getVerticesIndices()[ i ] >= numberOfVertices ) { cerr << "The cell number " << cell << " does not have properly set vertex index number " << i << ". The index is higher than the number of all vertices ( " << numberOfVertices << " )." << endl; return false; } } return true; } Loading
src/mesh/tnlMeshIntegrityChecker.h +22 −0 Original line number Diff line number Diff line Loading @@ -23,7 +23,29 @@ template< typename MeshType > class tnlMeshIntegrityChecker { public: typedef typename MeshType::Config ConfigTag; typedef typename ConfigTag::CellTag CellTag; typedef tnlDimensionsTraits< CellTag::dimensions > CellDimensionsTraits; typedef tnlMeshEntitiesTraits< ConfigTag, CellDimensionsTraits > CellTraits; typedef typename CellTraits::SharedContainerType CellsSharedContainerType; typedef tnlDimensionsTraits< 0 > VertexDimensionsTraits; typedef tnlMeshEntitiesTraits< ConfigTag, VertexDimensionsTraits > VertexTraits; typedef typename VertexTraits::SharedContainerType VertexSharedConatinerType; static bool checkMesh( const MeshType& mesh ) { for( CellsGlobalIndexType cell = 0; cell < mesh.getNumberOfCells(); cell++ ) { cout << "Checking cell number " << cell << endl; } return true; } }; Loading
tools/src/tnl-mesh-convert.h +10 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <mesh/topologies/tnlMeshTetrahedronTag.h> #include <mesh/tnlMesh.h> #include <mesh/tnlMeshInitializer.h> #include <mesh/tnlMeshIntegrityChecker.h> #include <core/mfilename.h> template< int Dimensions > Loading @@ -39,7 +40,8 @@ bool readMeshWithDimensions( const tnlParameterContainer& parameters ) { typedef tnlMeshTriangleTag CellTag; }; tnlMesh< MeshConfig > mesh; typedef tnlMesh< MeshConfig > MeshType; MeshType mesh; if( fileExt == "ng" && ! tnlMeshReaderNetgen::readMesh<>( inputFileName, mesh, true ) ) return false; Loading @@ -47,6 +49,8 @@ bool readMeshWithDimensions( const tnlParameterContainer& parameters ) meshInitializer.setVerbose( true ); if( ! meshInitializer.initMesh( mesh ) ) return false; if( ! tnlMeshIntegrityChecker< MeshType >::checkMesh( mesh ) ) return false; tnlString outputFile; if( parameters.GetParameter< tnlString >( "output-file", outputFile ) ) { Loading @@ -64,7 +68,8 @@ bool readMeshWithDimensions( const tnlParameterContainer& parameters ) { typedef tnlMeshTetrahedronTag CellTag; }; tnlMesh< MeshConfig > mesh; typedef tnlMesh< MeshConfig > MeshType; MeshType mesh; if( fileExt == "ng" && ! tnlMeshReaderNetgen::readMesh<>( inputFileName, mesh, true ) ) return false; Loading @@ -72,6 +77,8 @@ bool readMeshWithDimensions( const tnlParameterContainer& parameters ) meshInitializer.setVerbose( true ); if( ! meshInitializer.initMesh( mesh ) ) return false; if( ! tnlMeshIntegrityChecker< MeshType >::checkMesh( mesh ) ) return false; tnlString outputFile; if( parameters.GetParameter< tnlString >( "output-file", outputFile ) ) { Loading