Issues with Cartesian Spherical Harmonics between QMCPACK and pyscf
- Dominant language
- C++
- Stars
- 403
- Forks
- 154
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 90
Description
For solids, it appears as though the default basis set type in pyscf is standard spherical harmonics for the angular piece of the LCAO basis. Currently, the pyscf->QMCPACK converter can handle this, and I can match Hartree-Fock energies between the two codes. However, when I force pyscf to use the cartesian spherical harmonic basis instead, I converge to a similar energy as before, but after converting to QMCPACK, the VMC energy and variance are pretty large, indicating to me that there's probably something wrong in the pyscf->QMCPACK conversion step.
The reason for wanting to use the cartesian basis is that derivatives w.r.t. cartesian coordinates are trivial in this basis, whereas they are very very much not in the angular basis. I think it's a waste of time to implement force/BF relevant derivatives for the angular basis.
I see two possible solutions:
1.) Figure out the bug in the converter.
2.) Keep everything in the plain spherical harmonic basis on the pyscf side, and then do the basis change to cartesian coordinates internally in QMCPACK.
Contributor guide
Research direction
Start by reproducing the pyscf-to-QMCPACK conversion with PySCF's Cartesian basis and compare the resulting VMC energy and variance with the spherical-basis case. Determine whether the converter or QMCPACK's internal basis handling is responsible; done means Cartesian-basis results agree with the expected Hartree-Fock and VMC behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, python
- Domain
- hpc
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100