$GMCPT group        (relevant if CISTEP=GMCCI in $MCSCF)
                         (relevant if MRPT=GMCPT in $MRMP)
 
   This group specifies the determinants to be used in a
general MCSCF wavefunction.  Additional inputs give the
necessary information to compute a 2nd order perturbation
energy correction to the MCSCF energy of such a MCSCF
reference, by choosing MPLEVL=2 in $CONTRL and MRPT=GMCPT.
 
   The PT is of quasidegenerate type, in which several
MCSCF states can be perturbed simultaneously.  After 2nd
order correction to both its diagonal and off-diagonal
matrix elements, this model Hamiltonian is diagonalized to
give the GMC-QDPT energies.  The diagonalization also
yields some information about the remixing of the reference
states at 2nd order.  Of course, the program can also be
used to obtain the 2nd order correction to the energy of
just one state.
 
   GMC-QDPT is therefore analogous to the two equivalent
MCQDPT programs (MRPT=MCQDPT or DETMRPT) for CAS-type
references, but allows more general types of MCSCF
reference.  Compared to those programs, there are also
choices for the 0-th order states, for the orbital
energies, and for the treatment of external excitations.
 
   The letters GMCPT should be understood as standing for
GMC-QDPT, and have been shortened only because of the
constraints on input group names to 6 or fewer letters.
 
   At the present time, this program does not support
EXETYP=CHECK.  It is enabled for parallel execution.
 
 
   1. data to specify active space and electronic state:
 
NMOFZC: number of frozen core orbitals, during the PT
        the shape of these orbitals will be optimized in
        the MCSCF stage, so they are "frozen" in the sense
        of not being correlated in the PT.  The default
        is the number of chemical core orbitals.
 
NMODOC: number of orbitals restricted to double occupancy
        during MCSCF, but which are correlated in the PT
        calculation.  In other words, the filled valence
        orbitals. (no default).  (It is possible to enter a
        different keyword NMOCOR which is the total number
        of doubly occupied orbitals, and NMOFZC.  In this
        case the program will obtain NMODOC by subtraction,
        namely NMODOC = NMOCOR - NMOFZC).
 
NMOACT: number of active orbitals in the MCSCF (no default)
 
NMOFZV: number of virtual orbitals to be omitted from the
        PT step.  The default is 0, retaining all virtuals.
 
NELACT: number of active electrons.  Since the default is
        computed from the total number of electrons given
        in $DATA and $CONTRL's ICHARG, minus 2*NMOFZC minus
        2*NMODOC, there is little reason to input this.
 
MULT:   multiplicity of the state, with the default being
        taken from MULT in $CONTRL.
 
SZ:     spin projection quantum number for determinants,
        default is (MULT-1)/2
 
STSYM:  The symmetry of the electronic state.  See $DET for
        possible values: use AP/APP in Cs, not primes.
        Default is the totally symmetric representation.
 
If you are treating a system with degenerate states in an
appropriate Abelian subgroup of the true group, up to three
STSYM values can be given, to specify all components of
that originally degenerate state.  For example,
     STSYM(1)=b1u,b2u,b3u
generates all P states for an atom running in the Abelian
subgroup D2h.
 
 
 
   2. data to specify the MCSCF CI (and PT's reference CI):
 
The type of general MCSCF reference is specified by REFTYP,
which can be MRX, ORMAS, or RAS:
 
REFTYP= MRX means multi-reference determinant list, plus
        excitations (default).  The determinants will be
        given by $PDET input, and the keywords NPDET and
        NEXCIT defined below are required.
 
REFTYP= RAS means the active space is divided into three
        subspaces, known as RAS1, RAS2, and RAS3.  Keywords
        MSTART and NEXCIT defined below are required.  For
        example, MSTART(1)=4,6,9 defines a RAS with three
        orbitals in the NMOFZC/NMODOC spaces, while the
        RAS1, RAS2, and RAS3 subspaces contain 2, 3, and
        NMOACT-5 orbitals.  It remains only to specify the
        excitation level NEXCIT between these spaces.
 
REFTYP= ORMAS defines even more general subspaces than RAS,
        and requires inputs NSPACE, MSTART, MINE, and MAXE.
        These have the same meaning as the $ORMAS keywords.
 
NPDET   is the number of parent determinants, to be given
        as NPDET lines in the $PDET input.  A value is
        required for REFTYP=MRX.
 
NEXCIT  is an excitation level.  A value is required for
        REFTYP=MRX or REFTYP=RAS.
 
NSPACE  is the number of subspaces into which the active
        space is divided.  Required for REFTYP=ORMAS.
 
MSTART  is an array telling the starting MO of each orbital
        space.  It is required for REFTYP=RAS and ORMAS.
 
MINE    is an array giving the minimum number of electrons
        occupying each subspace. Required for REFTYP=ORMAS.
 
MAXE    is an array giving the maximum number of electrons
        occupying each subspace. Required for REFTYP=ORMAS.
 
NSPACE, MSTART, MINE, and MAXE have the same meaning as in
the $ORMAS input.  See the 'how to do MCSCF/CI' section of
REFS.DOC, for help in understanding the power of the ORMAS
type of reference determinant list.
 
 
    3. data to define the reference CI states:
 
KSTATE  is an array of states to be used.  As an example,
        KSTATE(1)=0,1,0,1 means use states 2 and 4.  The
        default is the ground state, KSTATE(1)=1,0,0...
 
WSTATE  is a set of weights for each state.  The default
        is equal weight assigned to every state selected
        by KSTATE (WSTATE(1)=1.0, 1.0, 1.0, ...)
 
IROOT   specifies which state's energy should be saved for
        use in numerical gradient evaluation.  IROOT
        counts only for those states included by KSTATE, so
        KSTATE(1)=0,1,0,1 and IROOT=2 refers to the second
        root computed (4th overall).  Default: IROOT=1.
 
ISPINA  spin adaptation (default=0)
        0 means off, 1 means on (strictly), -1 means on
        (loosely).  Proper spin states are picked up
        automatically so this input is usually skipped.
        See NSOLUT in this context.
 
KNOSYM  a flag to turn off space symmetry use, i.e. STSYM.
        .FALSE. will ignore symmetry (default=.TRUE.)
 
KNOSPN  a flag to ignore spin symmetry, i.e. MULT.  Give
        as .FALSE. to ignore the spin (default=.TRUE.)
 
The next few influence the Davidson CI diagonalization, and
are quite similar to $MCQDPT keywords, so the description
here is terse.
 
NSOLUT  is the number of roots to be obtained.  If there
        are not enough states of the correct spin found in
        the first NSOLUT states to satisfy KSTATE/WSTATE,
        increase this parameter to find enough.
 
MXITER  is the maximum number of Davidson iterations to
        find the states (default=200)
 
THRCON  is the convergence criterion on the CI coefficient
        convergence (default= 1.0d-6)
 
THRENE  is a convergence criterion on the total energy of
        the states.  This is ignored if given as a negative
        number.  (default = -1.0d-12 Hartree)
 
MAXBAS  maximum expansion space size in the Davidson
        diagonalization subspace (default=100)
 
MDI     dimension of the initial guess subspace used to
        initiate the Davidson iterative CI solver.  See
        NHGSS in $DET for more information (default=300).
 
 
    4. data to define perturbation theory computation:
 
KXGMC   a flag to choose the 0-th order Hamiltonian used,
        when more than one state is included by KSTATE and
        WSTATE. KXGMC has no impact on single state runs.
        .TRUE.  selects Granovsky's XMCQDPT equations for
        the zero-th order Hamiltonian, see
          A.A.Granovsky, J.Chem.Phys. 134, 214113(2011).
        .FALSE. selects the original definition of the
        unperturbed Hamiltonian.  The default is .TRUE.
 
IWGT    selects wavefunction analysis (default=1)
        0 means off, 1 means on (external), -1 means on
        (internal orbitals).  This will compute the
        approximate weight of the MCSCF reference CI in
        the first order wavefunction.  It is therefore
        a very useful diagnostic for the quality of the
        calculation, as the MCSCF state should be a high
        percentage.  The formula for the decomposition is
        changed from the original CAS-type MCQDPT (REFWGT
        in $MCQDPT), see Miyajima, Watanabe, and Nakano's
        reference cited below.
        Select IWGT=0 if the fastest speed is desired.
 
KFORB   flag to request canonicalization (default=.TRUE.)
        Canonicalization within the core, virtual, and any
        rotationally invariant active subspaces yields a
        well defined theoretical model.  You would not
        normally turn this option off.
 
KROT    flag for treating (ij)->(ab) excitations
        .TRUE. means treating this type of term by the
        traditional MCQDPT formulae
        .FALSE. uses a MP2-type formula when this type of
        term arises between two identical determinants,
        while using zero otherwise.  This is thought to be
        better in terms of size-consistency.  (default)
        KROT has an impact on run times and on the
        numerical result.  See the paper cited below by
        Ebisuzaki, Watanabe, and Nakano for details.
 
THRWGT  threshold weight on the square of CI coefficients,
        for determinant selection.  Any determinants that
        are excluded from the reference list due to THRWGT
        are treated in the outer space of the perturbation.
        Give as a negative number to retain all of the
        determinants, even those of very little importance,
        in the reference of the perturbation treatment.
        The default is 1.0d-8.
 
KSZDOE  flag to use spin (Sz) dependent orbital energies.
        This variable is ignored for singlet state(s), or
        if SZ is chosen as 0.
        If .TRUE., alpha and beta orbital energies are not
        the same,
     Ealp(i) = h(i,i) + sum_kl { Dalp(k,l)[(ii|kl)-(il|ki)]
                                +Dbet(k,l) (ii|kl)}
     Ebet(i) = h(i,i) + sum_kl { Dbet(k,l)[(ii|kl)-(il|ki)]
                                +Dalp(k,l) (ii|kl)}
        If .FALSE. both sets use the energies
        E(i) = h(i,i) + sum_kl D(k,l)[(ii|kl)-1/2*(il|ki)]
             = [Ealp(i)+Ebet(i)]/2
        from the total density D(k,l)=Dalp(k,l)+Dbet(k,l)
        Default=.TRUE.
 
THRGEN  threshold on generator constants.  Default=1.0d-9
        Raising lowers accuracy but produces speedups.
        Lowering to 1.0d-12 should give full accuracy for
        benchmarking purposes.
 
THRHDE  threshold to ignore |/dE|, which is not a
        very effective screening, and its use is thus not
        recommended.  Default is 1.0 which should not
        screen anything.  Possible values are 0.05-0.10,
        since many |/dE| are around 0.02-0.03.
 
 
The next two deal with the so-called "intruder state
avoidance".  There are theoretical difficulties with either
one.  THRDE just drops terms, so the potential surface may
have small discontinuities.  EDSHFT always shifts results a
little bit, even if no small denominators (aka intruder
states) are actually present.  Clearly both are "band-
aids"!  Note that the first ISA technique is turned on, by
default.
 
THRDE   is a threshold to simply drop out any term whose
        energy denominator is too small.  The default for
        this is 0.005 Hartree.  Change to zero to turn this
        option off.
 
EDSHFT  is the same as the same keyword in $MCQDPT.  The
        denominators D are changed to D + EDSHFT/D.  Turn
        off THRDE if you select this option.  A reasonable
        value to try is 0.02, the default is 0.0.
 
     5. miscellaneous data
 
CEXCEN = string defining the units for the excitation
         energy.  Choose from these 4 strings (any case):
             eV (default), cm-1, Kcal/mol, KJ/mol
 
DDTFPT = a flag requesting the distributed data integral
         transformation be used, if the run is parallel.
         This option requires MEMDDI in $SYSTEM.  If there
         is not enough memory to allow this, turn this
         option off to use an alternate parallel
         transformation (DEFAULT=.TRUE.).
 
Note: There are additional technical parameters for $GMCPT,
documented only in the source code file gmcpt.src.
 
                        ----
 
In case it is desirable for the GMC-QDPT program to
reproduce results obtained by the DETMRPT/MCQDPT programs:
 
a) use a CAS-SCF reference in the MCSCF step
b) select REFTYP=ORMAS here, and enter NSPACE=1, giving
only one value for MSTART, MINE, MAXE
c) retain the entire CAS reference in the internal
determinant's perturbation space, THRWGT=-1.0
d) select the original external determinant space's
perturbation treatment, KROT=.FALSE.
e) use equal alpha/beta orbital energies, KSZDOE=.FALSE.
f) in multi-state mode, select KXGMC off, to reproduce
those program's 0-th order reference states
g) ensure ISA is turned off, THRDE= -1.0
h) perhaps adjust numerical parameters to full accuracy, to
increase the no. of decimals: THRGEN=1D-12, THRHDE=1D+10.
 
 
References for GMC-QDPT:
 
a) H.Nakano, R.Uchiyama, K.Hirao
   J.Comput.Chem. 23, 1166-1175(2002)
b) M.Miyajima, Y.Watanabe, H.Nakano
   J.Chem.Phys. 124, 044101/1-9(2006)
c) R.Ebisuzaki, Y.Watanabe, H.Nakano
   Chem.Phys.Lett. 442, 164-169(2007)
 
The first paper introduced the theory, with further
developments including reference state weights given in the
second.  The present computer code is based on the
efficient formulation involving ionized intermediate
determinants, as described in the third paper.
 
 
 
333 lines are written.
Edited by Shiro KOSEKI on Tue May 17 15:19:38 2022.