Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add deterministic and statistical test for RMC density and spindensity check #4327

Merged
merged 2 commits into from Nov 21, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
120 changes: 120 additions & 0 deletions tests/solids/diamondC_1x1x1_pp/CMakeLists.txt
Expand Up @@ -410,6 +410,26 @@ if(add_estimator_tests)
-r
qmc-ref/qmc_dens_dmc_short.s001.stat_ref_density.dat)

simple_run_and_check(
short-diamondC_1x1x1_pp-rmc-estimator-density
"${qmcpack_SOURCE_DIR}/tests/solids/diamondC_1x1x1_pp"
qmc_dens_rmc_short.in.xml
${NMPI}
${NOMP}
check_stats.py
-s
1
-q
density
-e
20
-c
8
-p
qmc_dens_rmc_short
-r
qmc-ref/qmc_dens_rmc_short.s001.stat_ref_density.dat)

simple_run_and_check(
long-diamondC_1x1x1_pp-vmc-estimator-density
"${qmcpack_SOURCE_DIR}/tests/solids/diamondC_1x1x1_pp"
Expand Down Expand Up @@ -450,6 +470,26 @@ if(add_estimator_tests)
-r
qmc-ref/qmc_dens_dmc_long.s001.stat_ref_density.dat)

simple_run_and_check(
long-diamondC_1x1x1_pp-rmc-estimator-density
"${qmcpack_SOURCE_DIR}/tests/solids/diamondC_1x1x1_pp"
qmc_dens_rmc_long.in.xml
${NMPI}
${NOMP}
check_stats.py
-s
1
-q
density
-e
20
-c
8
-p
qmc_dens_rmc_long
-r
qmc-ref/qmc_dens_rmc_long.s001.stat_ref_density.dat)

# spindensity tests
simple_run_and_check(
short-diamondC_1x1x1_pp-vmc-estimator-spindensity
Expand Down Expand Up @@ -537,6 +577,26 @@ if(add_estimator_tests)
-r
qmc-ref/qmc_spindens_dmc_short.s001.stat_ref_spindensity.dat)

simple_run_and_check(
short-diamondC_1x1x1_pp-rmc-estimator-spindensity
"${qmcpack_SOURCE_DIR}/tests/solids/diamondC_1x1x1_pp"
qmc_spindens_rmc_short.in.xml
${NMPI}
${NOMP}
check_stats.py
-s
1
-q
spindensity
-e
20
-c
8
-p
qmc_spindens_rmc_short
-r
qmc-ref/qmc_spindens_rmc_short.s001.stat_ref_spindensity.dat)

simple_run_and_check(
long-diamondC_1x1x1_pp-vmc-estimator-spindensity
"${qmcpack_SOURCE_DIR}/tests/solids/diamondC_1x1x1_pp"
Expand Down Expand Up @@ -577,6 +637,26 @@ if(add_estimator_tests)
-r
qmc-ref/qmc_spindens_dmc_long.s001.stat_ref_spindensity.dat)

simple_run_and_check(
long-diamondC_1x1x1_pp-rmc-estimator-spindensity
"${qmcpack_SOURCE_DIR}/tests/solids/diamondC_1x1x1_pp"
qmc_spindens_rmc_long.in.xml
${NMPI}
${NOMP}
check_stats.py
-s
1
-q
spindensity
-e
20
-c
8
-p
qmc_spindens_rmc_long
-r
qmc-ref/qmc_spindens_rmc_long.s001.stat_ref_spindensity.dat)

# 1rdm tests
if(NOT QMC_CUDA)
# no Jastrow tests
Expand Down Expand Up @@ -880,6 +960,26 @@ if(NOT QMC_CUDA)
-r
qmc-ref/det_qmc_dens_short_vmc_dmc.s001.stat_ref_density_4_4${OFEXT}.dat)

simple_run_and_check(
deterministic-diamondC_1x1x1_pp-rmc-estimator-density
"${qmcpack_SOURCE_DIR}/tests/solids/diamondC_1x1x1_pp"
det_qmc_dens_short_vmc_rmc.in.xml
1
1
check_stats.py
-s
1
-q
density
-e
1
-c
8
-p
det_qmc_dens_short_vmc_rmc
-r
qmc-ref/det_qmc_dens_short_vmc_rmc.s001.stat_ref_density_1_1.dat)

# spindensity tests
simple_run_and_check(
deterministic-diamondC_1x1x1_pp-vmc-estimator-spindensity
Expand Down Expand Up @@ -969,6 +1069,26 @@ if(NOT QMC_CUDA)
-r
qmc-ref/det_qmc_spindens_short_vmc_dmc.s001.stat_ref_spindensity_4_4${OFEXT}.dat)

simple_run_and_check(
deterministic-diamondC_1x1x1_pp-rmc-estimator-spindensity
"${qmcpack_SOURCE_DIR}/tests/solids/diamondC_1x1x1_pp"
det_qmc_spindens_short_vmc_rmc.in.xml
1
1
check_stats.py
-s
1
-q
spindensity
-e
1
-c
8
-p
det_qmc_spindens_short_vmc_rmc
-r
qmc-ref/det_qmc_spindens_short_vmc_rmc.s001.stat_ref_spindensity_1_1.dat)

simple_run_and_check(
deterministic-diamondC_1x1x1_pp-vmc-noJ-estimator-1rdm
"${qmcpack_SOURCE_DIR}/tests/solids/diamondC_1x1x1_pp"
Expand Down
105 changes: 105 additions & 0 deletions tests/solids/diamondC_1x1x1_pp/det_qmc_dens_short_vmc_rmc.in.xml
@@ -0,0 +1,105 @@
<?xml version="1.0"?>
<simulation>
<project id="det_qmc_dens_short_vmc_rmc" series="0">
<application name="qmcapp" role="molecu" class="serial" version="1.0"/>
</project>
<random seed="832"/>
<qmcsystem>
<simulationcell>
<parameter name="lattice" units="bohr">
3.37316115 3.37316115 0.00000000
0.00000000 3.37316115 3.37316115
3.37316115 0.00000000 3.37316115
</parameter>
<parameter name="bconds">
p p p
</parameter>
<parameter name="LR_dim_cutoff" > 15 </parameter>
</simulationcell>
<particleset name="e" random="yes">
<group name="u" size="4" mass="1.0">
<parameter name="charge" > -1 </parameter>
<parameter name="mass" > 1.0 </parameter>
</group>
<group name="d" size="4" mass="1.0">
<parameter name="charge" > -1 </parameter>
<parameter name="mass" > 1.0 </parameter>
</group>
</particleset>
<particleset name="ion0">
<group name="C" size="2" mass="21894.7135906">
<parameter name="charge" > 4 </parameter>
<parameter name="valence" > 4 </parameter>
<parameter name="atomicnumber" > 6 </parameter>
<parameter name="mass" > 21894.7135906 </parameter>
<attrib name="position" datatype="posArray" condition="0">
0.00000000 0.00000000 0.00000000
1.68658058 1.68658058 1.68658058
</attrib>
</group>
</particleset>
<wavefunction name="psi0" target="e">
<determinantset type="einspline" href="pwscf.pwscf.h5" tilematrix="1 0 0 0 1 0 0 0 1" twistnum="0" source="ion0" meshfactor="1.0" precision="float">
<slaterdeterminant>
<determinant id="updet" size="4">
<occupation mode="ground" spindataset="0"/>
</determinant>
<determinant id="downdet" size="4">
<occupation mode="ground" spindataset="0"/>
</determinant>
</slaterdeterminant>
</determinantset>
<jastrow type="One-Body" name="J1" function="bspline" source="ion0" print="yes">
<correlation elementType="C" size="8" cusp="0.0">
<coefficients id="eC" type="Array">
-0.2032153051 -0.1625595974 -0.143124599 -0.1216434956 -0.09919771951 -0.07111729038
-0.04445345869 -0.02135082917
</coefficients>
</correlation>
</jastrow>
<jastrow type="Two-Body" name="J2" function="bspline" print="yes">
<correlation speciesA="u" speciesB="u" size="8">
<coefficients id="uu" type="Array">
0.2797730287 0.2172604155 0.1656172964 0.1216984261 0.083995349 0.05302065936
0.02915953995 0.0122402581
</coefficients>
</correlation>
<correlation speciesA="u" speciesB="d" size="8">
<coefficients id="ud" type="Array">
0.4631099906 0.356399124 0.2587895287 0.1829298509 0.1233653291 0.07714708174
0.04145899033 0.01690645936
</coefficients>
</correlation>
</jastrow>
</wavefunction>
<hamiltonian name="h0" type="generic" target="e">
<pairpot type="coulomb" name="ElecElec" source="e" target="e"/>
<pairpot type="coulomb" name="IonIon" source="ion0" target="ion0"/>
<pairpot type="pseudo" name="PseudoPot" source="ion0" wavefunction="psi0" format="xml">
<pseudo elementType="C" href="C.BFD.xml"/>
</pairpot>
<estimator name="Density" type="density" delta="0.1 0.1 0.1"/>
</hamiltonian>
</qmcsystem>

<qmc method="vmc" move="pbyp">
<estimator name="LocalEnergy" hdf5="no"/>
<parameter name="walkers"> 64 </parameter>
<parameter name="substeps"> 1 </parameter>
<parameter name="warmupSteps"> 3 </parameter>
<parameter name="steps"> 1 </parameter>
<parameter name="blocks"> 1 </parameter>
<parameter name="timestep"> 1.0 </parameter>
<parameter name="usedrift"> no </parameter>
</qmc>
<qmc method="rmc" move="pbyp" checkpoint="-1">
<estimator name="RMC" hdf5="no"/>
<parameter name="warmupSteps"> 3 </parameter>
<parameter name="timestep"> 0.02 </parameter>
<parameter name="beads"> 20 </parameter>
<parameter name="steps"> 3 </parameter>
<parameter name="blocks"> 5 </parameter>
<parameter name="nonlocalmoves"> no </parameter>
</qmc>

</simulation>
107 changes: 107 additions & 0 deletions tests/solids/diamondC_1x1x1_pp/det_qmc_spindens_short_vmc_rmc.in.xml
@@ -0,0 +1,107 @@
<?xml version="1.0"?>
<simulation>
<project id="det_qmc_spindens_short_vmc_rmc" series="0">
<application name="qmcapp" role="molecu" class="serial" version="1.0"/>
</project>
<random seed="287"/>
<qmcsystem>
<simulationcell>
<parameter name="lattice" units="bohr">
3.37316115 3.37316115 0.00000000
0.00000000 3.37316115 3.37316115
3.37316115 0.00000000 3.37316115
</parameter>
<parameter name="bconds">
p p p
</parameter>
<parameter name="LR_dim_cutoff" > 15 </parameter>
</simulationcell>
<particleset name="e" random="yes">
<group name="u" size="4" mass="1.0">
<parameter name="charge" > -1 </parameter>
<parameter name="mass" > 1.0 </parameter>
</group>
<group name="d" size="4" mass="1.0">
<parameter name="charge" > -1 </parameter>
<parameter name="mass" > 1.0 </parameter>
</group>
</particleset>
<particleset name="ion0">
<group name="C" size="2" mass="21894.7135906">
<parameter name="charge" > 4 </parameter>
<parameter name="valence" > 4 </parameter>
<parameter name="atomicnumber" > 6 </parameter>
<parameter name="mass" > 21894.7135906 </parameter>
<attrib name="position" datatype="posArray" condition="0">
0.00000000 0.00000000 0.00000000
1.68658058 1.68658058 1.68658058
</attrib>
</group>
</particleset>
<wavefunction name="psi0" target="e">
<determinantset type="einspline" href="pwscf.pwscf.h5" tilematrix="1 0 0 0 1 0 0 0 1" twistnum="0" source="ion0" meshfactor="1.0" precision="float">
<slaterdeterminant>
<determinant id="updet" size="4">
<occupation mode="ground" spindataset="0"/>
</determinant>
<determinant id="downdet" size="4">
<occupation mode="ground" spindataset="0"/>
</determinant>
</slaterdeterminant>
</determinantset>
<jastrow type="One-Body" name="J1" function="bspline" source="ion0" print="yes">
<correlation elementType="C" size="8" cusp="0.0">
<coefficients id="eC" type="Array">
-0.2032153051 -0.1625595974 -0.143124599 -0.1216434956 -0.09919771951 -0.07111729038
-0.04445345869 -0.02135082917
</coefficients>
</correlation>
</jastrow>
<jastrow type="Two-Body" name="J2" function="bspline" print="yes">
<correlation speciesA="u" speciesB="u" size="8">
<coefficients id="uu" type="Array">
0.2797730287 0.2172604155 0.1656172964 0.1216984261 0.083995349 0.05302065936
0.02915953995 0.0122402581
</coefficients>
</correlation>
<correlation speciesA="u" speciesB="d" size="8">
<coefficients id="ud" type="Array">
0.4631099906 0.356399124 0.2587895287 0.1829298509 0.1233653291 0.07714708174
0.04145899033 0.01690645936
</coefficients>
</correlation>
</jastrow>
</wavefunction>
<hamiltonian name="h0" type="generic" target="e">
<pairpot type="coulomb" name="ElecElec" source="e" target="e"/>
<pairpot type="coulomb" name="IonIon" source="ion0" target="ion0"/>
<pairpot type="pseudo" name="PseudoPot" source="ion0" wavefunction="psi0" format="xml">
<pseudo elementType="C" href="C.BFD.xml"/>
</pairpot>
<estimator type="spindensity" name="SpinDensity" report="yes">
<parameter name="grid"> 10 10 10 </parameter>
</estimator>
</hamiltonian>
</qmcsystem>

<qmc method="vmc" move="pbyp">
<estimator name="LocalEnergy" hdf5="no"/>
<parameter name="walkers"> 64 </parameter>
<parameter name="substeps"> 1 </parameter>
<parameter name="warmupSteps"> 3 </parameter>
<parameter name="steps"> 1 </parameter>
<parameter name="blocks"> 1 </parameter>
<parameter name="timestep"> 1.0 </parameter>
<parameter name="usedrift"> no </parameter>
</qmc>
<qmc method="rmc" move="pbyp" checkpoint="-1">
<estimator name="RMC" hdf5="no"/>
<parameter name="warmupSteps"> 3 </parameter>
<parameter name="timestep"> 0.02 </parameter>
<parameter name="beads"> 20 </parameter>
<parameter name="steps"> 3 </parameter>
<parameter name="blocks"> 5 </parameter>
<parameter name="nonlocalmoves"> no </parameter>
</qmc>

</simulation>
@@ -0,0 +1,10 @@
# tot tot_err
8.00000000e+00 3.14018492e-16
3.33333333e+00 3.66414054e-01
1.75000000e+00 4.14578099e-01
8.33333333e-02 7.21687836e-02
6.66666667e-01 1.66666667e-01
8.33333333e-02 7.21687836e-02
6.66666667e-01 1.17851130e-01
8.33333333e-01 2.20479276e-01
5.83333333e-01 2.44144387e-01
@@ -0,0 +1,10 @@
# d d_err u u_err
4.00000000e+00 0.00000000e+00 4.00000000e+00 1.11022302e-16
1.50000000e+00 1.44337567e-01 5.00000000e-01 2.40562612e-01
6.66666667e-01 2.63523138e-01 5.00000000e-01 2.20479276e-01
5.83333333e-01 1.90940654e-01 9.16666667e-01 1.38192700e-01
0.00000000e+00 0.00000000e+00 5.83333333e-01 1.78406008e-01
5.00000000e-01 1.86338998e-01 8.33333333e-01 1.44337567e-01
3.33333333e-01 1.17851130e-01 1.66666667e-01 1.44337567e-01
1.66666667e-01 1.44337567e-01 0.00000000e+00 0.00000000e+00
2.50000000e-01 7.21687836e-02 5.00000000e-01 2.40562612e-01