QMCPACK
ValidQMCInputSections.h
Go to the documentation of this file.
1 //////////////////////////////////////////////////////////////////////////////////////
2 // This file is distributed under the University of Illinois/NCSA Open Source License.
3 // See LICENSE file in top directory for details.
4 //
5 // Copyright (c) 2019 QMCPACK developers.
6 //
7 // File developed by: Peter Doak, doakpw@ornl.gov, Oak Ridge National Laboratory
8 //
9 // File created by: Peter Doak, doakpw@ornl.gov, Oak Ridge National Laboratory
10 //////////////////////////////////////////////////////////////////////////////////////
11 
12 
13 #ifndef QMCPLUSPLUS_VALIDQMCINPUTSECTIONS_H
14 #define QMCPLUSPLUS_VALIDQMCINPUTSECTIONS_H
15 
16 /** @file
17  * @brief avoids many repeated xml heredoc sections
18  */
19 
20 #include <array>
21 
22 namespace qmcplusplus
23 {
24 namespace testing
25 {
26 // clang-format: off
27 constexpr std::array<const char*, 4> valid_vmc_input_sections{
28  R"(
29  <qmc method="vmc" move="pbyp">
30  <estimator name="LocalEnergy" hdf5="no" />
31  <parameter name="walkers"> 1 </parameter>
32  <parameter name="stepsbetweensamples"> 1 </parameter>
33  <parameter name="warmupSteps"> 5 </parameter>
34  <parameter name="substeps"> 5 </parameter>
35  <parameter name="steps"> 1 </parameter>
36  <parameter name="blocks"> 2 </parameter>
37  <parameter name="timestep"> 1.0 </parameter>
38  <parameter name="usedrift"> no </parameter>
39  </qmc>
40 )",
41  R"(
42  <qmc method="vmc" move="pbyp">
43  <parameter name="crowds"> 8 </parameter>
44  <estimators>
45  <estimator name="LocalEnergy" hdf5="no" />
46  </estimators>
47  <parameter name="total_walkers"> 32 </parameter>
48  <parameter name="warmupSteps"> 5 </parameter>
49  <parameter name="substeps"> 5 </parameter>
50  <parameter name="steps"> 1 </parameter>
51  <parameter name="blocks"> 2 </parameter>
52  <parameter name="timestep"> 1.0 </parameter>
53  <parameter name="usedrift"> no </parameter>
54  </qmc>
55 )",
56  R"(
57  <qmc method="vmc" move="pbyp">
58  <parameter name="crowds"> 1 </parameter>
59  <estimator name="LocalEnergy" hdf5="no" />
60  <parameter name="walkers_per_rank"> 1 </parameter>
61  <parameter name="warmupSteps"> 5 </parameter>
62  <parameter name="substeps"> 5 </parameter>
63  <parameter name="steps"> 1 </parameter>
64  <parameter name="blocks"> 2 </parameter>
65  <parameter name="timestep"> 1.0 </parameter>
66  <parameter name="usedrift"> no </parameter>
67  </qmc>
68 )",
69  R"(
70  <qmc method="vmc_batch" move="pbyp">
71  <parameter name="crowds"> 8 </parameter>
72  <estimator name="LocalEnergy" hdf5="no" />
73  <parameter name="total_walkers"> 32 </parameter>
74  <parameter name="warmupSteps"> 5 </parameter>
75  <parameter name="substeps"> 5 </parameter>
76  <parameter name="steps"> 1 </parameter>
77  <parameter name="blocks"> 2 </parameter>
78  <parameter name="timestep"> 1.0 </parameter>
79  <parameter name="usedrift"> no </parameter>
80  </qmc>
81 )"};
82 
83 
84 // to avoid creating a situation where section test xml is in two places
85 constexpr int valid_vmc_input_vmc_index = 0;
89 
90 constexpr std::array<const char*, 3> valid_dmc_input_sections{
91  R"(
92  <qmc method="dmc" move="pbyp" gpu="yes">
93  <estimator name="LocalEnergy" hdf5="no" />
94  <parameter name="targetwalkers"> 256 </parameter>
95  <parameter name="warmupSteps"> 100 </parameter>
96  <parameter name="steps"> 10 </parameter>
97  <parameter name="blocks"> 100 </parameter>
98  <parameter name="timestep"> 0.01 </parameter>
99  <parameter name="reconfiguration"> no </parameter>
100  <parameter name="nonlocalmoves"> no </parameter>
101  </qmc>
102 )",
103  R"(
104  <qmc method="dmc" move="pbyp">
105  <parameter name="crowds"> 4 </parameter>
106  <estimators>
107  <estimator type="LocalEnergy" hdf5="no" />
108  </estimators>
109  <parameter name="total_walkers"> 8 </parameter>
110  <parameter name="reserve"> 1.25 </parameter>
111  <parameter name="warmupSteps"> 5 </parameter>
112  <parameter name="substeps"> 5 </parameter>
113  <parameter name="steps"> 1 </parameter>
114  <parameter name="blocks"> 2 </parameter>
115  <parameter name="timestep"> 1.0 </parameter>
116  <parameter name="usedrift"> no </parameter>
117  </qmc>
118 )",
119  R"(
120  <qmc method="dmc_batch" move="pbyp">
121  <parameter name="crowds"> 4 </parameter>
122  <estimator name="LocalEnergy" hdf5="no" />
123  <parameter name="total_walkers"> 8 </parameter>
124  <parameter name="reserve"> 1.25 </parameter>
125  <parameter name="warmupSteps"> 5 </parameter>
126  <parameter name="substeps"> 5 </parameter>
127  <parameter name="steps"> 1 </parameter>
128  <parameter name="blocks"> 2 </parameter>
129  <parameter name="timestep"> 1.0 </parameter>
130  <parameter name="usedrift"> no </parameter>
131  </qmc>
132 )"};
133 
134 // to avoid creating a situation where section test xml is in two places
135 constexpr int valid_dmc_input_dmc_index = 0;
138 
139 /** As far as I can tell these are no longer valid */
140 constexpr std::array<const char*, 2> valid_opt_input_sections{
141  R"(
142  <qmc method="opt" move="pbyp" gpu="yes">
143  </qmc>
144 )",
145  R"(
146  <qmc method="opt" move="pbyp">
147  <optimize method="test" output_param_file="yes"/>
148  <parameter name="opt_num_crowds"> 4 </parameter>
149  <parameter name="opt_crowd_size"> 8 </parameter>
150  </qmc>
151 )"};
152 
153 // clang-format: on
154 } // namespace testing
155 } // namespace qmcplusplus
156 
157 #endif
constexpr int valid_vmc_input_vmc_index
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
constexpr int valid_vmc_input_vmc_tiny_index
constexpr int valid_vmc_input_vmc_batch_index
constexpr std::array< const char *, 2 > valid_opt_input_sections
As far as I can tell these are no longer valid.
constexpr int valid_dmc_input_dmc_index
constexpr std::array< const char *, 4 > valid_vmc_input_sections
constexpr int valid_vmc_batch_input_vmc_batch_index
constexpr int valid_dmc_input_dmc_batch_index
constexpr std::array< const char *, 3 > valid_dmc_input_sections
constexpr int valid_dmc_batch_input_dmc_batch_index