Branch data Line data Source code
1 : : // ***************************************************************************** 2 : : /*! 3 : : \file src/IO/Omega_h_MeshReader.hpp 4 : : \copyright 2012-2015 J. Bakosi, 5 : : 2016-2018 Los Alamos National Security, LLC., 6 : : 2019-2021 Triad National Security, LLC. 7 : : All rights reserved. See the LICENSE file for details. 8 : : \brief Omega_h mesh reader 9 : : \details Omega_h mesh reader class declaration. 10 : : */ 11 : : // ***************************************************************************** 12 : : #ifndef Omega_h_MeshReader_h 13 : : #define Omega_h_MeshReader_h 14 : : 15 : : #include <map> 16 : : #include <vector> 17 : : #include <array> 18 : : #include <unordered_map> 19 : : 20 : : #include "Types.hpp" 21 : : #include "Exception.hpp" 22 : : #include "UnsMesh.hpp" 23 : : 24 : : namespace tk { 25 : : 26 : : //! Omega_h mesh-based data reader 27 : : //! \details Mesh reader class facilitating reading from mesh-based field data 28 : : //! a file in Omega_h format. 29 : : //! \see https://github.com/ibaned/omega_h 30 [ - - ][ + - ]: 5 : class Omega_h_MeshReader { 31 : : 32 : : public: 33 : : //! Constructor 34 : : explicit Omega_h_MeshReader( const std::string& filename ) 35 : 5 : : m_filename( filename ) {} 36 : : 37 : : //! Return total number of mesh points in mesh file 38 : : std::size_t npoin() { return 0; } 39 : : 40 : : //! Read part of the mesh (graph and coords) from Omega_h file 41 : : //! \details Total number of PEs defaults to 1 for a single-CPU read, this 42 : : //! PE defaults to 0 for a single-CPU read. 43 : : void readMeshPart( std::vector< std::size_t >& ginpoel, 44 : : std::vector< std::size_t >& inpoel, 45 : : std::vector< std::size_t >& triinp, 46 : : std::unordered_map< std::size_t, std::size_t >& lid, 47 : : tk::UnsMesh::Coords& coord, 48 : : int numpes=1, int mype=0 ); 49 : : 50 : : //! Read face list of all side sets from Omega h file 51 : : void 52 : : readSidesetFaces( std::map< int, std::vector< std::size_t > >& bface, 53 : : std::map< int, std::vector< std::size_t > >& faces ); 54 : : 55 : : //! Read face connectivity of a number boundary faces from Omega h file 56 : : void readFaces( std::vector< std::size_t >& conn ) const; 57 : : 58 : : //! Read node list of all side sets from Omega h file 59 : : std::map< int, std::vector< std::size_t > > readSidesetNodes(); 60 : : 61 : : //! ... 62 : : std::vector< std::size_t > triinpoel( 63 : : std::map< int, std::vector< std::size_t > >& belem, 64 : : const std::map< int, std::vector< std::size_t > >& faces, 65 : : const std::vector< std::size_t >& ginpoel, 66 : : const std::vector< std::size_t >& triinp ) const; 67 : : 68 : : private: 69 : : const std::string m_filename; //!< Input file name 70 : : }; 71 : : 72 : : } // tk:: 73 : : 74 : : #endif // Omega_h_MeshReader_h