Closed JangidBhavnesh closed 3 months ago
With an up-to-date PySCF backend, csf.FCISolver
should inherit the trans_rdm*
functions from direct_spin1.FCIBase
(here).
The arguments of these functions are (cibra, ciket, norb, nelec)
, where cibra
and ciket
must each be ONE (1) vector. There is as of yet no quick-and-dirty way to get the transition RDMs between the various states of a single state-averaged calculation with only one function call. The name trans_rdm12
has to be used for a different type of calculation in order for the mc.newton ()
SA-CASSCF algorithm to work (see below).
When doing SA(n)-CASSCF, the fcisolver member of the CASSCF instance is replaced with a state-averaged child class which overwrites trans_rdm12
(but not trans_rdm12s
, trans_rdm1
, or trans_rdm1s
) to produce the state-averaged transition density matrix, so that both cibra
and ciket
have to be a list of n CI vectors. To escape from this awkward redefinition:
fcisolver = mc.fcisolver.undo_state_average ()
# This is a badly named function: it does not change mc.fcisolver.
# Instead it returns a "view" of mc.fcisolver that undoes all of the
# state-average throat-clearing so that you can use the original
# member functions.
Thank you.
Is this functionality available?
I have glanced through the code, i didn't find it.