Provided by: psi3_3.4.0-6ubuntu1_amd64 bug

NAME

       detci - Determinant Configuration Interaction Program

DESCRIPTION

       The  program  detci diagonalizes the nonrelativistic electronic Hamiltonian operator in a basis of Slater
       determinants.  The set of determinants used (CI space) may be chosen in a variety of ways.   The  program
       can  handle  any  CI  space which can be formulated as a Restricted Active Space CI.  This includes CISD,
       CISDT, CISDTQ, etc., up to Full CI, as well as multireference CI's in which the references are chosen  as
       all  determinants in which up to n electrons are excited in some MO active space.  This includes CISD[T],
       CISD[TQ], and second-order CI (SOCI).

REFERENCES

       Restricted Active Space CI:

       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).

       Tertiary virtual subspaces (RAS IV):

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

       DETCI Program:

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

FILES REQUIRED

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

TEMPORARY FILES USED

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

FILES UPDATED

           output.dat         - Output file

INPUT FORMAT

       The following command-line arguments are available:

       -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.

              Additional input for this program is read from the file The following keywords are valid:

       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.

       There is also some less commonly used input, which novice uses of PSI will have no need to use.

       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                                          detci(1)