QMCPACK
HDFWalkerInput_0_4 Struct Reference
+ Collaboration diagram for HDFWalkerInput_0_4:

Classes

struct  IOInfo
 

Public Member Functions

 HDFWalkerInput_0_4 (WalkerConfigurations &wc_list, size_t num_ptcls, Communicate *c, const HDFVersion &v)
 constructor More...
 
 ~HDFWalkerInput_0_4 ()
 
bool put (xmlNodePtr cur)
 read walkers More...
 
void checkOptions (xmlNodePtr cur)
 check options from xml More...
 
bool read_hdf5 (const std::filesystem::path &h5name)
 read walkers for small number of MPI tasks More...
 
bool read_hdf5_scatter (const std::filesystem::path &h5name)
 read walkers. More...
 
bool read_phdf5 (const std::filesystem::path &h5name)
 read walkers using PHDF5 More...
 

Public Attributes

WalkerConfigurationswc_list_
 reference to the list of walker configurations to be read from file More...
 
const size_t num_ptcls_
 number of particles More...
 
CommunicatemyComm
 
HDFVersion cur_version
 
IOInfo i_info
 
hid_t h_plist
 
std::filesystem::path FileName_noext
 
std::stack< std::filesystem::path > FileStack
 

Detailed Description

Definition at line 28 of file HDFWalkerInput_0_4.h.

Constructor & Destructor Documentation

◆ HDFWalkerInput_0_4()

HDFWalkerInput_0_4 ( WalkerConfigurations wc_list,
size_t  num_ptcls,
Communicate c,
const HDFVersion v 
)

constructor

Parameters
wc_listtarget walker configurations
num_ptclsthe number of particles in each walker
ccommunicator
vversion

Definition at line 26 of file HDFWalkerInput_0_4.cpp.

References HDFWalkerInput_0_4::i_info, and HDFWalkerInput_0_4::IOInfo::version.

30  : wc_list_(wc_list), num_ptcls_(num_ptcls), myComm(c), cur_version(0, 4)
31 {
32  i_info.version = v;
33 }
WalkerConfigurations & wc_list_
reference to the list of walker configurations to be read from file
const size_t num_ptcls_
number of particles

◆ ~HDFWalkerInput_0_4()

Definition at line 35 of file HDFWalkerInput_0_4.cpp.

36 {
37  //if(h_plist != H5P_DEFAULT) H5Pclose(h_plist);
38 }

Member Function Documentation

◆ checkOptions()

void checkOptions ( xmlNodePtr  cur)

check options from xml

Definition at line 40 of file HDFWalkerInput_0_4.cpp.

References OhmmsAttributeSet::add(), HDFWalkerInput_0_4::IOInfo::collected, qmcplusplus::hdf::config_ext, HDFWalkerInput_0_4::FileStack, HDFWalkerInput_0_4::i_info, HDFWalkerInput_0_4::myComm, HDFWalkerInput_0_4::IOInfo::nprocs, OhmmsAttributeSet::put(), HDFWalkerInput_0_4::IOInfo::rank, Communicate::rank(), HDFWalkerInput_0_4::IOInfo::reset(), and Communicate::size().

Referenced by HDFWalkerInput_0_4::put().

41 {
42  i_info.reset();
43  std::string froot, cfile;
44  std::string collected("no");
45  OhmmsAttributeSet pAttrib;
46  pAttrib.add(i_info.nprocs, "nprocs");
47  pAttrib.add(i_info.rank, "node");
48  pAttrib.add(cfile, "href");
49  pAttrib.add(cfile, "file");
50  pAttrib.add(froot, "fileroot");
51  pAttrib.add(collected, "collected");
52  pAttrib.put(cur);
53  if (froot.empty())
54  return;
55  if (int ext = froot.find(hdf::config_ext); ext < froot.size())
56  {
57  //remove extension
58  froot.erase(froot.begin() + ext, froot.end());
59  }
60  //file generated by a serial run is automatically collected
61  i_info.collected = ((collected == "yes") || (i_info.nprocs == 1));
62  if (i_info.collected)
63  FileStack.push(froot);
64  else
65  {
66  if (i_info.nprocs > 1) //need to process multiple files
67  {
68  int nprocs_now = myComm->size();
69  if (i_info.nprocs > nprocs_now) //using less nodes
70  {
71  int np = i_info.nprocs / nprocs_now;
72  int pid = myComm->rank(), ip = 0;
73  while (pid < i_info.nprocs && ip < np)
74  {
75  // 2 chars for '.p', 11 chars for pid, 1 char for \0
76  std::array<char, 14> h5name;
77  if (std::snprintf(h5name.data(), h5name.size(), ".p%03d", pid++) < 0)
78  throw std::runtime_error("Error generating filename");
79  auto fname = std::filesystem::path(froot).concat(h5name.data());
80  FileStack.push(std::move(fname));
81  pid += nprocs_now;
82  }
83  }
84  else
85  {
86  int pid = myComm->rank() % i_info.nprocs;
87  // 2 chars for '.p', 11 chars for pid, 1 char for \0
88  std::array<char, 14> h5name;
89  if (std::snprintf(h5name.data(), h5name.size(), ".p%03d", pid) < 0)
90  throw std::runtime_error("Error generating filename");
91  auto fname = std::filesystem::path(froot).concat(h5name.data());
92  FileStack.push(std::move(fname));
93  }
94  }
95  else
96  {
97  FileStack.push(froot);
98  }
99  }
100 }
std::stack< std::filesystem::path > FileStack
int rank() const
return the rank
Definition: Communicate.h:116
bool put(xmlNodePtr cur)
assign attributes to the set
Definition: AttributeSet.h:55
int size() const
return the number of tasks
Definition: Communicate.h:118
const char config_ext[]
extension of a configuration file
Definition: HDFVersion.h:27
class to handle a set of attributes of an xmlNode
Definition: AttributeSet.h:24
void add(PDT &aparam, const std::string &aname, std::vector< PDT > candidate_values={}, TagStatus status=TagStatus::OPTIONAL)
add a new attribute
Definition: AttributeSet.h:42

◆ put()

bool put ( xmlNodePtr  cur)

read walkers

Parameters
Wwalker set to which new walkers will be added
rollbacknumber of blocks to read
Returns
true if successful

Definition at line 102 of file HDFWalkerInput_0_4.cpp.

References qmcplusplus::app_error(), HDFWalkerInput_0_4::checkOptions(), qmcplusplus::hdf::config_ext, HDFWalkerInput_0_4::FileName_noext, HDFWalkerInput_0_4::FileStack, HDFWalkerInput_0_4::read_hdf5(), and HDFWalkerInput_0_4::read_phdf5().

Referenced by HDFWalkerInputManager::put().

103 {
104  checkOptions(cur);
105  if (FileStack.empty())
106  {
107  app_error() << " No valid input hdf5 is found." << std::endl;
108  return false;
109  }
110  bool success = true;
111  while (FileStack.size())
112  {
113  FileName_noext = FileStack.top();
114  FileStack.pop();
115  auto h5name = std::filesystem::path(FileName_noext).concat(hdf::config_ext);
116  //success |= read_hdf5_scatter(h5name);
117 #ifdef ENABLE_PHDF5
118  success |= read_phdf5(h5name);
119 #else
120  success |= read_hdf5(h5name);
121 #endif
122  }
123  return success;
124 }
void checkOptions(xmlNodePtr cur)
check options from xml
std::filesystem::path FileName_noext
std::stack< std::filesystem::path > FileStack
std::ostream & app_error()
Definition: OutputManager.h:67
const char config_ext[]
extension of a configuration file
Definition: HDFVersion.h:27
bool read_hdf5(const std::filesystem::path &h5name)
read walkers for small number of MPI tasks
bool read_phdf5(const std::filesystem::path &h5name)
read walkers using PHDF5

◆ read_hdf5()

bool read_hdf5 ( const std::filesystem::path &  h5name)

read walkers for small number of MPI tasks

Definition at line 126 of file HDFWalkerInput_0_4.cpp.

References qmcplusplus::app_error(), qmcplusplus::app_log(), copy(), WalkerConfigurations::createWalkers(), qmcplusplus::dims, FairDivideLow(), qmcplusplus::get_first_address(), WalkerConfigurations::getActiveWalkers(), HDFWalkerInput_0_4::i_info, hdf_archive::is_group(), qmcplusplus::hdf::main_state, HDFWalkerInput_0_4::myComm, HDFWalkerInput_0_4::num_ptcls_, qmcplusplus::hdf::num_walkers, OHMMS_DIM, hdf_archive::open(), hdf_archive::push(), Communicate::rank(), hdf_archive::read(), hdf_archive::readEntry(), hdf_archive::readSlabReshaped(), Communicate::size(), qmcplusplus::hdf::version, HDFWalkerInput_0_4::IOInfo::version, qmcplusplus::hdf::walker_weights, qmcplusplus::hdf::walkers, and HDFWalkerInput_0_4::wc_list_.

Referenced by HDFWalkerInput_0_4::put(), and qmcplusplus::TEST_CASE().

127 {
128  size_t nw_in = 0;
129 
130  hdf_archive hin(myComm, false); //everone reads this
131  bool success = hin.open(h5name, H5F_ACC_RDONLY);
132  //check if hdf and xml versions can work together
133  HDFVersion aversion;
134 
135  hin.read(aversion, hdf::version);
136  if (!(aversion < i_info.version))
137  {
138  int found_group = hin.is_group(hdf::main_state);
139  hin.push(hdf::main_state);
140  hin.read(nw_in, hdf::num_walkers);
141  }
142  else
143  {
144  app_error() << " Mismatched version. xml = " << i_info.version << " hdf = " << aversion << std::endl;
145  }
146 
147  if (nw_in == 0)
148  {
149  app_error() << " No walkers in " << h5name << std::endl;
150  return false;
151  }
152 
153  using Buffer_t = std::vector<QMCTraits::RealType>;
154  std::array<size_t, 3> dims{nw_in, num_ptcls_, OHMMS_DIM};
155  Buffer_t posin(dims[0] * dims[1] * dims[2]);
156  hin.readSlabReshaped(posin, dims, hdf::walkers);
157  std::vector<QMCTraits::FullPrecRealType> weights_in(nw_in);
158  const bool has_weights = hin.readEntry(weights_in, hdf::walker_weights);
159 
160  std::vector<int> woffsets;
161  hin.read(woffsets, "walker_partition");
162 
163  int np1 = myComm->size() + 1;
164  if (woffsets.size() != np1)
165  {
166  woffsets.resize(myComm->size() + 1, 0);
167  FairDivideLow(nw_in, myComm->size(), woffsets);
168  }
169 
170  app_log() << " HDFWalkerInput_0_4::put getting " << dims[0] << " walkers " << posin.size() << std::endl;
171  nw_in = woffsets[myComm->rank() + 1] - woffsets[myComm->rank()];
172  {
173  const int nitems = num_ptcls_ * OHMMS_DIM;
174  const int curWalker = wc_list_.getActiveWalkers();
176 
177  auto it = posin.begin() + woffsets[myComm->rank()] * nitems;
178  for (int i = 0; i < nw_in; ++i, it += nitems)
179  copy(it, it + nitems, get_first_address(wc_list_[i + curWalker]->R));
180  if (has_weights)
181  {
182  const auto woffset = woffsets[myComm->rank()];
183  for (int i = 0; i < nw_in; ++i)
184  wc_list_[i + curWalker]->Weight = weights_in[i + woffset];
185  }
186  }
187 
188  return true;
189 }
int rank() const
return the rank
Definition: Communicate.h:116
size_t getActiveWalkers() const
return the number of active walkers
std::ostream & app_log()
Definition: OutputManager.h:65
const char num_walkers[]
Definition: HDFVersion.h:37
std::ostream & app_error()
Definition: OutputManager.h:67
const char walker_weights[]
Definition: HDFVersion.h:38
const char walkers[]
Definition: HDFVersion.h:36
WalkerConfigurations & wc_list_
reference to the list of walker configurations to be read from file
int size() const
return the number of tasks
Definition: Communicate.h:118
#define OHMMS_DIM
Definition: config.h:64
void FairDivideLow(int ntot, int npart, IV &adist)
partition ntot elements among npart
Definition: FairDivide.h:114
void copy(const Array< T1, 3 > &src, Array< T2, 3 > &dest)
Definition: Blitz.h:639
void createWalkers(int numWalkers, size_t numPtcls)
create numWalkers Walkers
const size_t num_ptcls_
number of particles
const char main_state[]
Definition: HDFVersion.h:31
std::vector< int > dims
T * get_first_address(ParticleAttrib< TinyVector< T, D >> &a)
const char version[]
Definition: HDFVersion.h:30

◆ read_hdf5_scatter()

bool read_hdf5_scatter ( const std::filesystem::path &  h5name)

read walkers.

Master reads and scatter the walkers

Definition at line 191 of file HDFWalkerInput_0_4.cpp.

References qmcplusplus::app_error(), Communicate::barrier(), qmcplusplus::bcast(), copy(), WalkerConfigurations::createWalkers(), qmcplusplus::dims, FairDivideLow(), qmcplusplus::get_first_address(), WalkerConfigurations::getActiveWalkers(), HDFWalkerInput_0_4::i_info, hdf_archive::is_group(), qmcplusplus::hdf::main_state, HDFWalkerInput_0_4::myComm, HDFWalkerInput_0_4::num_ptcls_, qmcplusplus::hdf::num_walkers, OHMMS_DIM, hdf_archive::open(), hdf_archive::push(), Communicate::rank(), hdf_archive::read(), hdf_archive::readEntry(), hdf_archive::readSlabReshaped(), Communicate::size(), qmcplusplus::hdf::version, HDFWalkerInput_0_4::IOInfo::version, qmcplusplus::hdf::walker_weights, qmcplusplus::hdf::walkers, and HDFWalkerInput_0_4::wc_list_.

192 {
193  size_t nw_in = 0;
194 
195  if (myComm->rank() == 0)
196  {
197  hdf_archive hin(myComm); //everone reads this
198  bool success = hin.open(h5name, H5F_ACC_RDONLY);
199  //check if hdf and xml versions can work together
200  HDFVersion aversion;
201 
202  hin.read(aversion, hdf::version);
203  if (!(aversion < i_info.version))
204  {
205  int found_group = hin.is_group(hdf::main_state);
206  hin.push(hdf::main_state);
207  hin.read(nw_in, hdf::num_walkers);
208  }
209  else
210  {
211  app_error() << " Mismatched version. xml = " << i_info.version << " hdf = " << aversion << std::endl;
212  }
213  }
214 
215  myComm->barrier();
216  mpi::bcast(*myComm, nw_in);
217 
218  if (nw_in == 0)
219  {
220  app_error() << " No walkers in " << h5name << std::endl;
221  return false;
222  }
223 
224  using Buffer_t = std::vector<QMCTraits::RealType>;
225 
226  const int np1 = myComm->size() + 1;
227  std::vector<int> woffsets_weights(np1, 0);
228  FairDivideLow(nw_in, myComm->size(), woffsets_weights);
229 
230  std::vector<int> counts_weights(myComm->size());
231  for (int i = 0; i < counts_weights.size(); ++i)
232  counts_weights[i] = woffsets_weights[i + 1] - woffsets_weights[i];
233 
234  // walker counts and offsets for electron coordinates
235  std::vector<int> woffsets(np1, 0);
236  const int nitems = num_ptcls_ * OHMMS_DIM;
237  for (int i = 0; i < woffsets.size(); ++i)
238  woffsets[i] = nitems * woffsets_weights[i];
239  std::vector<int> counts(myComm->size());
240  for (int i = 0; i < counts.size(); ++i)
241  counts[i] = woffsets[i + 1] - woffsets[i];
242 
243  std::array<size_t, 3> dims{nw_in, num_ptcls_, OHMMS_DIM};
244  Buffer_t posin(nw_in * nitems);
245  std::vector<QMCTraits::FullPrecRealType> weights_in(nw_in);
246  bool has_weights{false};
247  if (myComm->rank() == 0)
248  {
249  hdf_archive hin(myComm);
250  bool success = hin.open(h5name, H5F_ACC_RDONLY);
251  hin.push(hdf::main_state);
252  hin.readSlabReshaped(posin, dims, hdf::walkers);
253  has_weights = hin.readEntry(weights_in, hdf::walker_weights);
254  }
255 
256  Buffer_t posout(counts[myComm->rank()]);
257  std::vector<QMCTraits::FullPrecRealType> weights_out(counts[myComm->rank()]);
258  mpi::scatterv(*myComm, posin, posout, counts, woffsets);
259 
260  mpi::bcast(*myComm, has_weights);
261  if (has_weights)
262  mpi::scatterv(*myComm, weights_in, weights_out, counts_weights, woffsets_weights);
263 
264  const size_t nw_loc = woffsets[myComm->rank() + 1] - woffsets[myComm->rank()];
265  const int curWalker = wc_list_.getActiveWalkers();
267 
268  auto it = posout.begin();
269  for (int i = 0; i < nw_loc; ++i, it += nitems)
270  std::copy(it, it + nitems, get_first_address(wc_list_[i + curWalker]->R));
271  if (has_weights)
272  for (int i = 0; i < nw_in; ++i)
273  wc_list_[i + curWalker]->Weight = weights_out[i];
274  return true;
275 }
void barrier() const
int rank() const
return the rank
Definition: Communicate.h:116
size_t getActiveWalkers() const
return the number of active walkers
const char num_walkers[]
Definition: HDFVersion.h:37
std::ostream & app_error()
Definition: OutputManager.h:67
const char walker_weights[]
Definition: HDFVersion.h:38
const char walkers[]
Definition: HDFVersion.h:36
WalkerConfigurations & wc_list_
reference to the list of walker configurations to be read from file
int size() const
return the number of tasks
Definition: Communicate.h:118
#define OHMMS_DIM
Definition: config.h:64
void FairDivideLow(int ntot, int npart, IV &adist)
partition ntot elements among npart
Definition: FairDivide.h:114
void copy(const Array< T1, 3 > &src, Array< T2, 3 > &dest)
Definition: Blitz.h:639
void bcast(T &a, Communicate *comm)
Definition: CommUtilities.h:78
void createWalkers(int numWalkers, size_t numPtcls)
create numWalkers Walkers
const size_t num_ptcls_
number of particles
const char main_state[]
Definition: HDFVersion.h:31
std::vector< int > dims
T * get_first_address(ParticleAttrib< TinyVector< T, D >> &a)
const char version[]
Definition: HDFVersion.h:30

◆ read_phdf5()

bool read_phdf5 ( const std::filesystem::path &  h5name)

read walkers using PHDF5

Definition at line 277 of file HDFWalkerInput_0_4.cpp.

References qmcplusplus::app_error(), qmcplusplus::app_log(), qmcplusplus::bcast(), copy(), WalkerConfigurations::createWalkers(), qmcplusplus::dims, FairDivideLow(), qmcplusplus::get_first_address(), WalkerConfigurations::getActiveWalkers(), HDFWalkerInput_0_4::i_info, hdf_archive::is_group(), qmcplusplus::hdf::main_state, HDFWalkerInput_0_4::myComm, HDFWalkerInput_0_4::num_ptcls_, qmcplusplus::hdf::num_walkers, OHMMS_DIM, hdf_archive::open(), hdf_archive::push(), Communicate::rank(), hdf_archive::read(), hdf_archive::readEntry(), Communicate::size(), qmcplusplus::hdf::version, HDFWalkerInput_0_4::IOInfo::version, qmcplusplus::hdf::walker_weights, qmcplusplus::hdf::walkers, and HDFWalkerInput_0_4::wc_list_.

Referenced by HDFWalkerInput_0_4::put().

278 {
279  size_t nw_in = 0;
280  std::vector<int> woffsets;
281  int woffsets_size = 0;
282  bool success = false;
283 
284  { // handle small dataset with master rank
285  hdf_archive hin(myComm, false);
286  if (myComm->rank() == 0)
287  {
288  success = hin.open(h5name, H5F_ACC_RDONLY);
289  //check if hdf and xml versions can work together
290  HDFVersion aversion;
291 
292  hin.read(aversion, hdf::version);
293  if (!(aversion < i_info.version))
294  {
295  int found_group = hin.is_group(hdf::main_state);
296  hin.push(hdf::main_state);
297  hin.read(nw_in, hdf::num_walkers);
298  if (nw_in == 0)
299  {
300  app_error() << " No walkers in " << h5name << std::endl;
301  success = false;
302  }
303  }
304  else
305  {
306  app_error() << " Mismatched version. xml = " << i_info.version << " hdf = " << aversion << std::endl;
307  success = false;
308  }
309  }
310  mpi::bcast(*myComm, success);
311  if (!success)
312  return false;
313 
314  // load woffsets by master
315  // can not read collectively since the size may differ from Nranks+1.
316  if (myComm->rank() == 0)
317  {
318  hin.read(woffsets, "walker_partition");
319  woffsets_size = woffsets.size();
320  assert(woffsets[woffsets_size - 1] == nw_in);
321  }
322 
323  mpi::bcast(*myComm, woffsets_size);
324  woffsets.resize(woffsets_size);
325  mpi::bcast(*myComm, woffsets.data(), woffsets_size);
326  nw_in = woffsets[woffsets_size - 1];
327  }
328 
329  hdf_archive hin(myComm, true); //everone reads this
330  success = hin.open(h5name, H5F_ACC_RDONLY);
331  int found_group = hin.is_group(hdf::main_state);
332  hin.push(hdf::main_state);
333 
334  using Buffer_t = std::vector<QMCTraits::RealType>;
335  std::array<size_t, 3> dims{nw_in, num_ptcls_, OHMMS_DIM};
336  std::array<size_t, 1> dims_w{nw_in};
337 
338  if (woffsets.size() != myComm->size() + 1)
339  {
340  woffsets.resize(myComm->size() + 1, 0);
341  FairDivideLow(nw_in, myComm->size(), woffsets);
342  }
343 
344  const size_t nw_loc = woffsets[myComm->rank() + 1] - woffsets[myComm->rank()];
345 
346  std::array<size_t, 3> counts{nw_loc, num_ptcls_, OHMMS_DIM};
347  std::array<size_t, 1> counts_w{nw_loc};
348  std::array<size_t, 3> offsets{static_cast<size_t>(woffsets[myComm->rank()]), 0, 0};
349  std::array<size_t, 1> offsets_w{static_cast<size_t>(woffsets[myComm->rank()])};
350  Buffer_t posin(nw_loc * dims[1] * dims[2]);
351  std::vector<QMCTraits::FullPrecRealType> weights_in(nw_loc);
352 
353  hyperslab_proxy<Buffer_t, 3> slab(posin, dims, counts, offsets);
354  hin.read(slab, hdf::walkers);
355 
356  hyperslab_proxy<std::vector<QMCTraits::FullPrecRealType>, 1> slab_w(weights_in, dims_w, counts_w, offsets_w);
357  const bool has_weights = hin.readEntry(slab_w, hdf::walker_weights);
358 
359  app_log() << " HDFWalkerInput_0_4::put getting " << dims[0] << " walkers " << posin.size() << std::endl;
360  nw_in = woffsets[myComm->rank() + 1] - woffsets[myComm->rank()];
361  {
362  const int nitems = num_ptcls_ * OHMMS_DIM;
363  const int curWalker = wc_list_.getActiveWalkers();
365  auto it = posin.begin();
366  for (int i = 0; i < nw_in; ++i, it += nitems)
367  copy(it, it + nitems, get_first_address(wc_list_[i + curWalker]->R));
368  if (has_weights)
369  for (int i = 0; i < nw_in; ++i)
370  wc_list_[i + curWalker]->Weight = weights_in[i];
371  }
372  return true;
373 }
int rank() const
return the rank
Definition: Communicate.h:116
size_t getActiveWalkers() const
return the number of active walkers
std::ostream & app_log()
Definition: OutputManager.h:65
const char num_walkers[]
Definition: HDFVersion.h:37
std::ostream & app_error()
Definition: OutputManager.h:67
const char walker_weights[]
Definition: HDFVersion.h:38
const char walkers[]
Definition: HDFVersion.h:36
WalkerConfigurations & wc_list_
reference to the list of walker configurations to be read from file
int size() const
return the number of tasks
Definition: Communicate.h:118
#define OHMMS_DIM
Definition: config.h:64
void FairDivideLow(int ntot, int npart, IV &adist)
partition ntot elements among npart
Definition: FairDivide.h:114
void copy(const Array< T1, 3 > &src, Array< T2, 3 > &dest)
Definition: Blitz.h:639
void bcast(T &a, Communicate *comm)
Definition: CommUtilities.h:78
void createWalkers(int numWalkers, size_t numPtcls)
create numWalkers Walkers
const size_t num_ptcls_
number of particles
const char main_state[]
Definition: HDFVersion.h:31
std::vector< int > dims
T * get_first_address(ParticleAttrib< TinyVector< T, D >> &a)
const char version[]
Definition: HDFVersion.h:30

Member Data Documentation

◆ cur_version

HDFVersion cur_version

Definition at line 55 of file HDFWalkerInput_0_4.h.

◆ FileName_noext

std::filesystem::path FileName_noext

Definition at line 61 of file HDFWalkerInput_0_4.h.

Referenced by HDFWalkerInputManager::put(), and HDFWalkerInput_0_4::put().

◆ FileStack

std::stack<std::filesystem::path> FileStack

◆ h_plist

hid_t h_plist

Definition at line 59 of file HDFWalkerInput_0_4.h.

◆ i_info

◆ myComm

◆ num_ptcls_

const size_t num_ptcls_

◆ wc_list_

reference to the list of walker configurations to be read from file

Definition at line 49 of file HDFWalkerInput_0_4.h.

Referenced by HDFWalkerInput_0_4::read_hdf5(), HDFWalkerInput_0_4::read_hdf5_scatter(), and HDFWalkerInput_0_4::read_phdf5().


The documentation for this struct was generated from the following files: