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

Add initial orbital guess for DMRG CI/SCF #416

Merged
merged 12 commits into from
Nov 2, 2024

Conversation

lcyyork
Copy link
Contributor

@lcyyork lcyyork commented Sep 24, 2024

Description

This PR adds DMRG initial orbitals based on localization (active space only) + reordering from Fiedler vector, which is controlled by keyword DMRG_REORDER_INIT_ORBS. This reordering appears effective to pseudo-1D molecules (see test case dmrg-ci-2). For less obvious molecules like N2 or Cr2, this option should be disabled and orbitals should be adjusted based on orbital characters (σ, σ*, π, π*, δ, δ*, ...). This reordering is also performed only once when entering Forte, which seems to be enough to have a good DMRG-SCF results for Cr2 and acene.

A test case (dmrg-ci-2) on H20 chain is added to test the effect of various orbital localization schemes and Fiedler reordering. I leave dmrg-ci-1 to the test case of PR #413.

Other changes that I considered to be minor includes:

  • The Cholesky orbitals are added directly inside Localize such that CholeskyLocal is removed.

  • I modified proc/orbital_helpers.py, although it is subject to reallocation to somewhere else in the future.

  • The infamous die_if_not_converged is reintroduced to ActiveSpaceSolver and ActiveSpaceMethod to speed up CI of MCSCF.

  • Improve printing for permanent dipole in ActiveSpaceSolver.

User Notes

  • Orbital localization and Fiedler reordering for DMRG-CI.
  • Add Cholesky orbitals inside Localize class.

Checklist

  • Added/updated tests of new features and included a reference output.ref file
  • Removed comments in code and input files
  • Documented source code
  • Checked for redundant headers
  • Checked for consistency in the formatting of the output file
  • Documented new features in the manual
  • Ready to go!

@brianz98
Copy link
Contributor

@lcyyork is this PR now ready for review? Happy to take a look if it is!

@lcyyork
Copy link
Contributor Author

lcyyork commented Sep 27, 2024

@lcyyork is this PR now ready for review? Happy to take a look if it is!

I think it is. Maybe there will be other tweaks. But I am using it to run acene jobs.

@lcyyork lcyyork mentioned this pull request Oct 7, 2024
9 tasks
@fevangelista
Copy link
Member

I think this can be merged if tests pass. We need to do a follow up PR to move the DMRG-specific functions outside of the psi4 module. This function should go in the driver instead.

@fevangelista fevangelista merged commit b77f054 into evangelistalab:main Nov 2, 2024
1 check passed
@fevangelista fevangelista deleted the dmrg_init branch November 2, 2024 01:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants