std::basic_string< CepsChar > CepsString
C++ format string.
std::vector< _Type, _Alloc > CepsVector
C++ vector.
std::make_unsigned_t< CepsInt > CepsUInt
Unsigned version on CepsInt.
int32_t CepsInt
Need 32 bit integer.
std::unordered_multimap< _Key, _Tp, _Hash, _KeyEqual, _Alloc > CepsMultiMap
C++ multimap.
Regroups all geometrical data readers and prepare for partitionning.
CepsUInt m_totalNbBdryCells
Total # of boundary cells across all meshes.
CepsUInt * m_meshNbBdryCells
Number of boundary cells in each mesh.
void getNodeOffsetPerMesh(CepsVector< CepsUInt > &offsets)
Fills vector with cell offset for each mesh.
CepsUInt * m_meshNbCells
Number of cells in each mesh.
CepsUInt getNbNodes()
All meshes number of nodes.
CepsBool m_hasCoupledNodes
Flag to activate coupled nodes.
void initializeDataStructures()
Reads each mesh in order.
CepsUInt getNbBdryCells()
All meshes number of boundary cells.
CepsUInt readNodes(CepsUInt indexStart, CepsUInt nbNodesToRead, CepsVector< CepsReal > &coords, CepsVector< CepsAttribute > &attr, CepsVector< CepsUInt > &attrOffset, CepsUInt &attrSize)
Reads nbNodesToRead nodes, using global indices.
CepsUInt * m_nodeOffsets
GeomNode offsets for each mesh.
CepsUInt getNbCells()
All meshes number of cells.
CepsUInt * m_readerType
Type of mesh being read.
CepsUInt * m_cellOffsets
Cell offsets for each mesh (bdry included)
CepsUInt m_totalNbNodes
Total # of nodes across all meshes.
CepsVector< CepsString > m_meshFileNames
File names of each mesh.
~GeometryReader()
Destructor.
void getCellOffsetsPerMeshType(CepsUInt cellOffsets[4])
Fills array with cell offsets for each mesh type.
CepsUInt m_nbMeshes
Number of meshes to read.
void getNodeOffsetsPerMeshType(CepsUInt offsets[4])
Fills array with node offsets for each mesh type.
const CepsMultiMap< CepsNodeGlobalIndex, CepsNodeGlobalIndex > & getCoupledNodes()
Returns the hashtable of coupled nodes.
GeometryReader(const CepsVector< CepsString > &volumicMeshes, const CepsVector< CepsString > &surfacicMeshes, const CepsVector< CepsString > &cableMeshes, const CepsString &coupledNodesFile="")
Constructor. Actually runs the reading routines.
void getCellOffsetPerMesh(CepsVector< CepsUInt > &offsets)
Fills vector with cell offset for each mesh.
MeshReader ** m_readers
Array (dimension x type) holding the readers on all meshes.
void readCoupledNodes(const CepsString &fileName)
Get coupled nodes list using CoupledNodesReader.
CepsMultiMap< CepsNodeGlobalIndex, CepsNodeGlobalIndex > m_coupledNodes
Edges linking meshes.
MeshReader * getMeshReaderFor(const CepsString &meshName, CepsInt index, CepsUInt dim)
Initializes a mesh reader depending on the mesh file extension.
CepsUInt m_totalNbCells
Total # of cells across all meshes.
CepsUInt * m_meshNbNodes
Number of nodes in each mesh.
CepsUInt readCells(CepsUInt indexStart, CepsUInt nbCellsToRead, CepsVector< CepsNodeGlobalIndex > &nodeIndices, CepsVector< CepsUInt > &nodeIndicesOffset, CepsVector< CepsAttribute > &attr, CepsVector< CepsUInt > &attrOffset, CepsVector< CepsChar > &isBoundary, CepsUInt &eindSize, CepsUInt &attrSize)
Reads nbCellsToRead cells, using global indices.
CepsUInt computeNumberOfNodeIndices(CepsUInt nbCells[3], CepsUInt nbBoundary[3])
Returns the number of nodes given numbers of cells and boundary cells.
Abstract base class that encapsulates primary functionalities of each mesh reader.
Enum for better reading of code.
Type
Enum for better reading of code.