Questions about guess read

Dear users,

I’m trying to use SCF-optimized or orbital optimized molecular orbital to the following calculation.

In the case of SCF-optimized mo, I could use uhf mo to the following pbe calculation like below.

memory 250 mb

molecule fe
{
2 5
symmetry c1
fe 0 0 0
}
set basis cc-pVQZ
set reference uhf
set e_convergence 1e-8
set d_convergence 1e-8
energy (“scf”)

molecule fe
{
2 5
symmetry c1
fe 0 0 0
}
set basis cc-pVQZ
set reference uhf
set e_convergence 1e-8
set d_convergence 1e-8
set maxiter 0
set guess read
set fail_on_maxiter false
energy (“pbe”)

this input gives me desired value. But how can I use orbital-optimized mp2 or cc orbital (dfocc) like that?

What I mean is, I wonder if there is any way to set initial mo from not-scf converged mo.

Thank you for the help.

Any post-scf procedure will take in an incoming wavefunction like so:

omp2_e, omp2_wfn = energy('OMP2', return_wfn=True)
energy('CCSD', ref_wfn = omp2_wfn) 

SCF is a bit odd as it originates Wavefunctions rather than using them. We are still working on ways where we can pass Wavefunctions into SCF.

1 Like

Thank you for the quick answer.
What I understand is psi4 can use post-HF wfn to the other post-HF ref_wfn and scf_wfn can be used what I did like above one but cannot use post-HF wfn as ref_wfn of SCF and vice versa.
I wonder if I understood your comment right.

Yes, any post-SCF Wavefunction can take a Wavefunction (which can be anything). SCF can only be “passed” through the read/write mechanics right now.

Could I ask one more question? I obtained converged MO as two ways.

  1. from molden_write
  2. scf_e, scf_wfn = energy(‘scf’, return_wfn=True)
    scf_wfn.Ca().print_out()

In the case of SCF, method 1 and 2 gives same MO but omp2 didn’t.
I got dfocc.molden from molden_write and printed MO inside the output file from
omp2_e, omp2_wfn = energy(‘omp2’, return_wfn=True)
omp2_wfn.Ca().print_out()

In this case, which one is the converged MO???

OMP2 apparently writes natural orbitals with the molden_write flag. Ill open an issue that this is not documented correctly.

Hi, I’m wondering if pass Wavefunction into SCF is now updated.
Or, is there any way to use the Wavefunction (such as from CC or MBPT) manually?
What I want to do is generating DFT energies from the converged Wavefunction.

Not currently. Do you just want the energies without iterating? We can do that Python side.

Yes, that’s why I exactly want it. Could you teach me how to do that?

Hmm, can you take a try at it using ideas from:

and:

My bandwidth is a bit limited at the moment. Ill be back this weekend and might be able to help more then.