41       max_cpu_secs_(360000),
    42       driver_version_(driver_version),
    54   os << 
"  Project = " << 
title_ << 
"\n";
    56   os << 
"  host    = " << 
host_ << 
"\n";
    70     else if (t1 == 
"host")
    72     else if (t1 == 
"date")
   103   std::array<char, 256> fileroot;
   104   std::array<char, 256> nextroot;
   109     file_len = std::snprintf(fileroot.data(), fileroot.size(), 
"%s.s%03d", 
title_.c_str(), 
series_);
   111     file_len = std::snprintf(fileroot.data(), fileroot.size(), 
"%s.g%03d.s%03d", 
title_.c_str(), groupid, 
series_);
   121       file_len = std::snprintf(fileroot.data(), fileroot.size(), 
".s%03d.p%03d", 
series_, nodeid);
   122       next_len = std::snprintf(nextroot.data(), nextroot.size(), 
".s%03d.p%03d", 
series_ + 1, nodeid);
   126       file_len = std::snprintf(fileroot.data(), fileroot.size(), 
".s%03d", 
series_);
   127       next_len = std::snprintf(nextroot.data(), nextroot.size(), 
".s%03d", 
series_ + 1);
   134       file_len = std::snprintf(fileroot.data(), fileroot.size(), 
".g%03d.s%03d.p%03d", groupid, 
series_, nodeid);
   135       next_len = std::snprintf(nextroot.data(), nextroot.size(), 
".g%03d.s%03d.p%03d", groupid, 
series_ + 1, nodeid);
   139       file_len = std::snprintf(fileroot.data(), fileroot.size(), 
".g%03d.s%03d", groupid, 
series_);
   140       next_len = std::snprintf(nextroot.data(), nextroot.size(), 
".g%03d.s%03d", groupid, 
series_ + 1);
   144     throw std::runtime_error(
"Error generating project_root");
   146     throw std::runtime_error(
"Error generating next_root");
   155     xmlSetProp(
cur_, (
const xmlChar*)
"series", (
const xmlChar*)(
s.str().c_str()));
   168     std::array<char, 128> fileroot;
   173         file_len = std::snprintf(fileroot.data(), fileroot.size(), 
".s%03d.p%03d", 
series_ - 1, nodeid);
   175         file_len = std::snprintf(fileroot.data(), fileroot.size(), 
".s%03d", 
series_ - 1);
   180         file_len = std::snprintf(fileroot.data(), fileroot.size(), 
".g%03d.s%03d.p%03d", groupid, 
series_ - 1, nodeid);
   182         file_len = std::snprintf(fileroot.data(), fileroot.size(), 
".g%03d.s%03d", groupid, 
series_ - 1);
   185       throw std::runtime_error(
"Error generating olfroot");
   187     oldroot.append(fileroot.data(), file_len);
   201   if (!series_str.empty())
   202     series_ = std::stoi(series_str);
   204   std::string driver_version_str;
   207   m_param.
add(driver_version_str, 
"driver_version");
   210   if (!driver_version_str.empty())
   214   cur = cur->xmlChildrenNode;
   217     std::string cname((
const char*)(cur->name));
   240     xmlNewChild(
cur_, 
cur_->ns, (
const xmlChar*)
"host", (
const xmlChar*)(
host_.c_str()));
   245     xmlNewChild(
cur_, 
cur_->ns, (
const xmlChar*)
"date", (
const xmlChar*)(
date_.c_str()));
   270   std::string enum_value_str(
lowerCase(enum_value));
   275   catch (std::out_of_range& oor_exc)
 const std::string & getTitle() const noexcept
returns the title of the project <project id="det_qmc_short_sdbatch_vmcbatch_mwalkers" series="0"> tr...
bool previousRoot(std::string &oldroot) const
return the root of the previous sequence 
DriverVersion driver_version_
helper functions for EinsplineSetBuilder 
int rank() const
return the rank 
void setCommunicator(Communicate *c)
ProjectData(const std::string &atitle="", DriverVersion de=DriverVersion::LEGACY)
constructor 
bool isComplex() const noexcept
void advance()
increment a series number and reset project_root_ 
static const std::unordered_map< std::string, DriverVersion > lookup_input_enum_value
const std::string & nextRoot() const noexcept
returns the nextroot of the project, the series id is incremented at every QMC section <project id="d...
Communicate * Controller
Global Communicator for a process. 
int size() const
return the number of tasks 
const RuntimeOptions & getRuntimeOptions() const noexcept
bool put(std::istream &is) override
read from std::istream 
std::string next_root_
root for the next run 
Communicate * my_comm_
communicator 
Wrapping information on parallelism. 
std::string date_
date when the job is executed 
int getGroupID() const
return the group id 
int getMaxCPUSeconds() const noexcept
DriverVersion getDriverVersion() const noexcept
class to handle a set of parameters 
bool put(std::istream &is)
std::string project_main_
main root for all the output engines 
DriverVersion
Enum for global scope switch of design from legacy driver based to batch driver based. 
std::string project_root_
processor-dependent root for all the output engines 
int max_cpu_secs_
max cpu seconds 
This a subclass for runtime errors that will occur on all ranks. 
std::string lowerCase(const std::string_view s)
++17    
xmlNodePtr cur_
the xml node for <Project> 
void setXMLNodeContent(xmlNodePtr cur) const
write a string to an xmlNode 
void setName(const std::string &aname)
std::string getXMLAttributeValue(const xmlNodePtr cur, const std::string_view name)
get the value string for attribute name if name is unfound in cur you get an empty string back this i...
int mpi_groups
number of mpi groups 
string getHostName()
< return the host name 
const std::string & currentMainRoot() const noexcept
returns the projectmain of the project, the series id is incremented at every QMC section <project id...
void add(PDT &aparam, const std::string &aname_in, std::vector< PDT > candidate_values={}, TagStatus status=TagStatus::OPTIONAL)
add a new parameter corresponding to an xmlNode <parameter> 
convert xmlNode contents into a std::string 
void rewind()
roll-back a series number and reset project_root_ by one 
bool get(std::ostream &os) const
int getSeriesIndex() const noexcept
QMCState qmc_common
a unique QMCState during a run 
std::string host_
name of the host where the job is running 
static DriverVersion lookupDriverVersion(const std::string &enum_value)
RuntimeOptions runtime_options_
std::string title_
title of the project 
void reset()
Construct the root name with title_ and m_series.