Firefly and PC GAMESS-related discussion club

Learn how to ask questions correctly

Re: State-averaged CASSCF.

Alex Granovsky

Dear Pasha,

sorry for delayed reply.

XMCQDPT is one of the possible approaches to the Multi-State
Multi-Reference Perturbation Theory (MS-MR-PT); as such,
it is by no way the black-box method.

I'll try to provide some details on the general, most reliable and
successful procedure here. This procedure itself is based on our
experience and expertise in MS-MR-PT calculations over last decade
or so.

Assume you are interested in three electronic transitions from
the ground state. This means you need to achieve high-quality,
uniform description of four lowest-lying electronic states within
MS-MR-PT procedure.

The first step here is to use state-averaged CASSCF withing reasonably
chosen active space with averaging over four states, preferably with
equal weights. As described in the manual, the weights for SA-CASSCF
are specified in either $det (ALDET code) or $gugdm2 (GUGA code)
groups using wstate array.

The second step is to perform XMCQDPT2 calculations. The good idea
would be to include some additional states in the model space and
effective Hamiltonian, e.g., say 10 states as you did (using either
NSTATE keyword or KSTATE array). The XMCQDPT2 procedure itself
requires two additional arrays specifying weights of states in
computing state-averaged density matrices at various stages of
computations, namely, the wstate and avecoe arrays. The program's
defaults are to set both wstate and avecoe to all 1.0 for each
state entering effective Hamiltonian. However, this is not
a very reasonable approach
, at least for effective Hamiltonians
of large dimension. Indeed, averaging of densities over too large
number of CASCI/CASSCF states tends to kill the individuality
of each particular state. Due to this, I'd rather recommend you
to set wstate and avecoe to 1,1,1,1,0,0,0... as you need very
accurate description of only four lowest-lying states,
while it is quite permissible to describe other states less

Note you need to explicitly specify each element of wstate and avecoe
arrays, so for ten states you need to input all ten elements:

 wstate(1)=1,1,1,1,0,0,0,0,0,0 avecoe(1)=1,1,1,1,0,0,0,0,0,0

However, there is useful "minus zero" trick you can use. Namely,
the following input:  


sets all elements of wstate array to zero starting from its fifth
element. This trick is the general feature of Firefly that can be
used inputting any array data.

The third, most important step, is to examine the results of XMCQDPT2
calculations. There are two things you must look at - the energies
of low-lying states and the corresponding eigenvectors of effective
Hamiltonian. The latter give expansion coefficients for projection
of XMCQDPT2 excited states onto model space in the terms of the
original CASCI/CASSCF states. If there exist any additional  
low-lying XMCQDPT2 states which are close to the fourth state
(i.e, to the original number of states of interest), you may need to
consider performing additional calculations in order to clarify
the true ordering of states (remember, the initial setup likely do
not provide very accurate, uniform description of all states). The
second, even more important thing to do, is to examine eigenvectors
of the effective Hamiltonian corresponding to the states of interest
and states that are close to them. The point is that the order of
states in MS-MR-PT calculations is typically not the same as in the
underlying CASSCF calculations. Moreover, higher CASSCF roots quite
often significantly contribute to the XMCQDPT2 states of interest.
On the other hand, exactly as any other perturbation theory, XMCQDPT2
relies on the correct, reasonable description of zero-order states
(ie., CASSCF states) already at CASSCF level.

Let us assume that in your particular calculations fourth XMCQDPT2
state is primary formed by the fifth CASSCF state, while the fourth
one corresponds to the high-energy state. In this situation, you have
two alternatives to explore. The first one is to perform SA-CASSCF
with averaging over five states, and then repeat XMCQDPT2 calculations
once again, including all important CASSCF states in state averaging
procedure (ie., wstate and avecoe arrays). The second one is to try
obtaining the solution of SA-CASSCF procedure with the correct
ordering of zero-order states. Indeed, SA-CASSCF typically has lots
of different solutions corresponding to different order of CASCI
states. As to initial MOs, you can use already converged SA-CASSCF
MOs. However, you need to specify different wstate array in $det
group, i.e., wstate(1)=1,1,1,0,1 You also need to to activate
state tracking in $mcscf group:

 $mcscf ntrack=5 $end

This will track five lowest CI roots. Naturally, you'll need
to request more states in CI diagonalization routine (at least
five states of the same multiplicity or more). There are good
chances that during orbital optimization inside MCSCF code,
the fifth CI root will become the fourth one - and this is
why the state tracking is important. However, it is always good
idea to look at CI expansion coefficients at the end of MCSCF
calculations to verify this. You even may want to perform
a separate CASCI energy calculation using natural orbitals
of newly converged CASSCF calculation as MOs (scftyp=none
cityp=aldet or guga, guess=moread).

For any of two alternatives above, you will need to perform XMCQDPT2
calculations again, using new CASSCF MOs (as well as updated wstate
and avecoe arrays for the first alternative).

The procedure above can be repeated several times upon kind of
convergence will be reached, i.e., all important zero-order states
will be included into SA-CASSCF averaging procedure, while all
important XMCQDPT2 states will be described in the terms of desired
CASCI roots, with only minor contributions (say 0.1 to 0.05 or less)
due to higher energy CASCI roots.

This looks really cumbersome and complicated; however, with some
experience it is typically enough to perform only one additional
iteration. Moreover, if  you are lucky, there will not be the need
in additional iterations at all.

Hope this helps.

Best regards,
Alex Granovsky

On Tue Dec 7 '10 9:03am, Solntsev Pasha wrote
>Dear, community.

>I have a problem with understanding of model for MC-XQDPT2 job.

>We have compound with 3 electronic transitions (exp). I performed MC-XQDPT2 job for 10 states (kstate(1)=1,1,1....).

>If i understand correctly, if we talk about 3 absorption bands, then we are talking about transitions from ground state (1st) to nth. Am i right?

>From MC-XQDPT2 i obtained following energies (wstate - default):
> -----------------------------------------------------------------------
>   STATE                       1ST ORDER                       2ND ORDER
>     1     E(MCSCF)=    -3822.2239751504     E(MP2)=    -3827.2563203706
>     2     E(MCSCF)=    -3821.8825924691     E(MP2)=    -3827.1924662365
>     3     E(MCSCF)=    -3821.8450314052     E(MP2)=    -3827.1286886480
>     4     E(MCSCF)=    -3821.8194541416     E(MP2)=    -3827.1261214412
>     5     E(MCSCF)=    -3821.7122169154     E(MP2)=    -3827.1091669798
>     6     E(MCSCF)=    -3821.7030745227     E(MP2)=    -3827.0862871147
>     7     E(MCSCF)=    -3821.6630404126     E(MP2)=    -3827.0445571444
>     8     E(MCSCF)=    -3821.6562098927     E(MP2)=    -3826.9904944801
>     9     E(MCSCF)=    -3821.6493290034     E(MP2)=    -3826.9566496369
>    10     E(MCSCF)=    -3821.6450170783     E(MP2)=    -3826.9105089003

>It looks like 3th and 4th states located very closely one to another .
>And some another states too. I think i should use state-averaged MC-XQDPT2 . But i don't understand exactly, how should i setup wstate array: WSTATE(1)=1,0,1,1,0,0,0,0,0,0 or if i want to include 8th and 9th states too. Maybe it is not correct, but i think we need average over 3th and 4th, 8th and 9th states separately for every pair of states. Different arrays?  How can we determine coefficients for weights?

>The default values for WSTATE are: 1,0,0,0,....
>But from output file i saw:
> -----------------------------------------------------------------------
>                   1            2            3            4            5
>     1  1.000000D+00 1.000000D+00 1.000000D+00 1.000000D+00 1.000000D+00
> -----------------------------------------------------------------------
>                   6            7            8            9           10
>     1  1.000000D+00 1.000000D+00 1.000000D+00 1.000000D+00 1.000000D+00
> -----------------------------------------------------------------------

>From that i understand what weight of every state that i am looking for is 1. (But not 0 for states .ne. 1)

>Thank you everybody for you help.
>Best, PS.

[ This message was edited on Sat Dec 11 '10 at 8:19pm by the author ]

[ Previous ] [ Next ] [ Index ]           Sat Dec 11 '10 8:19pm
[ Reply ] [ Edit ] [ Delete ]           This message read 4721 times