NAME¶
cscf - solves the Hartree-Fock equations
DESCRIPTION¶
The program
cscf carries out the iterative procedure to solve the
Hartree-Fock equations.
This program is restricted to D2h symmetry and its subgroups and the orbital
occupations are required to be integers. Thus, certain pure angular momentum
states derived from partial occupation of degenerate orbitals cannot be
obtained with the present codes. For example, the 2PIu (doublet PI u) state of
linear O-N-O derived from the lowest energy linear (pi u)1 configuration may
only be computed as the 2B2u (doublet B2u) or 2B3u (doublet B 3u) component of
the 2PIu (doublet PI u) state, and the resulting spatial wavefunction will not
have PI symmetry. In a certain sense, however, this is desirable, as the
energy will be a continuous function of the bending angle. Calculating the
energy of bent configurations as 2B2u (doublet B 2u) or 2B3u (doublet B 3u)
and doing a pure 2PIu (doublet PI u) state at linear geometries results in a
pronounced discontinuity.
For the most part, triplet states resulting from double occupation of a doubly
degenerate orbital, such as the 3A2 (triplet A 2) state resulting from the
(e')2 or (e")2 configurations in D3h symmetry, or the 3SIGMAg (triplet
SIGMA g) state of a (pi g)2 or (pi u)2 configuration in Dinfh (D infinity h)
symmetry, will have the proper spatial symetry. The singlet states resulting
from these same electronic configurations are inherently multiconfiguration
and, as such, are not well represented by single configuration wavefunctions.
REFERENCES¶
PK-file method:
- 1.
- R. C. Raffenetti, Chem. Phys. Lett. 20 (1973) 335.
Molecular symmetry and closed shell HF calculations:
- 1.
- M.Dupuis, and H.F.King, Int. J. Quant. Chem. 11 (1977)
613.
DIIS for closed shell:
- 1.
- P. Pulay, Chem. Phys. Lett. 73 (1980) 393.
- 2.
- P. Pulay, J. Comp. Chem. 3 (1982) 556.
Coupling coefficients (alpha and beta) for open shell:
- 1.
- C. C. J. Roothaan, Rev. Mod. Phys. 32 (1960) 179.
Damping:
- 1.
- D. R. Hartree, "The Calculation of Atomic
Structures" (Wiley: New York) 1957.
- 2.
- M. C. Zerner and M. Hehenberger, Chem. Phys. Lett. 62
(1979) 550.
Level shifting:
- 1.
- V. R. Saunders and I. H. Hillier, Int. J. Quant. Chem. 7
(1973) 699.
CONVERGING CSCF¶
For difficult open shell cases, it is recommended that an appropriate closed
shell calculation be run first (add or remove an extra electron) and that this
SCF vector then be used as a guess for the desired open shell wavefunction.
For TCSCF cases, it is always wise to run a closed shell (or perhaps the
appropriate triplet) SCF first and then use this as a guess for the TCSCF.
For open shell systems, a level shift value of 0.5 to 3.0 is recommended. Start
with a high value (2.0 - 3.0) for the first SCF calculation and then reduce it
(to 0.5 - 1.0) for subsequent runs which use a converged SCF vector as the
starting point.
It is extremely important to note that this version of the code no longer
supports
OPENTYPE. One must use the new keywords REFERENCE
and MULTP to specify the type of SCF needed.
The
cscf program searches through the default keyword path (first
SCF and then
DEFAULT) for the following keywords:
- LABEL = string
- This is a character string to be included in the output.
This string is not used by the program. There is no default.
- WFN = string
- This is the type of wavefunction which is ultimately
desired. The default is SCF.
- OPENTYPE is no longer
supported
-
- REFERENCE = string
- This specifies the type of SCF calculation one wants to do.
It can be one of RHF (for a closed shell singlet), ROHF (for
a restricted open shell calculation), UHF (for an unrestricted open
shell calculation), TWOCON (for a two configuration singlet), or
SPECIAL. If SPECIAL is given, then alpha and beta coupling
coefficients must be given with the ALPHA and BETA keywords.
The default is RHF.
- MULTP= integer
- Specifies the multiplicity of the molecule. Default is
singlet.
- CHARGE= integer
- Specifies the charge of the molecule. Defauly is 0.
- DOCC = integer_vector
- This gives the number of doubly occupied orbitals in each
irreducible representation. There is no default. If this is not given,
CSCF will attempt to guess at the occupations using the core hamiltonian.
- SOCC = integer_vector
- This gives the number of singly occupied orbitals in each
irreducible representation. There is no default.
- DERTYPE = string
- This specifies the order of derivative that is to
eventually be done. It is used by the scf program to determine if
certain files are to be written and it is also used to determine the
default convergence of the wavefunction. The default is FIRST.
- MAXITER = integer
- This gives the maximum number of iterations. The default is
40.
- CONVERGENCE = integer
- This specifies how tightly the wavefunction will be
converged. Convergence is determined by comparing the RMS change in the
density matrix ("delta P") to the given value. The convergence
criterion is 10**(- integer). The default is 7 if both DERTYPE =
NONE and WFN = SCF are given and 10 otherwise.
- LEVELSHIFT = real
- This specifies the level shift. The default is 1.
- DIRECT = boolean
- Specifies whether to do the SCF calculation with an
integral direct technique. The default is false.
- PRINT_MOS = boolean
- Specifies whether to print the molecular orbitals or not.
The default is false.
There are also a large number of less commonly used input parameters. If you do
not understand what the following options mean, then make sure that they do
not appear in your input. The defaults will work in the overwhelming majority
of cases. These are specified with the following keywords:
- DELETE_INTS = boolean
- Integrals files will be erased if WFN = SCF and
DERTYPE = FIRST or DERTYPE = NONE. If you wish to keep
integrals files then set DELETE_INTS = false. The default is true.
- REORDER = string
- The parameter controls reordering of molecular orbitals. If
set to BEFORE then the guess orbitals from checkpoint file will be
reordered. If set to AFTER, converged orbitals will be reordered
before being written to the checkpoint file. In either case MOORDER
parameter must be given to specify the reordering map. The default is not
to reorder orbitals.
- MOORDER = integer_vector
- This specifies a molecular orbital reordering vector. It
will only be used if REORDER is set. This vector maps every orbital
to its new index, e.g. MOORDER = (0 2 1) specifies that after
reordering orbitals 1 and 2 will be swapped. The rank of this vector is
the same as the number of MOs. The indices are in Pitzer order (ordered by
symmetry, then by energy within each symmetry block), base-0. CSCF will
likely fail if the given MOORDER mixes orbitals from different irreps.
There is no default.
- ALPHA = real_vector
- If OPENTYPE = SPECIAL, then this parameter gives the
alpha coupling coefficients. The number of elements in this vector is
MM(MM+1)/2, where MM is the number of irreducible representations
containing singly occupied molecular orbitals. There is no default.
- BETA = real_vector
- If OPENTYPE = SPECIAL, then this parameter gives the
beta coupling coefficients. The number of elements in this vector is
MM(MM+1)/2, where MM is the number of irreducible representations
containing singly occupied molecular orbitals. There is no default.
- GUESS = string
- This option determines the type of initial guess at the
eigenvector CSCF will use. The only valid option at the moment are : (1)
GUESS = CORE, which causes it to use core Hamiltonian eigenvector
to start the calculation; (2) GUESS = AUTO which results in an
attempt to use the MO vector in the checkpoint file, or resorts to core
guess if there is no eigenvector in that file. The default if AUTO.
- IPRINT = integer
- This is a print option. The default is 0.
- MO_OUT = boolean
- Prints out the orbitals with symmetry and occupations at
the end of the calculation. Default is true.
- ROTATE = boolean
- The molecular orbitals will not be rotated if this is
false. The rotation only affects the virtual orbitals for open shell
systems. This parameter must be true for correlated gradients and it must
be false for second and higher derivatives. The default is false if WFN
= SCF and true otherwise.
- CHECK_ROT = boolean
- Check the molecular orbital rotation described above to
ensure that no columns of the SCF eigenvector matrix are swapped by the
rotation. Has no effect if ROTATE = false. The default is true.
- CHECK_MO_ORTHOGONALITY = boolean
- Check if the molecular orbitals are orthonormal. Useful for
debugging only. The default is false.
- DIIS = boolean
- This determines whether diis will be used. The default is
true.
- DIISSTART = integer
- This gives the first iteration for which DIIS will be used.
The default is 0.
- NDIIS = integer
- This gives the number of error matrices to use in the diis
procedure. The default is 6 for closed shell, 4 for open shell, and 3 for
tcscf.
- DIISDAMP = real
- This gives the damping factor for the diis procedure. The
default is 0.0 for closed shell, 0.02 for open shell, and 0.01 for tcscf.
- INCR = real
- This is used in tcscf to determine how often the ci
coefficients are recalculated. A small number (~0.25) will cause them to
be recalculated nearly every scf iteration. The default is 0.25.
- DYN_ACC = boolean
- When performing direct scf this specifies whether dynamic
integral accuracy cutoffs will be used. Default is true (use dynamic
cutoffs). Initial iterations are performed with integrals accurate to six
digits. After density is converged to 10^-5 or 30 iterations are
completed, full integral accuracy is used. If scf convergence problems are
experienced disabling dynamic cutoffs by setting this variable to false
might help.
- ORTHOG_ONLY = boolean
- Sometimes in CASSCF or other non-HF/KS schemes for orbital
optimization, it is useful to reorthogonalize MO's from other geometries
for the current geometry so they can be used as an initial guess for the
new MO's. This can be performed by running CSCF with ORTHOG_ONLY =
true. After the orbitals are orthogonalized, the program will quit
without performing an SCF computation. This keyword will be ignored if
there are no previous orbitals in the checkpoint file. Defaults to
true if WFN = DETCAS.