-
Notifications
You must be signed in to change notification settings - Fork 31
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
Conversation
@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. |
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. |
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 casedmrg-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 leavedmrg-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 thatCholeskyLocal
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 toActiveSpaceSolver
andActiveSpaceMethod
to speed up CI of MCSCF.Improve printing for permanent dipole in
ActiveSpaceSolver
.User Notes
Localize
class.Checklist
output.ref
file