9 std::string fileName(simFileInfo.
fileName);
10 const std::bitset<pcpp::io::NUMFORMATBITS> &formatBits(simFileInfo.
formatBits);
11 bool legacyFile =
false;
15 outStream <<
"---------------------------" << std::endl
16 <<
"XPACC File Information:" << std::endl
17 <<
"FileName = " << fileName << std::endl
20 outStream <<
"Legacy" << std::endl;
22 outStream <<
"SimStep = " << simFileInfo.
simStep << std::endl
23 <<
"SimTime = " << simFileInfo.
simTime << std::endl
26 "Yes" :
"No") << std::endl
29 "Yes" :
"No") << std::endl
32 "Yes" :
"No") << std::endl
35 "Yes" :
"No") << std::endl
38 "Yes" :
"No") << std::endl;
40 outStream <<
"NumAuxVar = " 44 outStream <<
"====== Grid Information =====" << std::endl;
45 outStream <<
"NumGrids = " << simFileInfo.
numGrids << std::endl;
47 if(gridNumDim.size() != numGrids){
48 gridNumDim.resize(numGrids,0);
51 if(gridSizes.size() != numGrids){
52 outStream <<
"ERROR with legacy grid sizes != number of grids" << std::endl;
55 std::vector<std::string> gridNames(simFileInfo.
gridNames);
56 if(gridNames.size() != numGrids){
57 gridNames.resize(numGrids,
"[NULL]");
59 for(
int iGrid = 0;iGrid < numGrids;iGrid++){
60 outStream <<
"- - - ( Grid " << iGrid <<
" ) - - -" << std::endl
61 <<
" Grid Name: " << gridNames[iGrid] << std::endl
62 <<
" Grid Dimension: " << gridNumDim[iGrid] << std::endl
65 outStream <<
")" << std::endl;
68 outStream <<
"===== Simulation Information =====" << std::endl;
70 outStream <<
" -- Simulation Parameters -- " << std::endl
75 outStream <<
" -- Simulation State Data -- " << std::endl
80 outStream <<
"NextGen" << std::endl
83 "Yes" :
"No") << std::endl
86 "Yes" :
"No") << std::endl
89 "Yes" :
"No") << std::endl
92 "Yes" :
"No") << std::endl
95 "Yes" :
"No") << std::endl;
97 if(numGeometries > 0){
101 outStream <<
"Geometries improperly formatted." << std::endl;
104 outStream <<
"====== Geometry Information ======" << std::endl;
105 outStream <<
"NumGeometries = " << numGeometries << std::endl;
106 for(
int iGeom = 0;iGeom < numGeometries;iGeom++){
107 const std::string &geometryName(simFileInfo.
geometryNames[iGeom]);
108 outStream <<
"Geometry(" << iGeom <<
") = " << geometryName << std::endl;
110 outStream <<
" Number of grids: " << numGrids << std::endl;
111 for(
int iGrid = 0;iGrid < numGrids;iGrid++){
113 outStream <<
" Grid(" << iGrid <<
") := " << gridName << std::endl;
115 outStream <<
" Dimension: " << numDim << std::endl
118 outStream <<
")" << std::endl;
124 outStream <<
"===== Simulation Information =====" << std::endl
125 <<
"Simulation Step: " << simFileInfo.
simStep << std::endl;
127 outStream <<
" -- Simulation Parameters -- " << std::endl
132 outStream <<
" -- Simulation State Data -- " << std::endl
136 outStream <<
"Number of Domains: " << numDomains << std::endl;
137 const std::vector<std::string> &domainNames(simFileInfo.
domainNames);
138 const std::vector<std::vector<std::string> > &allDomainGridNames(simFileInfo.
domainGridNames);
139 const std::vector<std::vector<std::string> > &allDomainGridPaths(simFileInfo.
domainGridPaths);
140 if(domainNames.size() != numDomains ||
141 allDomainGridNames.size() != numDomains ||
142 allDomainGridPaths.size() != numDomains){
143 outStream <<
"Domain information improperly formatted." << std::endl;
146 std::vector<std::string>::const_iterator domainNameIt = domainNames.begin();
147 std::vector<std::vector<std::string> >::const_iterator allDomainGridNamesIt =
148 allDomainGridNames.begin();
149 std::vector<std::vector<std::string> >::const_iterator allDomainGridPathsIt =
150 allDomainGridPaths.begin();
151 std::vector<pcpp::field::metadataset>::const_iterator domainParamDictionaryIt =
153 std::vector<pcpp::field::metadataset>::const_iterator domainStateDictionaryIt =
155 while(domainNameIt != domainNames.end()){
158 const std::vector<std::string> &domainGridNames(*allDomainGridNamesIt++);
159 const std::vector<std::string> &domainGridPaths(*allDomainGridPathsIt++);
160 const std::string &domainName(*domainNameIt++);
161 outStream <<
" --- " << domainName <<
" --- " << std::endl;
162 int numDomainGrids = domainGridNames.size();
163 std::vector<std::string>::const_iterator domainGridNameIt = domainGridNames.begin();
164 std::vector<std::string>::const_iterator domainGridPathIt = domainGridPaths.begin();
165 outStream <<
" Grids: ";
166 while(domainGridNameIt != domainGridNames.end()){
167 outStream << *domainGridNameIt++ <<
"@" << *domainGridPathIt++ <<
" ";
169 outStream << std::endl;
170 if(!domainParamDictionary.empty()){
171 outStream <<
" ---- Domain Parameters ----" << std::endl
172 << domainParamDictionary.
Report()
175 if(!domainStateDictionary.empty()){
176 outStream <<
" ---- Domain State ----" << std::endl
177 << domainStateDictionary.
Report()
183 outStream <<
"---------------------------" << std::endl;
189 outStream <<
"---------------------------" << std::endl
190 <<
"Configuration: " << std::endl;
191 fixtures::ConfigurationType::const_iterator configIt = inConfig.begin();
192 while(configIt != inConfig.end()){
194 outStream << configParam.first <<
" = " << configParam.second << std::endl;
196 outStream <<
"---------------------------" << std::endl;
200 const std::vector<int> &cartCoords,
201 const std::vector<int> &cartDims)
203 outStream <<
"-------------------------" 205 <<
"Cartesian setup: " << std::endl
208 outStream <<
") CartDims: (";
210 outStream <<
")" << std::endl
211 <<
"-------------------------" 217 outStream <<
"-------------------------" 219 <<
"Cartesian setup: " << std::endl
220 <<
"Number of dimensions: " << inTopo.
numDimensions << std::endl
221 <<
"Topo rank: " << inTopo.
rank << std::endl
222 <<
"Configuration---" << std::endl
223 <<
" Decomp directions: (";
225 outStream <<
")" << std::endl
226 <<
" Cart decomp: (";
228 outStream <<
")" << std::endl
229 <<
" Periodic dirs: (";
231 outStream <<
")" << std::endl
232 <<
"Topology info---" << std::endl
233 <<
" Cart Dimensions: (";
235 outStream <<
")" << std::endl
236 <<
" Cart Coordinates: (";
238 outStream <<
")" << std::endl
239 <<
" Cart Neighbors: (";
241 outStream <<
")" << std::endl
242 <<
"-------------------------"
std::vector< pcpp::field::metadataset > domainStateDictionaries
std::vector< int > cartDecompDirections
std::vector< int > neighborRanks
void SimFileInfo(std::ostream &outStream, const pcpp::io::simfileinfo &simFileInfo)
std::vector< std::vector< std::string > > geometryGridNames
Grid names for each geometry.
pcpp::field::metadataset simulationParamDictionary
Dictionaries summarizing the attribute and datatsets in the file.
void const size_t const size_t * gridSizes
std::vector< int > topoCoords
std::vector< std::vector< std::string > > domainGridPaths
Path to grid data (including file name, geometry and grid names)
void CartesianSetup(std::ostream &outStream, const std::vector< int > &cartCoords, const std::vector< int > &cartDims)
std::vector< int > cartDecomposition
std::vector< int > gridNumDimensions
std::bitset< NUMFORMATBITS > formatBits
std::vector< int > dimDir
std::vector< int > isPeriodic
std::vector< std::vector< size_t > > gridSizes
void Configuration(std::ostream &outStream, const fixtures::ConfigurationType &inConfig)
pcpp::field::metadataset simulationStateDictionary
std::vector< std::vector< std::string > > domainGridNames
Domain-specific grid names for which there is data.
std::vector< std::string > geometryNames
Names of all geometries in file.
std::vector< std::string > gridNames
Full grid names (geometryName:gridName)
std::vector< std::vector< std::vector< size_t > > > geometryGridSizes
Sizes for each geometry grid.
std::vector< pcpp::field::metadataset > domainParamDictionaries
std::vector< std::string > domainNames