Skip to content

Commit

Permalink
Merge pull request #5344 from prckent/lihbatch
Browse files Browse the repository at this point in the history
Add batched LiH solid tests
  • Loading branch information
ye-luo authored Feb 27, 2025
2 parents c365b3f + d1882ac commit 98ab9a5
Show file tree
Hide file tree
Showing 4 changed files with 291 additions and 0 deletions.
36 changes: 36 additions & 0 deletions tests/solids/LiH_solid_1x1x1_pp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,18 @@ qmc_run_and_check(
LIH_GAMMA_SCALARS # VMC
)

qmc_run_and_check(
short-LiH_solid_1x1x1_pp-gamma-drift-vmcbatch_hf_noj
"${qmcpack_SOURCE_DIR}/tests/solids/LiH_solid_1x1x1_pp"
hf_vmcbatch_LiH-gamma-drift
hf_vmcbatch_LiH-gamma-drift.xml
1
16
TRUE
0
LIH_GAMMA_SCALARS # VMC
)

list(APPEND LIH_X_SCALARS "kinetic" "7.3772282047321536 0.024")
list(APPEND LIH_X_SCALARS "localecp" "-11.414410381100344 0.025")
list(APPEND LIH_X_SCALARS "samples" "1600000 0.0")
Expand Down Expand Up @@ -60,6 +72,18 @@ qmc_run_and_check(
LIH_X_SCALARS # VMC
)

qmc_run_and_check(
short-LiH_solid_1x1x1_pp-x-drift-vmcbatch_hf_noj
"${qmcpack_SOURCE_DIR}/tests/solids/LiH_solid_1x1x1_pp"
hf_vmcbatch_LiH-x-drift
hf_vmcbatch_LiH-x-drift.xml
1
16
TRUE
0
LIH_X_SCALARS # VMC
)

# Hybridrep is not implemented in legacy CUDA but should be correctly error trapped
qmc_run_and_check(
short-LiH_solid_1x1x1_hybridrep_pp-x-vmc_hf_noj
Expand Down Expand Up @@ -109,6 +133,18 @@ qmc_run_and_check(
LIH_ARB_SCALARS # VMC
)

qmc_run_and_check(
short-LiH_solid_1x1x1_pp-arb-drift-vmcbatch_hf_noj
"${qmcpack_SOURCE_DIR}/tests/solids/LiH_solid_1x1x1_pp"
hf_vmcbatch_LiH-arb-drift
hf_vmcbatch_LiH-arb-drift.xml
1
16
${LIH_ARB_SUCCEED}
0
LIH_ARB_SCALARS # VMC
)

# multi-slater determinant requires complex build to run. Ensure fails with real/non-complex build
list(APPEND LIH_MD_GAMMA_SCALARS "totenergy" "-8.489858484145001 0.004")
if(QMC_COMPLEX)
Expand Down
85 changes: 85 additions & 0 deletions tests/solids/LiH_solid_1x1x1_pp/hf_vmcbatch_LiH-arb-drift.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
<?xml version="1.0"?>
<simulation>
<project id="hf_vmcbatch_LiH-arb-drift" series="0">
<parameter name="driver_version">batched</parameter>
</project>
<!--random seed="49154"/-->

<qmcsystem>
<simulationcell>
<parameter name="lattice" units="bohr">
-3.550000 0.000000 3.550000
0.000000 3.550000 3.550000
-3.550000 3.550000 0.000000
</parameter>
<parameter name="bconds">
p p p
</parameter>
<parameter name="LR_dim_cutoff" > 10 </parameter>
</simulationcell>
<particleset name="e" random="yes" random_source="i">
<group name="u" size="2" mass="1.0">
<parameter name="charge" > -1 </parameter>
<parameter name="mass" > 1.0 </parameter>
</group>
<group name="d" size="2" mass="1.0">
<parameter name="charge" > -1 </parameter>
<parameter name="mass" > 1.0 </parameter>
</group>
</particleset>
<particleset name="i" size="2">
<group name="Li">
<parameter name="charge" > 3 </parameter>
<parameter name="valence" > 3 </parameter>
<parameter name="atomicnumber" > 3 </parameter>
<parameter name="mass" > 12753.131164 </parameter>
</group>
<group name="H">
<parameter name="charge" > 1 </parameter>
<parameter name="valence" > 1 </parameter>
<parameter name="atomicnumber" > 1 </parameter>
<parameter name="mass" > 1837.36221934 </parameter>
</group>
<attrib name="position" datatype="posArray" condition="0">
0.00000000 0.00000000 0.00000000
3.55000000 3.55000000 3.55000000
</attrib>
<attrib name="ionid" datatype="stringArray">
Li H
</attrib>
</particleset>
<wavefunction name="psi0" target="e">
<sposet_collection type="bspline" href="LiH-arb.pwscf.h5" tilematrix="1 0 0 0 1 0 0 0 1" twistnum="0" meshfactor="1.0" source="i" precision="double">
<sposet type="bspline" name="spo_ud" size="2" spindataset="0"/>
</sposet_collection>
<determinantset>
<slaterdeterminant>
<determinant sposet="spo_ud"/>
<determinant sposet="spo_ud"/>
</slaterdeterminant>
</determinantset>
</wavefunction>
</qmcsystem>

<hamiltonian name="h0" type="generic" target="e">
<pairpot type="pseudo" name="PseudoPot" source="i" wavefunction="psi0" format="xml">
<pseudo elementType="Li" href="Li.xml"/>
<pseudo elementType="H" href="H.xml"/>
</pairpot>
<constant name="IonIon" type="coulomb" source="i" target="i"/>
<pairpot name="ElecElec" type="coulomb" source="e" target="e" physical="true"/>
<estimator type="flux" name="Flux"/>
</hamiltonian>

<qmc method="vmc" move="pbyp" gpu="yes">
<estimator name="LocalEnergy" hdf5="no"/>
<parameter name="total_walkers"> 16 </parameter>
<parameter name="substeps"> 5 </parameter>
<parameter name="warmupSteps"> 400 </parameter>
<parameter name="steps"> 100 </parameter>
<parameter name="blocks"> 1000 </parameter>
<parameter name="timestep"> 1.0 </parameter>
<parameter name="usedrift"> yes </parameter>
</qmc>

</simulation>
85 changes: 85 additions & 0 deletions tests/solids/LiH_solid_1x1x1_pp/hf_vmcbatch_LiH-gamma-drift.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
<?xml version="1.0"?>
<simulation>
<project id="hf_vmcbatch_LiH-gamma-drift" series="0">
<parameter name="driver_version">batched</parameter>
</project>
<!--random seed="49154"/-->

<qmcsystem>
<simulationcell>
<parameter name="lattice" units="bohr">
-3.550000 0.000000 3.550000
0.000000 3.550000 3.550000
-3.550000 3.550000 0.000000
</parameter>
<parameter name="bconds">
p p p
</parameter>
<parameter name="LR_dim_cutoff" > 10 </parameter>
</simulationcell>
<particleset name="e" random="yes" random_source="i">
<group name="u" size="2" mass="1.0">
<parameter name="charge" > -1 </parameter>
<parameter name="mass" > 1.0 </parameter>
</group>
<group name="d" size="2" mass="1.0">
<parameter name="charge" > -1 </parameter>
<parameter name="mass" > 1.0 </parameter>
</group>
</particleset>
<particleset name="i" size="2">
<group name="Li">
<parameter name="charge" > 3 </parameter>
<parameter name="valence" > 3 </parameter>
<parameter name="atomicnumber" > 3 </parameter>
<parameter name="mass" > 12753.131164 </parameter>
</group>
<group name="H">
<parameter name="charge" > 1 </parameter>
<parameter name="valence" > 1 </parameter>
<parameter name="atomicnumber" > 1 </parameter>
<parameter name="mass" > 1837.36221934 </parameter>
</group>
<attrib name="position" datatype="posArray" condition="0">
0.00000000 0.00000000 0.00000000
3.55000000 3.55000000 3.55000000
</attrib>
<attrib name="ionid" datatype="stringArray">
Li H
</attrib>
</particleset>
<wavefunction name="psi0" target="e">
<sposet_collection type="bspline" href="LiH-gamma.pwscf.h5" tilematrix="1 0 0 0 1 0 0 0 1" twistnum="-1" meshfactor="1.0" source="i" precision="double" twist="0 0 0">
<sposet type="bspline" name="spo_ud" size="2" spindataset="0"/>
</sposet_collection>
<determinantset>
<slaterdeterminant>
<determinant sposet="spo_ud"/>
<determinant sposet="spo_ud"/>
</slaterdeterminant>
</determinantset>
</wavefunction>
</qmcsystem>

<hamiltonian name="h0" type="generic" target="e">
<pairpot type="pseudo" name="PseudoPot" source="i" wavefunction="psi0" format="xml">
<pseudo elementType="Li" href="Li.xml"/>
<pseudo elementType="H" href="H.xml"/>
</pairpot>
<constant name="IonIon" type="coulomb" source="i" target="i"/>
<pairpot name="ElecElec" type="coulomb" source="e" target="e" physical="true"/>
<estimator type="flux" name="Flux"/>
</hamiltonian>

<qmc method="vmc" move="pbyp" gpu="yes">
<estimator name="LocalEnergy" hdf5="no"/>
<parameter name="total_walkers"> 16 </parameter>
<parameter name="substeps"> 5 </parameter>
<parameter name="warmupSteps"> 400 </parameter>
<parameter name="steps"> 100 </parameter>
<parameter name="blocks"> 1000 </parameter>
<parameter name="timestep"> 1.0 </parameter>
<parameter name="usedrift"> yes </parameter>
</qmc>

</simulation>
85 changes: 85 additions & 0 deletions tests/solids/LiH_solid_1x1x1_pp/hf_vmcbatch_LiH-x-drift.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
<?xml version="1.0"?>
<simulation>
<project id="hf_vmcbatch_LiH-x-drift" series="0">
<parameter name="driver_version">batched</parameter>
</project>
<!--random seed="49154"/-->

<qmcsystem>
<simulationcell>
<parameter name="lattice" units="bohr">
-3.550000 0.000000 3.550000
0.000000 3.550000 3.550000
-3.550000 3.550000 0.000000
</parameter>
<parameter name="bconds">
p p p
</parameter>
<parameter name="LR_dim_cutoff" > 10 </parameter>
</simulationcell>
<particleset name="e" random="yes" random_source="i">
<group name="u" size="2" mass="1.0">
<parameter name="charge" > -1 </parameter>
<parameter name="mass" > 1.0 </parameter>
</group>
<group name="d" size="2" mass="1.0">
<parameter name="charge" > -1 </parameter>
<parameter name="mass" > 1.0 </parameter>
</group>
</particleset>
<particleset name="i" size="2">
<group name="Li">
<parameter name="charge" > 3 </parameter>
<parameter name="valence" > 3 </parameter>
<parameter name="atomicnumber" > 3 </parameter>
<parameter name="mass" > 12753.131164 </parameter>
</group>
<group name="H">
<parameter name="charge" > 1 </parameter>
<parameter name="valence" > 1 </parameter>
<parameter name="atomicnumber" > 1 </parameter>
<parameter name="mass" > 1837.36221934 </parameter>
</group>
<attrib name="position" datatype="posArray" condition="0">
0.00000000 0.00000000 0.00000000
3.55000000 3.55000000 3.55000000
</attrib>
<attrib name="ionid" datatype="stringArray">
Li H
</attrib>
</particleset>
<wavefunction name="psi0" target="e">
<sposet_collection type="bspline" href="LiH-x.pwscf.h5" tilematrix="1 0 0 0 1 0 0 0 1" twistnum="-1" meshfactor="1.0" source="i" precision="double" twist="0.5 0 0">
<sposet type="bspline" name="spo_ud" size="2" spindataset="0"/>
</sposet_collection>
<determinantset>
<slaterdeterminant>
<determinant sposet="spo_ud"/>
<determinant sposet="spo_ud"/>
</slaterdeterminant>
</determinantset>
</wavefunction>
</qmcsystem>

<hamiltonian name="h0" type="generic" target="e">
<pairpot type="pseudo" name="PseudoPot" source="i" wavefunction="psi0" format="xml">
<pseudo elementType="Li" href="Li.xml"/>
<pseudo elementType="H" href="H.xml"/>
</pairpot>
<constant name="IonIon" type="coulomb" source="i" target="i"/>
<pairpot name="ElecElec" type="coulomb" source="e" target="e" physical="true"/>
<estimator type="flux" name="Flux"/>
</hamiltonian>

<qmc method="vmc" move="pbyp" gpu="yes">
<estimator name="LocalEnergy" hdf5="no"/>
<parameter name="total_walkers"> 16 </parameter>
<parameter name="substeps"> 5 </parameter>
<parameter name="warmupSteps"> 400 </parameter>
<parameter name="steps"> 100 </parameter>
<parameter name="blocks"> 1000 </parameter>
<parameter name="timestep"> 1.0 </parameter>
<parameter name="usedrift"> yes </parameter>
</qmc>

</simulation>

0 comments on commit 98ab9a5

Please sign in to comment.