12 std::ostream &infoStream)
15 const std::string &fileName(fileInfo.
fileName);
22 std::vector<size_t>::const_iterator gsIt = gridSizes.begin();
23 while(gsIt != gridSizes.end())
30 inState.
Create(numNodes,0);
37 std::string domainGroupName = std::string(
"/PlasCom2/Simulation/")+domainName;
38 std::string pathToGridData = domainGroupName+std::string(
"/")+gridName;
39 std::string geometryName = gridPath.substr(0,gridPath.find(
":"));
40 std::string geometryGridName = gridPath.substr(gridPath.find(
":")+1);
41 std::string geometryPath = std::string(
"/PlasCom2/Geometry/")+geometryName+
42 std::string(
"/")+geometryGridName;
47 infoStream <<
"Error: Could not read grid at data path: " 48 << geometryPath <<
"." << std::endl;
52 infoStream <<
"Error: Reading simulation-global attributes failed." << std::endl;
56 infoStream <<
"Error: Reading domain-global attributes failed." << std::endl;
62 const std::vector<size_t> &partitionSizes(partInterval.Sizes());
63 const std::vector<size_t> &partitionStarts(partInterval.Starts());
64 const std::vector<size_t> &partitionBufferStarts(partitionBufferInterval.Starts());
68 bufferSizes,partitionBufferStarts,pathToGridData,h5File)){
69 infoStream <<
"Error: Failed to read nodal state data attributes at path: " 70 << pathToGridData <<
"." << std::endl;
80 std::vector<size_t>::const_iterator gsIt = gridSizes.begin();
81 while(gsIt != gridSizes.end())
88 inState.
Create(numNodes,0);
90 std::string geometryPath(fileInfo.
gridNames[0]);
96 infoStream <<
"Error: Could not read grid at data path: " 97 << geometryPath <<
"." << std::endl;
105 const std::vector<size_t> &partitionSizes(partInterval.Sizes());
106 const std::vector<size_t> &partitionStarts(partInterval.Starts());
107 const std::vector<size_t> &partitionBufferStarts(partitionBufferInterval.Starts());
111 bufferSizes,partitionBufferStarts,geometryPath,h5File)){
112 infoStream <<
"Error: Failed to read nodal state data attributes at path: " 113 << geometryPath <<
"." << std::endl;
128 std::ostream &infoStream)
131 const std::string &fileName(fileInfo.
fileName);
139 std::vector<size_t>::const_iterator gsIt = gridSizes.begin();
140 while(gsIt != gridSizes.end())
147 inState.
Create(numNodes,0);
154 std::string domainGroupName = std::string(
"/PlasCom2/Simulation/")+domainName;
155 std::string pathToGridData = domainGroupName+std::string(
"/")+gridName;
156 std::string geometryName = gridPath.substr(0,gridPath.find(
":"));
157 std::string geometryGridName = gridPath.substr(gridPath.find(
":")+1);
158 std::string geometryPath = std::string(
"/PlasCom2/Geometry/")+geometryName+
159 std::string(
"/")+geometryGridName;
162 infoStream <<
"Error: Could not read grid at data path: " 163 << geometryPath <<
"." << std::endl;
168 infoStream <<
"Error: Reading simulation-global attributes failed." << std::endl;
172 infoStream <<
"Error: Reading domain-global attributes failed." << std::endl;
178 const std::vector<size_t> &partitionSizes(partInterval.Sizes());
179 const std::vector<size_t> &partitionStarts(partInterval.Starts());
180 const std::vector<size_t> &partitionBufferStarts(partitionBufferInterval.Starts());
184 bufferSizes,partitionBufferStarts,pathToGridData,h5File)){
185 infoStream <<
"Error: Failed to read nodal state data attributes at path: " 186 << pathToGridData <<
"." << std::endl;
196 std::vector<size_t>::const_iterator gsIt = gridSizes.begin();
197 while(gsIt != gridSizes.end())
204 inState.
Create(numNodes,0);
207 std::string geometryPath(fileInfo.
gridNames[gridIndex]);
211 infoStream <<
"Error: Could not read grid at data path: " 212 << geometryPath <<
"." << std::endl;
220 const std::vector<size_t> &partitionSizes(partInterval.Sizes());
221 const std::vector<size_t> &partitionStarts(partInterval.Starts());
222 const std::vector<size_t> &partitionBufferStarts(partitionBufferInterval.Starts());
226 bufferSizes,partitionBufferStarts,geometryPath,h5File)){
227 infoStream <<
"Error: Failed to read nodal state data attributes at path: " 228 << geometryPath <<
"." << std::endl;
243 std::ostream &infoStream)
248 int myRank = gridComm.
Rank();
259 std::vector<size_t>::const_iterator gsIt = gridSizes.begin();
260 while(gsIt != gridSizes.end())
267 inState.
Create(numNodes,0);
274 std::string domainGroupName = std::string(
"/PlasCom2/Simulation/")+domainName;
275 std::string pathToGridData = domainGroupName+std::string(
"/")+gridName;
276 std::string geometryName = gridPath.substr(0,gridPath.find(
":"));
277 std::string geometryGridName = gridPath.substr(gridPath.find(
":")+1);
278 std::string geometryPath = std::string(
"/PlasCom2/Geometry/")+geometryName+
279 std::string(
"/")+geometryGridName;
284 infoStream <<
"Error: Could not read grid at data path: " 285 << geometryPath <<
"." << std::endl;
289 infoStream <<
"Error: Reading simulation-global attributes failed." << std::endl;
293 infoStream <<
"Error: Reading domain-global attributes failed." << std::endl;
299 const std::vector<size_t> &partitionSizes(partInterval.Sizes());
300 const std::vector<size_t> &partitionStarts(partInterval.Starts());
301 const std::vector<size_t> &partitionBufferStarts(partitionBufferInterval.Starts());
305 bufferSizes,partitionBufferStarts,pathToGridData,h5File)){
306 infoStream <<
"Error: Failed to read nodal state data attributes at path: " 307 << pathToGridData <<
"." << std::endl;
317 std::vector<size_t>::const_iterator gsIt = gridSizes.begin();
318 while(gsIt != gridSizes.end())
325 inState.
Create(numNodes,0);
335 std::string geometryPath(fileInfo.
gridNames[0]);
341 infoStream <<
"Error: Could not read grid at data path: " 342 << geometryPath <<
"." << std::endl;
350 const std::vector<size_t> &partitionSizes(partInterval.Sizes());
351 const std::vector<size_t> &partitionStarts(partInterval.Starts());
352 const std::vector<size_t> &partitionBufferStarts(partitionBufferInterval.Starts());
356 bufferSizes,partitionBufferStarts,geometryPath,h5File)){
357 infoStream <<
"Error: Failed to read nodal state data attributes at path: " 358 << geometryPath <<
"." << std::endl;
std::vector< pcpp::field::metadataset > domainStateDictionaries
int ReadSingle(const pcpp::io::simfileinfo &fileInfo, plascom2::grid_t &inGrid, plascom2::state_t &inState, std::ostream &infoStream)
int ReadSingleState(const std::string &fileName, plascom2::grid_t &inGrid, plascom2::state_t &inState, std::ostream &infoStream)
pcpp::IndexIntervalType & PartitionInterval()
void const size_t const size_t * gridSizes
std::vector< std::vector< std::string > > domainGridPaths
Path to grid data (including file name, geometry and grid names)
virtual size_t Create(size_t number_of_nodes=0, size_t number_of_cells=0)
void SetGridSizes(const std::vector< size_t > &inSize)
std::bitset< NUMFORMATBITS > formatBits
const std::vector< size_t > & BufferSizes() const
pcpp::IndexIntervalType & PartitionBufferInterval()
std::vector< std::vector< size_t > > gridSizes
Main encapsulation of MPI.
int ReadStateAttributes(StateType &inState, const char attributeLocation, const std::string &filePath, base &hdfFile)
Reads state data matching attributeLocation into HDF5 attributes at filePath.
pcpp::field::metadataset simulationStateDictionary
void const size_t const size_t * bufferSizes
std::vector< std::vector< std::string > > domainGridNames
Domain-specific grid names for which there is data.
void SetMetaData(const MetaDataSetType &dataDictionary)
int ReadGrid(hid_t parentGroupID, const configuration &hdfConfig, const std::string &gridName, GridType &gridData, fixtures::CommunicatorType &inComm, std::ostream &messageStream)
Simple Block Structured Mesh object.
fixtures::CommunicatorType & Communicator() const
int ReadStateNodeData(StateType &inState, const std::vector< size_t > &gridSizes, const std::vector< size_t > &partitionSizes, const std::vector< size_t > &partitionStarts, const std::vector< size_t > &bufferSizes, const std::vector< size_t > &partitionBufferStarts, const std::string &filePath, base &hdfFile, bool reverseRead=true)
std::vector< std::string > gridNames
Full grid names (geometryName:gridName)
std::vector< std::vector< std::vector< size_t > > > geometryGridSizes
Sizes for each geometry grid.
int Finalize(bool allocateCoordinateData=false)
std::vector< std::string > domainNames