26 "Can not write grid load balancing for non-AMR runs.");
29 for (
int lev = 0; lev < nLevel; ++lev) {
30 std::stringstream tmp1;
31 tmp1 <<
"\"level-" << lev <<
"\"";
33 std::stringstream tmp2;
34 tmp2 <<
"Number of boxes at level " << lev;
40 std::stringstream tmp1;
41 tmp1 <<
"\"processor-" << p <<
"\"";
43 std::stringstream tmp2;
44 tmp2 <<
"Number of grid points per processor " << p;
49 if (
mode_m == std::ios::app )
54 std::string dateStr(simtimer.
date());
55 std::string timeStr(simtimer.
time());
58 ss <<
"Grid load balancing statistics '"
60 << dateStr <<
"" << timeStr;
75 "Can not write grid load balancing for non-AMR runs.");
77 std::map<int, long> gridPtsPerCore;
78 std::vector<int> gridsPerLevel;
95 for (
int lev = 0; lev < nLevel; ++lev) {
97 ss <<
"\"level-" << lev <<
"\"";
103 for (
int p = 0; p < nProcs; ++p) {
104 std::stringstream ss;
105 ss <<
"\"processor-" << p <<
"\"";
void writeHeader()
Write SDDS header.
The base class for all OPAL exceptions.
void addDescription(const std::string &text, const std::string &content)
std::string date() const
Return date.
static OpalData * getInstance()
void fillHeader(PartBunchBase< double, 3 > *beam)
GridLBalWriter(const std::string &fname, bool restart)
std::string getInputFn()
get opals input filename
void addColumnValue(const std::string &name, const T &val)
void write(PartBunchBase< double, 3 > *beam) override
std::ios_base::openmode mode_m
First write to the statistics output file.
const AmrObject * getAmrObject() const
std::string toString(const T &val)
std::string time() const
Return time.
void addColumn(const std::string &name, const std::string &type, const std::string &unit, const std::string &desc, std::ios_base::fmtflags flags=std::ios_base::scientific, unsigned short precision=15)
void addDefaultParameters()
virtual void getGridStatistics(std::map< int, long > &gridPtsPerCore, std::vector< int > &gridsPerLevel) const =0
void addInfo(const std::string &mode, const size_t &no_row_counts)