Firefly and PC GAMESS-related discussion club

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

Re: a tutorial on how to select orbitals for active space using Firefly

Solntsev Pasha

Dear Valentin.
Sorry, but i guess Alex will not write tutorial you want to see. Instead we can direct you to read some additional info about MCSCF wave function and active space selection. Some part from GAMESS US manual:
"Procedures for the selection of configurations (which
amounts to choosing the number of active electrons and
active orbitals), for the two mathematical optimizations
just mentioned, ways to interpret the resulting MCSCF
wavefunction, and treatments for dynamical electron
correlation of MCSCF wavefunctions are the focus of a
review article:
    "The Construction and Interpretation
     of MCSCF wavefunctions"
        M.W.Schmidt and M.S.Gordon,  
        Annu.Rev.Phys.Chem. 49,233-266(1998)
One section of this article is devoted to the problem of
designing the correct active space to treat your problem.  "

some additional info from the manual:

"starting orbitals

   The first step is to partition the orbital space into
core, active, and external sets, in a manner which is
sensible for your chemical problem.  This is a bit of an
art, and the user is referred to the references quoted at
the end of this section.  Having decided what MCSCF to
perform, you now must consider the more pedantic problem of
what orbitals to begin the MCSCF calculation with.

   You should always start an MCSCF run with orbitals from
some other run, by means of GUESS=MOREAD.  Do not expect to
be able to use HUCKEL!  At the start of a MCSCF problem,
use orbitals from some appropriate converged SCF run.  A
realistic example of an MCSCF calculation is examples 8 and
9.  Once you get an MCSCF to converge, you can and should
use these MCSCF MOs at other nearby geometries (MOREAD will
apply an appropriate Schmidt orthogonalization).

   Starting from SCF orbitals can take a little bit of
care.  Most of the time (but not always) the orbitals you
want to correlate will be the highest occupied orbitals in
the SCF.  Fairly often, however, the correlating orbitals
you wish to use will not be the lowest unoccupied virtuals
of the SCF.  You will soon become familiar with NORDER=1 in
$GUESS, as reordering is needed in 50% or more cases.

   The occupied and especially the virtual canonical SCF
MOs are often spread out over regions of the molecule other
than "where the action is".  Orbitals which remedy this can
generated by two additional options at almost no CPU cost.

   One way to improve upon the SCF orbitals as starting
MOs is to generate valence virtual orbitals (VVOs).  These
are constructed by projection of internally stored atomic
core and valence orbitals onto the SCF orbitals, so by
construction, the resulting virtual orbitals are valence in
character.  See VVOS in $SCF.  An alternative choice, not
usually as good, are the modified virtual orbitals.  MVOs
are obtained by diagonalizing the Fock operator of a very
positive ion, within the virtual orbital space only. As
implemented in GAMESS, MVOs can be obtained at the end of
any RHF, ROHF, or GVB run by setting MVOQ in $SCF nonzero,
at the cost of a single SCF cycle.  Typically, we use
MVOQ=+6.  Generating MVOs does not change any of the
occupied SCF orbitals of the original neutral, but gives
more valence-like LUMOs.

   Another way to improve SCF starting orbitals is by a
partial localization of the occupied orbitals.  Typically
MCSCF active orbitals are concentrated in the part of the
molecule where bonds are breaking, etc.  Canonical SCF MOs
are normally more spread out.  By choosing LOCAL=BOYS along
with SYMLOC=.TRUE. in $LOCAL, you can get orbitals which
are localized, but still retain orbital symmetry to help
speed the MCSCF along.  In groups with an inversion center,
a SYMLOC Boys localization does not change the orbitals,
but you can instead use LOCAL=POP.  Localization tends to
order the orbitals fairly randomly, so be prepared to
reorder them appropriately.

   Pasting the virtuals from a MVOQ run onto the occupied
orbitals of a SYMLOC run (both can be done in the same SCF
computation) gives the best possible set of starting
orbitals.  If you also take the time to design your active
space carefully, select the appropriate starting orbitals
from this combined $VEC, and inspect your converged
results, you will be able to carry out MCSCF computations

   Convergence of MCSCF is by no means guaranteed.  Poor
convergence can invariably be traced back to either a poor
initial selection of orbitals, or poor design of the active
space.  The best advice is, before you even start:
   "Look at the orbitals."
   "Then, look at the orbitals again".
Later, if you have any trouble:
   "Look at the orbitals some more".
Few people are able to see the orbital shapes in the LCAO
matrix in a log file, and so need a visualization program.  
In particular, you should download a copy of MacMolPlt from
This runs on all popular desktop operating systems, MAC OS
X, Linux, and Windows, making it easy to see your orbital

   Even if you don't have any trouble, look at the
orbitals to see if they converged to what you expected, and
have reasonable occupation numbers.  It is particularly
useful to check the oriented localized MCSCF orbitals (see
the discussion of this in the section on localized orbitals
in this section for more information).  MCSCF is by no
means the sort of "black box" that RHF is these days, so
please look very carefully at your final results."

For me it is the same as integration. We can learn rules but we will never be experts without simple-to-hard exercises.

Good luck.


On Mon Oct 15 '12 7:49pm, Valentin Monev wrote
>Dear Alex,

>I would like to ask you to write a tutorial on how to select orbitals for active space using Firefly.
>Thank you in advance!

>Please include example input and output files for single reference and multi-reference, as well as state specific and state averaged scenarios, CASSCF as well as XMCQDPT2. How does one recognize that a problem needs to be treated by one of the above scenarios?
>Please comment on the input and output files in detail. e.g. the  text in your comments below needs to be expanded upon by pictures of pi- and sigma- orbitals, why are they relevant, how do you recognize a contaminant and when is an orbital free of contaminant, what is a mixed orbital, where are the occupation numbers to be found in the output, should the active space be as wide as possible or restricted...
> “My goal was to create pure pi-type active space for this system (although I see that some sigma orbitals are relevant here as well, however, it is outside of the current capabilities of FF to handle such a large active space). Thus, I visualized orbitals and picked up all the pi-type orbitals that were clearly of pi-type. I looked at the occupation numbers as well. Next, not all pi-type orbitals were good enough or free of contaminants. In this case, it is good idea to pick up several additional orbitals that are mixed but have contributions from the conjugated pi-space. This is why the "precas" calculations were necessary at all - the goal was to further "purify" orbitals and get good initial orbitals while reducing the number of orbitals to include into CAS by looking on the occupation numbers. As "precas" uses large active space, the calculations were not actually of CAS type but rather CISDTQ that is sufficient in most cases (at least sufficient for these purposes). Note you need to use GUGA CI for that purpose. After orbitals being additionally localized in "precas" calcs, and active space was truncated, the CAS calculations were performed using ALDET code.”
>I have attached a docx file containing snippets from several textbooks, as an introduction to the subject...

>Best regards,

[ Previous ] [ Next ] [ Index ]           Tue Oct 16 '12 1:28am
[ Reply ] [ Edit ] [ Delete ]           This message read 6636 times