evangelistalab / forte

http://www.evangelistalab.org
GNU Lesser General Public License v3.0
54 stars 30 forks source link

Add initial orbital guess for DMRG CI/SCF #416

Closed lcyyork closed 1 month ago

lcyyork commented 2 months ago

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:

User Notes

Checklist

brianz98 commented 2 months ago

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

lcyyork commented 2 months ago

@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.

fevangelista commented 1 month ago

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.