detci(1) | detci(1) |

- 1.
- Determinant Based Configuration Interaction Algorithms for Complete and Restricted Configuration Interaction Spaces, J. Olsen, B. O. Roos, P. Jorgensen, and H. J. Aa. Jensen, J. Chem. Phys. 89, 2185 (1988).

- 2.
- Passing the One-Billion Limit in Full Configuration-Interaction (FCI) Calculations, J. Olsen, P. Jorgensen, and J. Simons, Chem. Phys. Lett. 169, 463 (1990).

- 1.
- Compact Variational Wavefunctions Incorporating Limited Triple and Quadruple Excitations, C. D. Sherrill and H. F. Schaefer, J. Phys. Chem. 100, 6069-6075 (1996).

- 1.
- C. D. Sherrill, Computational Algorithms for Large-Scale
Full and Multi-Reference Configuration Interaction Wavefunctions, PhD
thesis, University of Georgia, Athens, GA, 1996.

input.dat - Input file file71 - Transformed one-electron integrals file72 - Transformed two-electron integrals

file50 - Diagonal of Hamiltonian file51 - CI vectors file52 - Sigma vectors file53 - D file (correction vectors)

output.dat - Output file

*-quiet*- This gives the same result as
**PRINT=0**.

*-o fname*- Gives the filename for the output file. Defaults to
output.dat.

*-e*- This option causes the total CI energy or energies to be
written to a file called detci_energies.dat.

*-c value*- Gives a looser convergence on the CI vector, useful in
DETCAS calculations. The value is a real number, not an integer as in
**CONVERGENCE**. The convergence used will be the looser of**value**and**CONVERGENCE**.

**CONVERGENCE =***integer*- Convergence desired on the CI vector. Convergence is
achieved when the RMS of the error in the CI vector is less than 10**(-n).
The default is 4 for energies and 7 for gradients. This is not the same CI
vector convergence criterion as found in GUGACI.

**DOCC =***integer_array*- This vector gives the number of doubly occupied orbitals in
each irrep. There is no default.

**SOCC =***integer_array*- This vector gives the number of singly occupied orbitals in
each irrep. There is no default.

**DIAG_METHOD =***string*- This specifies which method is to be used in diagonalizing
the Hamiltonian. The valid options are:
**RSP**, to form the entire H matrix and diagonalize using libciomr to obtain all eigenvalues (n.b. requires HUGE memory);**OLSEN**, to use Olsen's preconditioned inverse subspace method (1990);**MITRUSHENKOV**, to use a 2x2 Olsen/Davidson method; and**DAVIDSON**(or**SEM**) to use Liu's Simultaneous Expansion Method, which is identical to the Davidson method if only one root is to be found. There also exists a SEM debugging mode,**SEMTEST**. The**SEM**method is the most robust, but it also requires 2(N*M)+1 CI vectors on disk, where N is the maximum number of iterations and M is the number of roots.

**PRECONDITIONER =***string*- This specifies the type of preconditioner to use in the
selected diagonalization method. The valid options are:
**DAVIDSON**which approximates the Hamiltonian matrix by the diagonal elements;**H0BLOCK_INV**which uses an exact Hamiltonian of H0_BLOCKSIZE and explicitly inverts it;**GEN_DAVIDSON**which does a spectral decomposition of H0BLOCK;**ITER_INV**using an iterative approach to obtain the correction vector of H0BLOCK. The H0BLOCK_INV, GEN_DAVIDSON, and ITER_INV approaches are all formally equivalent but the ITER_INV is less computationally expensive. Default is**DAVIDSON**.

**REFERENCE =***string*- This specifies the type of reference function. This is RHF
or ROHF. UHF and TWOCON are not supported. For ROHF, a multiplicity of 1
implies an open-shell singlet. The program will run for open-shell
singlets, but it has not been properly adapted to use a correct
two-determinant reference in this case, so running with open-shell singlet
references is not advised except for full CI's.

**UPDATE =***string***DAVIDSON**employs the standard DAVIDSON update or correction vector formula, while**OLSEN**uses the OLSEN correction vector. Default is**DAVIDSON**.

**HD_OTF =***boolean*- If TRUE the diagonal elements of the Hamiltonian matrix are
computed on-the-fly, otherwise a diagonal element vector is written to a
separate file on disk. Default is TRUE.

**HD_AVE =***string***HD_EXACT**uses the exact diagonal energies which results in expansion vectors which break spin symmetry.**HD_KAVE**averages the diagonal energies over a spin-coupling set yielding spin pure expansion vectors.**ORB_ENER**employs the sum of orbital energy approximation giving spin pure expansion vectors but usually doubles the number of davidson iterations.**EVANGELISTI**uses the sums and differences of orbital energies with the SCF reference energy to produce spin pure expansion vectors.**LEININGER**approximation which subtracts the one-electron contribution from the orbital energies, multiplies by 0.5, and adds the one-electron contribution back in, producing spin pure expansion vectors and developed by yours truly and works as well as**EVANGELISTI**.

**NODFILE =***boolean*- Only possible if NUM_ROOTS = 1. Uses the last vector space
in the BVEC file to write scratch DVEC rather than using a separate DVEC
file.

**ENERGY_CONVERGENCE =***integer*- Convergence desired on the CI energy. The default is 6 for
single point energies and 8 for gradients or CASSCF.

**EX_LVL =***integer*- Excitation level for excitations into virtual orbitals
(default 2, i.e. CISD).

**VAL_EX_LVL =***integer*- Excitation level for references in orbitals of RAS II.
Defaults to zero.

**FCI =***boolean*- If this flag is set to
**TRUE**, then the storage of strings is simplified for a Full CI and the calculation requires less overhead. However, the final results should be identical to those when**FCI = FALSE**. May cause unpredictable results if**FCI = TRUE**but**EX_LVL**is not consistent with a Full CI.

**FROZEN_DOCC =***integer_array*- The number of lowest energy doubly occupied orbitals in
each irreducible representation from which there will be no excitations.
The Cotton ordering of the irredicible representations is used. The
default is the zero vector.

**FROZEN_UOCC =***integer_vector*- The number of highest energy unoccupied orbitals in each
irreducible representation into which there will be no excitations. The
default is the zero vector.

**FREEZE_CORE =***boolean*- This option determines whether the frozen core orbitals are
to be included implicitly (true) or explicitly (false). In the former
case, the energetic contributions from the frozen core orbitals are folded
into the one-electron integrals and into the "frozen core
energy" computed by the transformation program. The default is true.

**EXPORT_VECTOR =***boolean*- This specifies whether to store converged vector(s) at the
end of the run. The vector(s) is(are) stored in a transparent format such
that other programs can use it easily. The format is specified in
**src/lib/libqt/slaterdset.h**. The default is false.

**NUM_EXPORT =***integer*- If
**EXPORT_VECTOR**is set to true, the this determines the number of vectors that need to be exported at the end of the run. The default is 1.

**GUESS_VECTOR =***string*- This specifies which type of guess vector to use in the CI
iteration. Currently only used by the SEM iteration method. Accepted
values are
**UNIT**for a unit vector guess (**NUM_ROOTS**and**NUM_INIT_VECS**must both be 1);**H0_BLOCK**to use eigenvectors from the H0 BLOCK submatrix (default);**DFILE**to use**NUM_ROOTS**previously converged vectors in the D file; and**MP2**to use the MP2 wavefunction as a guess (not working at the moment).

**H0_BLOCKSIZE =***integer*- This parameter specifies the size of the "H0"
block of the Hamiltonian which is solved exactly. The n determinants with
the lowest SCF energy are selected, and a submatrix of the Hamiltonian is
formed using these determinants. This submatrix is used to accelerate
convergence of the CI iterations in the
**OLSEN**and**MITRUSHENKOV**iteration schemes, and also to find a good starting guess for the**SEM**method if**GUESS_VECTOR = H0_BLOCK**. Defaults to 40. Note that the program may change the given size for Ms=0 cases (**Ms0 = TRUE**) if it determines that the H0 block includes only one member of a pair of determinants related by time reversal symmetry. For very small block sizes, this could conceivably eliminate the entire H0 block; the program should print warnings if this occurs.

**H0_BLOCK_COUPLING_SIZE =***integer*- Parameters which specifies the size of the coupling block
within the generalized davidson preconditioner. Default value is 1000.

**MAX_DET =***integer*- Sets the maximum number of determinants; if the CI space is
larger than this, the program aborts. This option exists to ensure that
very large calculations are not run by accident. During the current
developmental phase, the default is 10000, but it will be raised before
long.

**MAXITER =***integer*- Maximum number of iterations to diagonalize the
Hamiltonian. Defaults to 12.

**Ms0 =***boolean*- If
**TRUE**, use the Ms=0 component of the state. Defaults to**TRUE**if closed-shell and to**FALSE**otherwise. Related to the**S**parameter.

**NPRINT =***integer*- This value specifies the number of determinants which will
be printed, along with their coefficients, in the list of most important
determinants in the final CI vector. The default is 20.

**NUM_ROOTS =***integer*- This value gives the number of roots which are to be
obtained from the secular equations. The default is one. If more than one
root is required, set
**DIAG_METHOD**to**SEM**(or, for very small cases,**RSP**or**SEMTEST**).

**NUM_INIT_VECS =***integer*- The number of initial vectors to use in the CI iterative
procedure. Defaults to the number of roots.

**OPDM =***boolean*- If
**TRUE**calculate the one-particle density matrix and make**OPDM_WRITE**default to**TRUE**. The default value of**OPDM**is**FALSE**.

**OPDM_FILE =***integer*- File (unit number) for writing the one-particle density
matrix if
**OPDM_WRITE = TRUE**. The default value is currently 73.

**OPDM_WRITE =***boolean*- Flag for whether or not to write the one-particle density
matrix to disk.

**OPDM_PRINT =***boolean*- Flag for whether or not to print the one-particle density
matrix.

**OPDM_DIAG =***boolean*- Flag for whether or not to diagonalize the one-particle
density matrix.

**WRTNOS =***boolean*- Flag for whether or not to write the CI natural orbitals to
PSIF_CHKPT.

**ORBSFILE =***integer*- File (unit number) for writing various CI natural orbitals.
The default value is 76.

**OPDM_AVE =***boolean*- Flag for whether or not to average the OPDM over several
roots in order to obtain a state-average one-particle density matrix. This
density matrix can be diagonalized to obtain the CI natural orbitals.

**ORBS_ROOT =***integer*- Flag for setting the root number for which CI natural
orbitals are written to PSIF_CHKPT. The default value is 1 (lowest root).

**PRINT =***integer*- This option determines the verbosity of the output. A value
of 1 or 2 specifies minimal printing, a value of 3 specifies verbose
printing. Values of 4 or 5 are used for debugging. Do not use level 5
unless the test case is very small (e.g. STO H2O CISD).

**ROOT =***integer*- The root to write out the two-particle density matrix for
(the one-particle density matrices are written for all roots). Useful for
a state-specific CASSCF or CI optimization on an excited state.

**S =***integer*- The value of the spin quantum number S is given by this
option. The default is 0 (singlet). The only thing this is actually used
for is determining the phase of the redundant half of the CI vector when
the Ms=0 component is used (i.e.,
**Ms0 = TRUE**). For cases where S is not an integer, this parameter need not be entered because such a state can't have an Ms=0 component.

**TPDM =***boolean*- If
**TRUE**calculate the two-particle density matrix and make**TPDM_WRITE**default to**TRUE**. The default value of**TPDM**is**FALSE**.

**TPDM_FILE =***integer*- File (unit number) for writing the two-particle density
matrix if
**TPDM_WRITE = TRUE**. The default value is currently 74.

**TPDM_WRITE =***boolean*- Flag for whether or not to write the two-particle density
matrix to disk.

**TPDM_PRINT =***boolean*- Flag for whether or not to print the two-particle density
matrix. Typically a very bad idea except for debugging small cases.

**BENDAZZOLI =***boolean*- Use some routines to calculate sigma based on the papers of
Bendazzoli et al. Seems to be slower and not worthwhile; may disappear
eventually. Works only for full CI and I don't remember if I could see how
their clever scheme might be extended to RAS in general.

**CALC_SSQ =***boolean*- If TRUE, calculate the expectation value of the S^2
operator for the final CI wavefunction for each root. In principle, DETCI
should yield S^2 eigenfunctions. The default is FALSE.

**COLLAPSE_SIZE***integer*- Gives the number of vectors to retain when the Davidson
subspace is collapsed (see
**MAXNVECT**below). If greater than one, the collapsed subspace retains the best estimate of the CI vector for the previous n iterations. Defaults to 1.

**FIRST_TMP_UNIT =***integer*- Gives the file (unit) number associated with the first
scratch file used by DETCI. Other scratch files are numbered consecutively
from this point, int the order H(diag), C, S, D. Each of these logical
files takes up a number of physical files specified by the even more
obscure input parameters
**NUM_HD_TMP_UNITS, NUM_C_TMP_UNITS,****NUM_S_TMP_UNITS, NUM_D_TMP_UNITS.**The user can also specify different starting points for each of these sets using the parameters**FIRST_HD_TMP_UNIT**and so forth. Splitting a file across several units may help avoid the size-of-integer problem in addressing large files that is present in DETCI and in PSI I/O libraries; but then again, I haven't tested it to see what happens. The first unit of each section is printed out under the heading FILES in the parameter output beginning the DETCI run.

**FZC =***boolean*- Determines whether the frozen core orbitals are treated as
truly frozen (i.e., absent entirely from calculation,
**FZC = TRUE**) or whether they are present but restricted to be doubly occupied (**FZC = FALSE**). In the GUGA CI program, this is the distinction between what it calls FZC and COR orbitals. Generally, the integrals for frozen core orbitals are not needed by DETCI but they may be needed for MCSCF or gradients.

**ICORE =***integer*- Specifies how to handle buffering of CI vectors. A value of
0 makes the program perform I/O one RAS subblock at a time; 1 uses entire
CI vectors at a time; and 2 uses one irrep block at a time. Values of 0 or
2 cause some inefficiency in the I/O (requiring multiple reads of the C
vector when constructing H in the iterative subspace if DIAG_METHOD =
SEM), but require less core memory.

**ISTOP =***boolean*- If
**TRUE**then DETCI will stop after string information is formed and before integrals are read. May eventually change to an integer so that the user can select from multiple stopping points.

**MAXNVECT =***integer*- Gives the maximum number of Davidson subspace vectors which
can be held on disk for the CI coefficient and sigma vectors. (There is
one H(diag) vector and the number of D vectors is equal to the number of
roots). When the number of vectors on disk reaches the value of
**MAXNVECT**, the Davidson subspace will be collapsed to**COLLAPSE_SIZE**vectors for each root. This is very helpful for saving disk space. Defaults to**MAXITER*****NUM_ROOTS**+**NUM_INIT_VECS**.

**MIXED =***boolean*- This determines whether "mixed" RAS II/RAS III
excitations are allowed into the CI space. This is useful for placing
additional constraints on a RAS CI.

**MIXED4 =***boolean*- This is similar to the MIXED keyword, but refers to
excitations into RAS IV.

**NUNITS =***integer*- Number of scratch files to be used in storing the C vectors
(and also for the sigma vectors).

**OEI_ERASE =***boolean*- This determines whether the program erases the one-electron
integrals file after it has been read. The default will eventually be
true, but during development the default is false.

**OEI_FILE =***integer*- This keyword allows the user to specify the transformed
one-electron integral file. The default is 71.

**PRINT_CIBLKS =***boolean*- Specifies whether the program should print out a summary of
all the blocks in the CI vector (which can be cast into matrix form, see
refs.)

**R4S =***boolean*- Restricts the RAS IV strings to the minimal set, saving
memory. If you are concerned about this option, you should write David for
advice unless you are a DETCI expert.

**REF_SYM =***integer*- This option allows the user to look for CI vectors of a
different irrep than the reference. This probably only makes sense for
Full CI, and it would probably not work with unit vector guesses.
Numbering starts from zero for the totally-symmetric irrep.

**REPL_OTF =***boolean*- Tells DETCI whether or not to do string replacements on the
fly. Can save a gigantic amount of memory (especially for truncated CI's)
but is somewhat flaky and hasn't been tested for a while. As I recall, it
only works for certain classes of RAS calculations. Contact David for
assistance. Eventually, the on-the-fly replacement stuff should be redone
in a much smarter way so that it doesn't take eons of CPU time. Work along
these lines was once started and may be completed eventually.

**RESTART =***boolean*- This option allows the user to resume a DETCI iteration
that terminated prematurely. It assumes that the CI and sigma vectors are
on disk; the number of vectors specified by
**RESTART_VECS**is collapsed down to one vector per root.

**RESTART_VECS =***integer*- If
**RESTART = TRUE**this specifies the number of CI (and sigma) vectors to read from disk. Typically this is the number of successfully completed iterations from a previous run times the number of roots for that run.

**TEI_ERASE =***boolean*- This determines whether the program erases the two-electron
integrals file after it has been read. The default will eventually be
true, but during development the default is false.

**TEI_FILE =***integer*- This keyword allows the user to specify the transformed
two-electron integral file. The default is 72.

**MPN =***boolean*- When this option is TRUE DETCI will compute the MPn series
out to kth order where k is determined by maxnvect. For open-shell systems
(REF=ROHF, WFN = ZAPTN), DETCI will compute the ZAPTn series. GUESS_VECTOR
must be set to TRUE. HD_OTF must be set to TRUE. HD_AVE must be set to
orb_ener.

**SAVE_MPN2 =***integer*- When MPN is TRUE and WIGNER is TRUE then this option
becomes valid. If set to 1 then MP(2n-1) energy is saved. If set to 2 then
MP(2n-2) energy is saved. If any other value MPn energy is saved. The
default is 0.

9 Feb, 1996 |