The FULL CI Program

Revision: 1.6 Date: 1997/08/14 14:14:00


Table of Contents


Introduction


The FULL-CI program FULLY can be invoked on unix machines by
    FULLY << EOF
        
      ... program data ...

    EOF
The program can perform FULL-CI calculations on systems with at most 255 orbitals.

The program recognizes the ATMOL predirectives as described in the introduction manual. The program uses the UNIX memory allocation mechanism to arrange its core memory. The default core size is 0 words, therefore the predirectives are needed to specify the amount of core memory for the program.


The First Set of Program Directives


The first set of program directives contains directives that should be supplied before the directives of the second set.

The MFILE Directive

This directive is used to define the location of the MAINFILE. The syntax has been given in the description of the ATMOL SCF program [4].

 
    Example 1:
 
      MFILE
      ED2
      75
      0
Omission of the MFILE directive is equivalent to:
 
      MFILE
      ED2
      1
      0

The TITLE Directive

Allows the user to define an 80 character title for the run, and extends over two lines. The first line consists of the character string TITLE in the first data field, the second line the user defined title.

 
    Example:
 
      TITLE
      PROPANE   FULL-CI

The FULLCI Directive

The fullci directive allows the user to specify the number of orbitals, the number of electrons and the spin state. The directive has the syntax:

    FULLCI NORB NAPHA NBETA
where
FULLCI
The text FULLCI is a literal string. It is just the name of the directive.
NORB
The integer NORB is the number of orbitals.
NALPHA
The integer NALPHA is the number of electron with alpha spin.
NBETA
The integer NBETA is the number of electron with beta spin.
The number of orbitals should be in the range
    2 =< NORB =< 255
Furthermore, note that
    NALPHA >= NBETA
should hold.

The ONELEC Directive

The ONELEC directive allows the user to specify the location of the DUMPFILE and the transformed 1-electron integrals placed thereon by the integral transformation program. The syntax is

    ONELEC DDNAM IBLK ISECT
ONELEC
The string ONELEC is a literal string.
DDNAM
The string DDNAM specifies the ATMOL file name assigned to the DUMPFILE. Valid names are ED0 to ED6 and MT0 to MT6.
IBLK
The integer IBLK specifies the starting block of the DUMPFILE.
ISECT
The integer ISECT specifies the section number of the transformed 1-electron integrals on the DUMPFILE. If ISECT is omitted, the transformed 1-electron integrals will be assumed to be in section 198, which is the default section number used by the integral transformation program.
The ONELEC directive may be omitted, when the defaults
    DDNAM = "ED3"
    IBLK  =  1 
    ISECT =  198 
will be taken.

The CRIT Directive

This directive provides a automatic way of specifying the symmetry data. The syntax is

    CRIT ICRIT
CRIT
The string CRIT is a literal string.
ICRIT
The integer value ICRIT determines the accuracy of the symmetry determination. This means that molecular integrals of absolute magnitude less than (0.1d0 ** ICRIT) will be ignored in the symmetry determination process.
The default is
    ICRIT =  7

The FINISH Directive

This should be the last directive presented. The program collates all the previous data and checks it for obvious errors, and commences the CI calculation. The syntax is

    FINISH
where
FINISH
The string FINISH is a literal string.
This directive should always be provided.


The Second Set of Program Directives


The second set of program directives contains directives that should be supplied after the directives from the first set.

The ROOTS Directive

This directive defines the number of roots that should be calculated. The directive has the syntax:

    ROOTS NROOTS
where
ROOTS
The string ROOTS is a literal string.
NROOTS
The integer NROOTS is the desired number of roots.
The default number of roots is 1.

The MAXCYC Directive

This directive allows the specification of the maximum number of iterations. The directive has the syntax:

    MAXCYC MAXIT
where
MAXCYC
The text MAXCYC is literal string.
MAXIT
The integer MAXIT is the maximum number of iterations.
The maximum number of iterations should be in the range
    1 =< MAXIT =< 50
The default maximum number of iterations is 50.

The THRESH Directive

This directive allows the specification of the convergence threshold. The directive has syntax:

    THRESH IFACTOR IEXP
where
THRESH
The text THRESH is a literal string.
IFACTOR
The integer IFACTOR is the factor that defines the mantisse of the convergence threshold.
IEXP
The integer IEXP is the exponent of the convergence threshold.
The convergence threshold is calculated according to:
    ACCURACY = DBLE(IFACTOR) * (10.0D0 ** IEXP)
By default the accuracy is 5.0D-4.

The SYMMETRY Directive

This directive allows the specification of the irreducible representation of the required states. The directive has syntax:

    SYMMETRY ISYMM
where
SYMMETRY
The text SYMMETRY is a literal string.
ISYMM
The integer ISYMM specifies the irreducible representation within the point group of the system.
The value of ISYMM should be in the range
    1 =< ISYMM =< 8
The default value of ISYMM is 1.

The PRINT Directive

This directive specifies the minimal size for Ci-vector coefficients to be printed. Coefficients smaller than the specified size will not be printed. The directive has syntax:

    PRINT IFACTOR IEXP
where
PRINT
The text PRINT is a literal string.
IFACTOR
The integer IFACTOR is the factor that defines the mantisse of the printing threshold.
IEXP
The integer IEXP is the exponent of the printing threshold.
The printing threshold is calculated according to:
    PRINTING_THRESHOLD = DBLE(IFACTOR) * (10.0D0 ** IEXP)
By default the accuracy is 5.0D-2.

The GUESS Directive

This directive allows the specification of the number of guess Ci-vectors that will be supplied for the diagonalisation routine. The directive has syntax:

    GUESS NGUESS
where
GUESS
The text GUESS is a literal string.
NGUESS
The integer NGUESS specifies the number of guess Ci-vectors.
By default NGUESS is set to 0. The diagonalisation then starts with the unit vector having a unit coefficient for the coefficient with the lowest diagonal element.

The SINGLE Directive

This directive offers the specification of the symmetry of the desired states by multiplying the symmetry of a set of orbitals. The directive has syntax:

    SINGLE [ IORB1 [ IORB2 [ ... ] ] ] 0
where
SINGLE
The text SINGLE is a literal string.
IORB1, IORB2, ...
The integers IORB1, IORB2, etc. specify the orbitals that will be used to calculate the desired symmtry.
0
The integer 0 terminates the line of input. This termininator should always be supplied.
The SINGLE directive may be repeated several times. In that case the orbital lists of all SINGLE directives will be concatenated into one orbital list. This means that the orbital lists in Example 1 and Example 2 are the equivalent. Finally, note that this directive has no default.
    Example 1:

      SINGLE 1 2 3 4 5 0
    Example 2:

      SINGLE 1 2 3 0
      SINGLE 4 5 0

The ENTER Directive

This directive terminates the directive driven input and starts the calculation.


Error Monitoring


Listed are error strings that may occur and a corresponding explaination.

"dead in domkst"
The number of occupation patterns exceeds the maximum number of configurations.