Skip to content

Commit df8d9ed

Browse files
authored
Merge pull request QMCPACK#5821 from prckent/vp_opt_restart
Add batch restart test using optimizer and vp file
2 parents 04a173d + 5e7082a commit df8d9ed

6 files changed

Lines changed: 261 additions & 4 deletions

File tree

tests/io/CMakeLists.txt

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ run_restart_and_check(
8989
2
9090
check.sh
9191
false)
92+
9293
run_restart_and_check(
9394
deterministic-restart
9495
"${qmcpack_SOURCE_DIR}/tests/io/restart"
@@ -107,10 +108,10 @@ run_restart_and_check(
107108
check.sh
108109
false)
109110

110-
add_test_check_file_existence(deterministic-restart_batch-2-2 qmc_short_batch.s000.config.h5 TRUE)
111-
add_test_check_file_existence(deterministic-restart_batch-2-2 qmc_short_batch.s000.random.h5 TRUE)
112-
add_test_check_file_existence(deterministic-restart_batch-2-2 qmc_short_batch.s001.config.h5 FALSE)
113-
add_test_check_file_existence(deterministic-restart_batch-2-2 qmc_short_batch.s001.random.h5 FALSE)
111+
add_test_check_file_existence(deterministic-restart_batch-r2-t2 qmc_short_batch.s000.config.h5 TRUE)
112+
add_test_check_file_existence(deterministic-restart_batch-r2-t2 qmc_short_batch.s000.random.h5 TRUE)
113+
add_test_check_file_existence(deterministic-restart_batch-r2-t2 qmc_short_batch.s001.config.h5 FALSE)
114+
add_test_check_file_existence(deterministic-restart_batch-r2-t2 qmc_short_batch.s001.random.h5 FALSE)
114115

115116
run_restart_and_check(
116117
deterministic-restart_batch
@@ -121,6 +122,36 @@ run_restart_and_check(
121122
check.sh
122123
true)
123124

125+
if(NOT QMC_MIXED_PRECISION)
126+
run_restart_and_check(
127+
deterministic-restart_batch_opt
128+
"${qmcpack_SOURCE_DIR}/tests/io/restart_batch_opt"
129+
qmc_short_batch
130+
2
131+
2
132+
check.sh
133+
false)
134+
135+
add_test_check_file_existence(deterministic-restart_batch_opt-r2-t2 qmc_short_batch.s000.config.h5 TRUE)
136+
add_test_check_file_existence(deterministic-restart_batch_opt-r2-t2 qmc_short_batch.s000.random.h5 TRUE)
137+
add_test_check_file_existence(deterministic-restart_batch_opt-r2-t2 qmc_short_batch.s001.config.h5 FALSE)
138+
add_test_check_file_existence(deterministic-restart_batch_opt-r2-t2 qmc_short_batch.s001.random.h5 FALSE)
139+
140+
run_restart_and_check(
141+
deterministic-restart_batch_opt
142+
"${qmcpack_SOURCE_DIR}/tests/io/restart_batch_opt"
143+
qmc_short_batch
144+
1
145+
4
146+
check.sh
147+
true)
148+
149+
add_test_check_file_existence(deterministic-restart_batch_opt-r1-t4 qmc_short_batch.s000.config.h5 TRUE)
150+
add_test_check_file_existence(deterministic-restart_batch_opt-r1-t4 qmc_short_batch.s000.random.h5 TRUE)
151+
add_test_check_file_existence(deterministic-restart_batch_opt-r1-t4 qmc_short_batch.s001.config.h5 FALSE)
152+
add_test_check_file_existence(deterministic-restart_batch_opt-r1-t4 qmc_short_batch.s001.random.h5 FALSE)
153+
endif()
154+
124155
run_restart_and_check(
125156
deterministic-restart_dmc
126157
"${qmcpack_SOURCE_DIR}/tests/io/restart_dmc"
@@ -165,6 +196,7 @@ run_restart_and_check(
165196
2
166197
check.sh
167198
false)
199+
168200
run_restart_and_check(
169201
deterministic-save_spline_coefs
170202
"${qmcpack_SOURCE_DIR}/tests/io/save_spline_coefs"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../solids/diamondC_1x1x1_pp/C.BFD.xml
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/usr/bin/env bash
2+
3+
echo "========================================================================================"
4+
echo "First run : qmc_short_batch.s001.scalar.dat"
5+
cat qmc_short_batch.s001.scalar.dat
6+
7+
echo "========================================================================================"
8+
echo "Restart run : qmc_short_batch.s002.scalar.dat"
9+
cat qmc_short_batch.s002.scalar.dat
10+
11+
echo "========================================================================================"
12+
echo "comparing the Kinetic ElecElec IonIon LocalECP up to the 7th digit after the decimal"
13+
14+
sed "/#/d" qmc_short_batch.s001.scalar.dat | awk '{printf("%.7e %.7e %.7e %.7e\n",$5,$6,$7,$8)}' > s001
15+
sed "/#/d" qmc_short_batch.s002.scalar.dat | awk '{printf("%.7e %.7e %.7e %.7e\n",$5,$6,$7,$8)}' > s002
16+
diff s001 s002
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../solids/diamondC_1x1x1_pp/pwscf.pwscf.h5
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
<?xml version="1.0"?>
2+
<simulation>
3+
<project id="qmc_short_batch" series="0">
4+
<application name="qmcapp" role="molecu" class="serial" version="1.0"/>
5+
</project>
6+
<random seed="49154"/>
7+
<qmcsystem>
8+
<simulationcell>
9+
<parameter name="lattice" units="bohr">
10+
3.37316115 3.37316115 0.00000000
11+
0.00000000 3.37316115 3.37316115
12+
3.37316115 0.00000000 3.37316115
13+
</parameter>
14+
<parameter name="bconds">
15+
p p p
16+
</parameter>
17+
<parameter name="LR_dim_cutoff" > 15 </parameter>
18+
</simulationcell>
19+
<particleset name="e" random="yes">
20+
<group name="u" size="4" mass="1.0">
21+
<parameter name="charge" > -1 </parameter>
22+
<parameter name="mass" > 1.0 </parameter>
23+
</group>
24+
<group name="d" size="4" mass="1.0">
25+
<parameter name="charge" > -1 </parameter>
26+
<parameter name="mass" > 1.0 </parameter>
27+
</group>
28+
</particleset>
29+
<particleset name="ion0">
30+
<group name="C" size="2" mass="21894.7135906">
31+
<parameter name="charge" > 4 </parameter>
32+
<parameter name="valence" > 4 </parameter>
33+
<parameter name="atomicnumber" > 6 </parameter>
34+
<parameter name="mass" > 21894.7135906 </parameter>
35+
<attrib name="position" datatype="posArray" condition="0">
36+
0.00000000 0.00000000 0.00000000
37+
1.68658058 1.68658058 1.68658058
38+
</attrib>
39+
</group>
40+
</particleset>
41+
<wavefunction name="psi0" target="e">
42+
<sposet_collection type="bspline" href="pwscf.pwscf.h5" tilematrix="1 0 0 0 1 0 0 0 1" twistnum="0" source="ion0" meshfactor="1.0" precision="float">
43+
<sposet type="bspline" name="spo_ud" size="4" spindataset="0"/>
44+
</sposet_collection>
45+
<determinantset>
46+
<slaterdeterminant>
47+
<determinant id="updet" group="u" sposet="spo_ud" size="4"/>
48+
<determinant id="downdet" group="d" sposet="spo_ud" size="4"/>
49+
</slaterdeterminant>
50+
</determinantset>
51+
<jastrow type="One-Body" name="J1" function="bspline" source="ion0" print="yes">
52+
<correlation elementType="C" size="8" cusp="0.0">
53+
<coefficients id="eC" type="Array">
54+
-0.2032153051 -0.1625595974 -0.143124599 -0.1216434956 -0.09919771951 -0.07111729038
55+
-0.04445345869 -0.02135082917
56+
</coefficients>
57+
</correlation>
58+
</jastrow>
59+
<jastrow type="Two-Body" name="J2" function="bspline" print="yes">
60+
<correlation speciesA="u" speciesB="u" size="8">
61+
<coefficients id="uu" type="Array">
62+
0.2797730287 0.2172604155 0.1656172964 0.1216984261 0.083995349 0.05302065936
63+
0.02915953995 0.0122402581
64+
</coefficients>
65+
</correlation>
66+
<correlation speciesA="u" speciesB="d" size="8">
67+
<coefficients id="ud" type="Array">
68+
0.4631099906 0.356399124 0.2587895287 0.1829298509 0.1233653291 0.07714708174
69+
0.04145899033 0.01690645936
70+
</coefficients>
71+
</correlation>
72+
</jastrow>
73+
</wavefunction>
74+
<hamiltonian name="h0" type="generic" target="e">
75+
<pairpot type="coulomb" name="ElecElec" source="e" target="e"/>
76+
<pairpot type="coulomb" name="IonIon" source="ion0" target="ion0"/>
77+
<pairpot type="pseudo" name="PseudoPot" source="ion0" wavefunction="psi0" format="xml">
78+
<pseudo elementType="C" href="C.BFD.xml"/>
79+
</pairpot>
80+
<estimator type="flux" name="Flux"/>
81+
</hamiltonian>
82+
</qmcsystem>
83+
<loop max="1">
84+
<qmc method="linear_batch" move="pbyp" checkpoint="0">
85+
<parameter name="total_walkers" > 16 </parameter>
86+
<parameter name="blocks"> 8 </parameter>
87+
<parameter name="warmupsteps"> 64 </parameter>
88+
<parameter name="samples"> 128 </parameter>
89+
<cost name="energy"> 0.0 </cost>
90+
<cost name="unreweightedvariance"> 1.0 </cost>
91+
<cost name="reweightedvariance"> 0.0 </cost>
92+
<parameter name="useDrift"> yes </parameter>
93+
<parameter name="bigchange">10.0</parameter>
94+
<estimator name="LocalEnergy" hdf5="no"/>
95+
<parameter name="MinMethod">quartic</parameter>
96+
<parameter name="exp0">-6</parameter>
97+
<parameter name="alloweddifference"> 1.0e-5 </parameter>
98+
<parameter name="stepsize"> 0.15 </parameter>
99+
<parameter name="nstabilizers"> 1 </parameter>
100+
<parameter name="variational_subset"> eC ud </parameter>
101+
<parameter name="output_vp_override">yes</parameter>
102+
</qmc>
103+
</loop>
104+
<qmc method="vmc_batch" move="pbyp" checkpoint="-1">
105+
<parameter name="total_walkers" > 16 </parameter>
106+
<parameter name="blocks" > 1 </parameter>
107+
<parameter name="steps" > 1 </parameter>
108+
<parameter name="subSteps" > 1 </parameter>
109+
<parameter name="timestep" > 0.0 </parameter>
110+
<parameter name="warmupSteps" > 0 </parameter>
111+
</qmc>
112+
</simulation>
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
<?xml version="1.0"?>
2+
<simulation>
3+
<project id="qmc_short_batch" series="2">
4+
<application name="qmcapp" role="molecu" class="serial" version="1.0"/>
5+
</project>
6+
<random seed="49154"/>
7+
<qmcsystem>
8+
<simulationcell>
9+
<parameter name="lattice" units="bohr">
10+
3.37316115 3.37316115 0.00000000
11+
0.00000000 3.37316115 3.37316115
12+
3.37316115 0.00000000 3.37316115
13+
</parameter>
14+
<parameter name="bconds">
15+
p p p
16+
</parameter>
17+
<parameter name="LR_dim_cutoff"> 15 </parameter>
18+
</simulationcell>
19+
<particleset name="e" random="yes">
20+
<group name="u" size="4" mass="1.0">
21+
<parameter name="charge"> -1 </parameter>
22+
<parameter name="mass"> 1.0 </parameter>
23+
</group>
24+
<group name="d" size="4" mass="1.0">
25+
<parameter name="charge"> -1 </parameter>
26+
<parameter name="mass"> 1.0 </parameter>
27+
</group>
28+
</particleset>
29+
<particleset name="ion0">
30+
<group name="C" size="2" mass="21894.7135906">
31+
<parameter name="charge"> 4 </parameter>
32+
<parameter name="valence"> 4 </parameter>
33+
<parameter name="atomicnumber"> 6 </parameter>
34+
<parameter name="mass"> 21894.7135906 </parameter>
35+
<attrib name="position" datatype="posArray" condition="0">
36+
0.00000000 0.00000000 0.00000000
37+
1.68658058 1.68658058 1.68658058
38+
</attrib>
39+
</group>
40+
</particleset>
41+
<wavefunction name="psi0" target="e">
42+
<sposet_collection type="bspline" href="pwscf.pwscf.h5" tilematrix="1 0 0 0 1 0 0 0 1" twistnum="0" source="ion0" meshfactor="1.0" precision="float">
43+
<sposet type="bspline" name="spo_ud" size="4" spindataset="0"/>
44+
</sposet_collection>
45+
<determinantset>
46+
<slaterdeterminant>
47+
<determinant id="updet" group="u" sposet="spo_ud" size="4"/>
48+
<determinant id="downdet" group="d" sposet="spo_ud" size="4"/>
49+
</slaterdeterminant>
50+
</determinantset>
51+
<jastrow type="One-Body" name="J1" function="bspline" source="ion0" print="yes">
52+
<correlation elementType="C" size="8" cusp="0.0">
53+
<coefficients id="eC" type="Array">
54+
-0.2032153051 -0.1625595974 -0.143124599 -0.1216434956 -0.09919771951 -0.07111729038
55+
-0.04445345869 -0.02135082917
56+
</coefficients>
57+
</correlation>
58+
</jastrow>
59+
<jastrow type="Two-Body" name="J2" function="bspline" print="yes">
60+
<correlation speciesA="u" speciesB="u" size="8">
61+
<coefficients id="uu" type="Array">
62+
0.2797730287 0.2172604155 0.1656172964 0.1216984261 0.083995349 0.05302065936
63+
0.02915953995 0.0122402581
64+
</coefficients>
65+
</correlation>
66+
<correlation speciesA="u" speciesB="d" size="8">
67+
<coefficients id="ud" type="Array">
68+
0.4631099906 0.356399124 0.2587895287 0.1829298509 0.1233653291 0.07714708174
69+
0.04145899033 0.01690645936
70+
</coefficients>
71+
</correlation>
72+
</jastrow>
73+
<override_variational_parameters href="qmc_short_batch.s000.vp.h5"/>
74+
</wavefunction>
75+
<hamiltonian name="h0" type="generic" target="e">
76+
<pairpot type="coulomb" name="ElecElec" source="e" target="e"/>
77+
<pairpot type="coulomb" name="IonIon" source="ion0" target="ion0"/>
78+
<pairpot type="pseudo" name="PseudoPot" source="ion0" wavefunction="psi0" format="xml">
79+
<pseudo elementType="C" href="C.BFD.xml"/>
80+
</pairpot>
81+
<estimator type="flux" name="Flux"/>
82+
</hamiltonian>
83+
</qmcsystem>
84+
85+
<mcwalkerset fileroot="qmc_short_batch.s000" node="-1" nprocs="1" version="0 4" collected="yes"/>
86+
87+
<qmc method="vmc_batch" move="pbyp" checkpoint="-1">
88+
<parameter name="total_walkers"> 16 </parameter>
89+
<parameter name="blocks"> 1 </parameter>
90+
<parameter name="steps"> 1 </parameter>
91+
<parameter name="subSteps"> 1 </parameter>
92+
<parameter name="timestep"> 0.0 </parameter>
93+
<parameter name="warmupSteps"> 0 </parameter>
94+
</qmc>
95+
</simulation>

0 commit comments

Comments
 (0)