Multideterminant WF with an empty spin channel

10 views
Skip to first unread message

Matej Ditte

unread,
May 11, 2026, 6:46:14 AM (13 days ago) May 11
to qmcpack
Hello,

I am trying to run a multidet CSF WF for the H_2 triplet, where N_el_down=0

First, for the single-det case, I used the default output from the converter:

<particleset name="e" random="yes" randomsrc="ion0">
  <group name="u" size="2">
    <parameter name="charge">-1</parameter>
  </group>
  <group name="d" size="0">
    <parameter name="charge">-1</parameter>
  </group>
</particleset>

<slaterdeterminant>
  <determinant id="updet"     group="u" sposet="spo_ud" size="2"/>
  <determinant id="downdet"   group="d" sposet="spo_ud" size="0"/>
</slaterdeterminant>


This produced the following error:

Fatal Error. Aborting at Some 'group' XML element node doesn't contain a 'size' attribute! 'size = 0' is not allowed in the input. Make appropriate adjustments to the input or converter.

I was able to work around this by simply removing

<group name="d" size="0">
  <parameter name="charge">-1</parameter>
</group>


and

<determinant id="downdet"   group="d" sposet="spo_ud" size="0"/>
       
After that, the calculation runs correctly.

However, when I try the multidet version:

<multideterminant optimize="no" spo_up="spo_ud" spo_dn="spo_ud">
  <detlist size="6" type="CSF" nca="0" ncb="0" nea="2" neb="0" nstates="8" cutoff="1e-05">
    <csf id="CSFcoeff_0" exctLvl="2" coeff="0.999768" qchem_coeff="0.999768" occ="11000000">
      <det id="csf_0-0" coeff="1" alpha="11000000" beta="00000000"/>
    </csf>
    <csf id="CSFcoeff_1" exctLvl="2" coeff="0.015259" qchem_coeff="0.015259" occ="00010010">
      <det id="csf_1-0" coeff="-1" alpha="00010010" beta="00000000"/>
    </csf>
........................
  </detlist>
</multideterminant>

     
I get the following error:

Fatal Error. Aborting at In SlaterDetBuilder: SPOSet "" is not found. Expected for MultiSlaterDeterminant.

I tried:
-removing spo_dn="spo_ud"
-removing ncb="0" and neb="0"
-removing all beta="..."
-using the old WF format

Is there a way to run this, or is the multidet WF not implemented for an empty spin channel?

I attached a complete example reproducing the error. The h2.wfj.xml file also contains a commented-out single-det version.

Thank you for the help.

Best regards,
Matej
h2_triplet.zip

Paul R. C. Kent

unread,
May 11, 2026, 9:14:13 AM (13 days ago) May 11
to qmcpack
Thanks Matej. I have made an issue on GitHub referencing your report at https://github.com/QMCPACK/qmcpack/issues/5953 . Hopefully there is a known workaround for the current code and someone will reply, but my guess is that when the input handling was written the code was simply too cautious.

Paul R. C. Kent

unread,
May 11, 2026, 9:22:22 AM (13 days ago) May 11
to qmcpack
If the current code is too cautious or needs protections for the single spin channel case, this should be a relatively simple fix.

Matej Ditte

unread,
May 11, 2026, 11:18:52 AM (13 days ago) May 11
to qmcpack
Hi Paul, 

Thanks for creating the GitHub issue. For the moment, I managed to make it work with:

      <multideterminant optimize="no" spo_0="spo_ud">
          <detlist size="6" type="DETS" nc0="0" ne0="2" nstates="8" cutoff="1e-20">
                  <ci coeff="0.999768"  occ0="11000000"/>
                  <ci coeff="-0.015259" occ0="00010010"/>
                  <ci coeff="-0.010487" occ0="00110000"/>
                  <ci coeff="-0.008384" occ0="00001001"/>
                  <ci coeff="-0.006391" occ0="10010000"/>
                  <ci coeff="0.003147"  occ0="00000101"/>
          </detlist>
      </multideterminant>

(thanks to  Ye Luo's comment on GitHub)
Reply all
Reply to author
Forward
0 new messages