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

DETCI/ACI calculation in MCSCF_TWO_STEP #272

Open
huangm29 opened this issue Sep 21, 2021 · 1 comment
Open

DETCI/ACI calculation in MCSCF_TWO_STEP #272

huangm29 opened this issue Sep 21, 2021 · 1 comment

Comments

@huangm29
Copy link
Contributor

huangm29 commented Sep 21, 2021

I am running a GASSCF-DSRG calculation and I realized that MCSCF combined with DETCI used a much smaller R and E convergence even it is set to 1e-8. This is not the case in MCSCF combined with ACI. This makes a difference in MCSCF results where they should do the exact same thing.

Also, it seems there is a bug in DETCI starting step 6 where the two degenerate states are no longer degenerate for some reason.

Is this designed to be like this? This looks like a bug.

The input of my DETCI calculation

import forte
memory 50gb

molecule co{
 C     0.000000     0.000000     0.567636
 O     0.000000     0.000000    -0.567636
}

set basis cc-pvqz

set {
scf_type            pk
reference           rohf
e_convergence       8
d_convergence       8
}

set forte {
MINAO_BASIS cc-pvtz-minao
job_type            none
avas                true
avas_diagonalize    true
avas_sigma  0.98
subspace ["C(1s)","C(2s)","C(2p)","O(1s)","O(2s)","O(2p)"]
}

Ezero, wfn = energy('forte', return_wfn=True)

set forte {
    avas false
  avas_diagonalize false
  ms 0.0
  multiplicity 1
  root_sym 0
  sci_enforce_spin_complete true
  spin_project_full         true 
  job_type              mcscf_two_step
  active_space_solver   detci
  active_ref_type       gas
# one_cycle             true
  rotate_mos         [1,1,2]
  gas1               [1,0,0,0]
  gas2               [5,0,2,2]
  avg_state          [[0,1,1],[2,1,1],[3,1,1]]
  gas1max            [2,1,1]
  avg_weight         [[0],[1],[1]]
  casscf_active_frozen_orbital [0]
  casscf_ci_solver      detci
  e_convergence         8  # energy convergence of the FCI iterations
  r_convergence         8  # residual convergence of the FCI iterations
  casscf_e_convergence  8  # energy convergence of the MCSCF iterations
  casscf_g_convergence  6  # gradient convergence of the MCSCF iterations
  casscf_diis_start     0 
}
Egasscf, wfn_gasscf = energy('forte', return_wfn = True, ref_wfn=wfn)

set forte {
  job_type newdriver
  rotate_mos []
  correlation_solver sa-mrdsrg
  corr_level pt2
  calc_type sa
  transition_dipoles true
}
edsrg = energy('forte', ref_wfn = wfn_gasscf)

The outputs are attached for both DETCI and ACI.

detci_mcscf.txt
aci_mcscf.txt

@lcyyork
Copy link
Contributor

lcyyork commented Sep 22, 2021

Yes, it is a bug of using DETCI in MCSCF_2STEP. The MCSCF_2STEP is trying to read the previous DETCI results as starting guess for Davidson-Liu. I thought I turned it off in the master because the procedure is not yet working.

What I did is simple. The DL solver just use the wave functions from the previous orbital optimization step. This means that the DL guess size is equal to the number of roots.

I am uncertain why it is not working. Perhaps it is the phase of orbital or CI is not fixed. It could also be the guess size now becomes too small. A better approach is probably copying the wave functions from the previous step to the current set of guesses and then orthogonalizing the guesses against the old wave functions.

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

No branches or pull requests

2 participants