qmcpack icon indicating copy to clipboard operation
qmcpack copied to clipboard

Discrepancy Between QMCPACK-Converted CSF Coefficients and Manual Calculations

Open kyuuuuan opened this issue 7 months ago • 3 comments

Problem Description:

When dealing with the generation of CSFs from four unpaired electrons in single occupation, I manually calculated two CSFs (CSF5 and CSF6), as shown in Figure 1. The manual calculation was performed using a program detailed in the attached file (CG.txt). Then, the CSFs generated by GAMESS were converted into wfj.xml (Figure 2) using the QMCPACK convert tool. The coefficients in the resulting XML file exhibit sign discrepancies compared to the manual calculated results.

Questions:

  1. Does the QMCPACK convert tool apply any additional processing to the CSF coefficients from GAMESS?

2.Are there any known conversion rules or limitations that could lead to such coefficient discrepancies?

Image

Image

CG.txt

kyuuuuan avatar May 19 '25 14:05 kyuuuuan

Since no one has provided a quick answer I’ll add what I know by way of background:

First, inside QMCPACK there is no reprocessing or manipulation of determinant coefficients. It simply runs what is in the input XML/HDF5 for the wavefunction. This keeps the code simple and generating code neutral. Getting a consistent set of coefficients is therefore the responsibility of the conversion tools and generating codes. Unfortunately, the output formats for many of the latter are not well documented.

I don’t know of many current users of multideterminant GAMESS wavefunctions, but these are supported and at one point were well tested and also used in tutorials. Since GAMESS is not open source we don’t have it in CI the same way we do PySCF. Therefore, if you have not already, I would check the conversion of a couple of multideterminant calculations. Perhaps the non-CSF route is good but there are problems with CSFs?

prckent avatar Jun 04 '25 22:06 prckent

@anbenali any ideas here?

jtkrogel avatar Jul 02 '25 13:07 jtkrogel

Hello,

It depends on how you your CI coefficients were generated. Did you run a subsequent CI job using your MCSCF molecular orbitals as a guess (as advise here), or are these results based on an RHF guess? The GAMESS → QMCPACK parser looks for a line like:

CSF COEF OCCUPANCY

However, if you directly run a SCFTP=MCSCF job, you’ll get two such lines:

  • The first one corresponds to the initial guess,
  • The second one corresponds to the coefficients after the MCSCF job.

The parser retrieves the first occurrence and stops there.

So my guess is that you're getting the initial guess instead of the final MCSCF coefficients. One way to check is to simply look inside your file and compare.

NastaMauger avatar Jul 03 '25 04:07 NastaMauger