25 int ReadLegacyBCDat(
const std::string &bcFileName,std::vector<legacybc> &bcDat,
30 std::ostream &messageStream);
38 int PC2Compare(
const std::string &redFileName,
const std::string &blueFileName,
39 double errTolerance,std::ostream &outStream);
42 template<
typename Gr
idType>
44 const std::string &gridName,
45 GridType &inGrid,std::ostream &messageStream)
47 messageStream <<
"Configuring subregions of " << gridName <<
"." << std::endl;
49 std::vector<simulation::grid::subregion> &gridSubRegions(inGrid.SubRegions());
50 const std::string subRegionKey(
ConfigKey(gridName,
"RegionNames"));
51 messageStream <<
"sub-Region Key: " << subRegionKey << std::endl;
52 std::vector<std::string> subRegionNames(inConfig.
GetValueVector<std::string>(
ConfigKey(gridName,
"RegionNames")));
53 messageStream <<
"Found " << subRegionNames.size() <<
" sub-regions." << std::endl;
54 if(subRegionNames.empty())
57 std::vector<size_t> &
gridSizes(inGrid.GridSizes());
59 messageStream <<
"ERROR: Grid sizes not specified." << std::endl;
62 size_t numPointsGrid = 1;
63 std::vector<size_t>::iterator gsIt =
gridSizes.begin();
65 numPointsGrid *= *gsIt++;
66 if(numPointsGrid == 0){
67 messageStream <<
"ERROR: Grid sizes mis-configured, found zero points." << std::endl;
72 std::vector<std::string>::iterator regionNameIt = subRegionNames.begin();
74 while(regionNameIt != subRegionNames.end()){
77 std::string ®ionName(*regionNameIt++);
78 messageStream <<
"Configuring sub-region [" << regionName <<
"]" << std::endl;
80 std::string configKey(
ConfigKey(gridName,regionName));
81 std::string configValue(inConfig.
GetValue(configKey));
82 std::string configString(regionName+
" "+configValue);
84 messageStream <<
"ConfigKey: " << configKey << std::endl
85 <<
"ConfigValue: " << configValue << std::endl
86 <<
"ConfigString: " << configString << std::endl;
91 gridSubRegions.push_back(subRegion);
100 template<
typename Gr
idType>
102 const std::string &gridName,
104 std::ostream &messageStream)
106 messageStream <<
"Configuring grid [" << gridName <<
"]" << std::endl;
108 int numDim = gridSizes.size();
110 std::string defaultGridTypeName(
"Uniform-rectangular");
113 if(typeName ==
"Uniform") typeName = defaultGridTypeName;
118 messageStream <<
"Warning: Invalid grid type specified (" << typeName
119 <<
"). Defaulting to grid type (" << defaultGridTypeName
120 <<
")." << std::endl;
123 messageStream <<
"Grid (" << gridName <<
") Type: " << typeName << std::endl;
124 inGrid.SetGridSizes(gridSizes);
125 inGrid.SetType(gridType);
128 inGrid.SetPhysicalExtent(physicalExtent);
132 inGrid.SetDecompDirs(decompDirs);
136 inGrid.SetDecompSizes(decompSizes);
140 inGrid.SetThreadDecompDirs(threadDecompDirs);
144 inGrid.SetPeriodicDirs(periodicDirs);
148 inGrid.SetPeriodicLengths(periodicLengths);
154 const std::string &gridName,
156 std::ostream &messageStream);
bool operator==(const legacybc &lhs, const legacybc &rhs)
int ReadLegacyBCDat(const std::string &bcFileName, std::vector< legacybc > &bcDat, fixtures::CommunicatorType &inCommunicator, std::ostream &messageStream)
std::ostream & operator<<(std::ostream &outStream, const legacybc &bcDat)
void const size_t const size_t * gridSizes
int PC2Compare(const std::string &redFileName, const std::string &blueFileName, double errTolerance, std::ostream &outStream)
Read two HDF5 files and compare the state data therein.
bool operator!=(const legacybc &lhs, const legacybc &rhs)
std::istream & operator>>(std::istream &inStream, legacybc &bcDat)
void const size_t const size_t const size_t const int const int * gridType
int ConfigureGridSubRegions(const fixtures::ConfigurationType &inConfig, const std::string &gridName, GridType &inGrid, std::ostream &messageStream)
int InitSubRegionFromString(const std::string &inString, const std::vector< size_t > &gridSizes, subregion &inSubRegion)
Main encapsulation of MPI.
int ResolveTopoName(const std::string &inName)
std::string GetValue(const std::string &key) const
std::vector< std::string > GetValueVector(const std::string &key) const
int ConvertLegacyConfiguration(fixtures::ConfigurationType &inConfig, fixtures::CommunicatorType &inCommunicator, std::ostream &messageStream)
std::string ConfigKey(const std::string &configName, const std::string &keyName)
int ConfigureGridInfo(const fixtures::ConfigurationType &inConfig, const std::string &gridName, simulation::geometry::gridinfo &gridInfo, std::ostream &messageStream)
std::string ResolveTopoType(int inType)
int ConfigureGrid(const fixtures::ConfigurationType &inConfig, const std::string &gridName, GridType &inGrid, std::ostream &messageStream)
bool IsSet(const std::string &Key) const