Firefly and PC GAMESS-related discussion club

Learn how to ask questions correctly

Re^6: Memory for CASSCF(8,8)

Alex Granovsky

Dear Pasha,

sorry for the delayed reply.

>>The XMCQDPT code is very flexible so you can dramatically
>>reduce memory needs using additional keywords in the $xmcqdpt
>>group. Please let me know if you need some help with this.

>Sure. We used TD-DFT (w/ and w/o PCM + different potentials) but we were not able to reach acceptable agreement with  experiment. So i decided to use XMCQDPT2. The main problem is active space. From TD-DFT it looks like we need 7 occupied and 6 unoccupied orbitals. But i wanted to check a little bit higher active space CAS(16,16).

At present, there are two possible bottlenecks in XMCQDPT2 code
for very large active spaces. The first one is CASCI (routine MQCACI).
The second one are MQLMB1, MQLMB2, and MQLMB3 (the PT summation).

As to MQCACI, the general recipe is to change the MXBASE parameter
(the number of vectors in the diagonalization subspace) of
$xmcqdpt input group. The default for MXBASE is 300 and this is really
very large value. E.g., for 1,000,000 CSFs this would request at
least 600 MWords  (1,000,000*MXBASE*2 words)of RAM. Normally, you
can set it to be much smaller. Note that setting it to be too small
can seriously increase Wall clock time of CASCI steps, and that
MXBASE should be at least 2*Nstate or larger (this is checked by

As to MQLMB1, MQLMB2, and MQLMB3 steps, in the case you fall out of
memory here, you need to use one of CSF selection options.
This can be done e.g. as follows:

 $xmcqdpt iselct(1)=3,1000000 thrwgt=1d-8 $end

Here, iselct(1)=3,1000000 activates the third one of several
internally programmed  methods of CSFs selection
(the best one with FF 7.1.G) and imposes limit of 1000000 on the
maximum possible number of selected CSFs, while thrwgt=1d-8
sets the limit on the maximum squared CI coefficient of individual
CSFs to consider during selection process. The settings above
(thrwgt=1d-8) are typically very conservative i.e., the change
in the interstate transition energies will be negligibly small.
However, you can play with the second parameter of iselct(1)=
to fit into available memory.

Finally, one typically should use $mcqfit - the resolvent fitting
based approach, and it is wise to split job into CASSCF step and a
separate XMCQDPT step (setting inorb=1, or, better, inorb=2 in
$xmcqdpt). If you do so, it is good idea to specify $contrl wide=.t.
throughout all calculations to punch/read MOs with full precision.

> Also it is not clear for me. How many NSTATE should i use in $DET?
>Or situation with that parameter almost same like with active space and i need to try different number of NSTATE.

If you are interested in e.g., S0-S1 transition, it is good idea
to use state-averaged CASSCF with at least two singlet states.
Hence, you need to set $det nstate=2 or more (typically 3 or more
as there will be low-lying triplet roots, and you need to catch two
singlets); and to set wstate(1)=1,1 In $xmcqdpt, you need to specify
nstate to be at least 2 (alternatively, you can use kstate(1)=... syntax).
Sometimes, including additional excited states into
xmcqdpt procedure can significantly improve results, e.g., if the
coupling between low-lying and higher-energy CASSCF states is
large withing PT approach.

The molecular geometry itself can typically be either MP2 or DFT one.

Finally, there are several other threads on this forum on MCQDPT
and XMCQDPT that could be helpful to you.

>>Regardless on your initial question, it's very bad idea to set micit to 200.

>Hm.... I thought it this is a max number of micro-iterations and i can safety increase this parameter. I will try default mode.

It is usually safe but sometimes too large number of micro-iterations
can result in divergence rather than convergence.

Alex Granovsky

[ Previous ] [ Next ] [ Index ]           Mon Nov 29 '10 3:23pm
[ Reply ] [ Edit ] [ Delete ]           This message read 941 times