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

LASCI Convergence issue within LASSI[r,nmax] #68

Closed
valay1 opened this issue Feb 19, 2024 · 7 comments
Closed

LASCI Convergence issue within LASSI[r,nmax] #68

valay1 opened this issue Feb 19, 2024 · 7 comments
Labels
convergence issues The code has no trouble identifying the right answer, but has trouble getting to it experimental method The issue concerns a highly experimental method with behavior that may not yet be well-defined

Comments

@valay1
Copy link

valay1 commented Feb 19, 2024

I am trying a (11e,20o) active space with AlFe2 node.
When I try a LASSI[1,1], I do not have LASCI convergence issues.
With LASCI[1,3], I see that LASCI converges fine, although I start getting some warnings around QR decomposition.
With a LASSI[1,5], I see that LASCI does not converge for many states and the following is observed.

  1. sigma is of the order of 1e-4
  2. Ground state CI vector for all fragments, and excited state CI vector for many fragments is converged.
  3. For some cases, excited state CI vector may switching signs but absolute value corresponding to each CSF is the converged, and the grad vector is of the order of 1e-2.

I am attaching an logfile of script that runs all of the three cases. The script is within the logfile.
Also, attaching HF and LASSCF converged orbitals and geometry.
For some reason, github is not accepting my .tgz of the folder, so here is the same folder on google drive: https://drive.google.com/file/d/1JzNCVKPk8kk79V_4-nq1AVDL37Fhjk48/view?usp=sharing.

@MatthewRHermes
Copy link
Owner

Does this also happen with the smaller AO basis set? Do you have those optimized orbitals lying around somewhere?

@valay1
Copy link
Author

valay1 commented Feb 19, 2024

I have a (11e,10o) optimized orbital with cc-pvdz(Al,Fe,O)+sto-3g(C,H). I decided not to push it further because I would atleast need triple zeta basis for a (11e,20o) active space. Additionally, all LASSI calculations were done on production quality basis set. That said, I am going to start a LASSI with (11e,10o) in a smaller basis and see if I can recreate a problem. I am going to share the orbitals with you through shared rcc - it's just easier.

@MatthewRHermes MatthewRHermes added bug Something isn't working convergence issues The code has no trouble identifying the right answer, but has trouble getting to it labels Feb 19, 2024
@MatthewRHermes
Copy link
Owner

For documentation: the reason this is both a bug and a convergence issue is that LASSI[r,1] (i.e., not passing the lroots kwarg) should have identical convergence behavior to LASSI[r,nmax] (passing the lroots kwarg) since only the ground states of each fragment in each rootspace talk to each other.

@MatthewRHermes MatthewRHermes added the experimental method The issue concerns a highly experimental method with behavior that may not yet be well-defined label Feb 20, 2024
@MatthewRHermes
Copy link
Owner

MatthewRHermes commented Feb 20, 2024

Two-step bandaid that appears to solve the problem:

  1. Run LASCI with nmax = 1 prior to the calculation:
las.lasci () # bandaid line
las.lasci (lroots)
  1. Increase the FCI "pspace" parameter to 300. The easiest way to do this is to set it globally in a pyscf config file:
> echo "fci_csf_FCI_pspace_size=300" >> ~/.pyscf_conf.py

Note that the pspace step carries the risk of invoking issue #48, if CASCI calculations in large active spaces are also being attempted. The required value of pspace is likely system-dependent so it's important to check all outputs and never assume that the calculation is converged.

Unfortunately, applying these bandaids changes the computed J from 2.29 cm^-1 to 1.94 cm^-1...

@MatthewRHermes MatthewRHermes removed the bug Something isn't working label Feb 20, 2024
@MatthewRHermes
Copy link
Owner

Update: it's not a bug; it's just that the interactions between fragments is unrelated to the problem. Every individual FCI kernel call is individually failing when highly-excited states are sought. As is usually the case with convergence failures, this seems to be related to the initial guess. In the current state of the code, no guess is ever constructed for more than the ground state of each fragment in each Hilbert space. I don't quite understand why the bandaids above appeared to work.

@MatthewRHermes
Copy link
Owner

MatthewRHermes commented Feb 20, 2024

Commit ae2dfda, which for the first time implements the construction of meaningful FCI guess vectors for multiple states in each fragment in each rootspace in the method object layer (as opposed to leaving it up to the generic davidson diagonalizer, which was implicitly taking care of this step until now), permits the test calculation to converge successfully without recourse to either bandaid above. The outcome J value is still 1.94 cm^-1, which means the bandaids were somehow guiding it to the right answer.

If convergence still fails in other cases, increasing pspace_size will always make it easer for FCI to find the correct eigenvectors, at the price of increased (possibly unsustainable, see issue #48) memory footprint.

@valay1
Copy link
Author

valay1 commented Mar 8, 2024

I can confirm that all my test cases now converge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
convergence issues The code has no trouble identifying the right answer, but has trouble getting to it experimental method The issue concerns a highly experimental method with behavior that may not yet be well-defined
Projects
None yet
Development

No branches or pull requests

2 participants