Firefly and PC GAMESS-related discussion club

Learn how to ask questions correctly  
We are NATO-free zone

Re: numbering of states with ALDET-MCSCF, (X)MCQDPT2, and Conical Intersections

Alex Granovsky

Dear Bernhard,

I'm sorry for delay with my reply. I have been very busy last weeks.
Please see my comments below injected in your post.

Kind regards,

On Tue Apr 11 '17 3:38pm, Bernhard Dick wrote
>I am getting confused with how Firefly renumbers states. I am searching for a conical intersection between the states S0 and T1 of a system with an even number of electrons. I encounter problems with convergence of MCSCF unless I include also the next two states in the MCSCF. Therefore, i am using ALDET with

>NSTATE=4 WSTATE(1)=1,1,1,1  PURES=.F.

>to get state-averaged MCSCF. The states are calculated in the order S0, T1, S1, T2

>I start the search for conical intersection with these optimized orbitals, and set ISTATE=1 in $MCSCF and JSTATE=2 in $MCAVER. This should give me the crossing between S0/T1. Then I stop the calculation after NSTEP=100 (convergence is not obtained, but the energies do not change much, and the gap is 2-3 mHartree). Since Firefly at this point does not tell me the energies of all 4 states, I do an extra MCSCF with the last geometry and orbitals, and it turns out that the crossing obtained is between S1 and T2, i.e. between states 3 and 4!

>I used NTRACK=4 in $MCSCF and the group
>according to the manual.

Did you search your output file for word "remapping"? State tracking code could remap S0 to S1 and T1 to T2,
especially if geometry had been changed considerably during optimization.

>Finally, I want to calculate MCQDPT2 corrections at the final geometry. But when I add the group


>I do not get the corrections for the 4 states calculated with ALDET, but for the lowest 4 singlet states (although MULT was not set in $CONTRL). How can I do the MP2-correction for the same states that are calculated in the MCSCF?

XMCQDPT2 and MCQDPT2 code in Firefly works with CSFs,
so that only a single effective Hamiltonian is computed for the states
of multiplicity that was requested in $CONTRL or in $XMCQDPT input groups
using the MULT keyword. If given explicitly, the MULT keyword of
$XMCQDPT group overrides the default value of multiplicity specified
in $CONTRL group. The default value of MULT in $CONTRL is simply
MULT=1. This means that if MULT keyword is not specified explicitly
either in $CONTRL or in $XMCQDPT group, XMCQDPT code will compute
energies of singlet states.

This does not mean that you cannot compute energies of both singlet
and triplet states using a common set of orbitals that have been
optimized using ALDET CI code with pures=.f.

The simplest way to do this is to perform XMCQDPT computations
separately for singlet states (by setting MULT=1 in $XMCQDPT group)
and for triplet states (by setting MULT=3 in $XMCQDPT group).
These two computations must share the same set of settings for MCSCF
stage. For XMCQDPT2 stage, you will need to adjust NSTATE or KSTATE
input to include only the desired singlet (triplet) states into model

There exists a better way to perform these calculations using not only
a common set of orbitals but also a common set of orbital energies
and hence, the same partitioning of Hamiltonian into H0 and
perturbation. Again, you need to perform computations twice,
and you need to add the following keywords to your $mcscf group:

 $mcscf canonc=1 iforb=1 $end

In addition, you should remove kstate arrays from $XMCQDPT groups
and specify correct NSTATE instead. In your particular case,
NSTATE should be set to 2 in both calculations.

Finally, you need to specify the following keywords

 $xmcqdpt iforb(1)=-1,1,1 $end

in your input files.

This will do the work.

>with best regards,

[ This message was edited on Thu Apr 20 '17 at 11:58pm by the author ]

[ Previous ] [ Next ] [ Index ]           Thu Apr 20 '17 11:58pm
[ Reply ] [ Edit ] [ Delete ]           This message read 95 times