SCFDATA

Purpose

An object to store self consistent field (SCF) data, including interation control

Synopsis

The SCFDATA objects contains all the information required to define the way a self consistent field calculation converges. For example, the kind of SCF calculation, initial guess parameters, integral tolerances, whether to use extrapolation procedures, or to ingore certain interaction, all stored in this object.

A count of the number of iterations is also kept so that the object can evaluate whether convergence has been achieved.

Output routines are also available to print out "banners" and iteration specific data in a tabular format.

Default input data order

There is no associated SCFDATAVEC type; an input data order has not been defined.

Listing of keywords

1e_sl_factor= REAL

Read a factor which multiplies the 1-electron spin orbit interaction term in general relataivitic Hartree-Fock calculations

  • the default is 1

  • setting this to zero will eliminate these integrals

2e_sl_factor= REAL

Read a factor which multiplies the 2-electron spin orbit interaction term in general relataivitic Hartree-Fock calculations

  • the default is 1

  • setting this to zero will eliminate these integrals

camp-king= BIN

Read a switch which tells whether to use Camp-King extrapolation

convergence= REAL

Read a number which indicates convergence in the SCF energy value

  • Default value is 10-4

  • Convergence is when the difference between the energies from two succesive iterations is less than the inputted value and greater than the first iteration

  • Other convergence criteria also apply; see diis_convergence=

converge= REAL

Same as convergence=

damp_finish= INT

Read an integer representing when density damping ceases

  • Default value is 3

  • Density damping refers to a technique whereby a certain percentage of the previous iteration density matrix is added to the complementary percentage of the current density matrix

  • It is used to stop wild oscillations near the start of the SCF procedure

  • Refer to damp_factor= and use_damping=

damp_factor= REAL

Read a factor x which is used to damp the current density matrix

  • Default value is 0.5

  • Density damping refers to a technique whereby a certain percentage of the previous iteration density matrix is added to the complementary percentage of the current density matrix, D = x Di + (1-x) Di-1

  • It is used to stop wild oscillations near the start of the SCF procedure

  • Refer to use_damping=

direct= BIN

If set TRUE, two electron integrals are recalculated every iteration

  • Default value is FALSE

  • Note: if this switch is set, then use_delta_build= is also set

  • Refer to use_delta_build=

diis= BIN

Equivalent to use_diis=

diis_convergence= REAL

Read a number which indicates when DIIS convergence is achieved

  • Default value is 10-4

  • This convergence value is used even when DIIS is not, since it indicates the gradient of the SCF energy with respect to orbital rotation parameters

dynamic_damping= BIN

If TRUE, a density damping technique is used, where the damping factor used is decided by the program during each SCF iteration

  • The default is FALSE

  • See use_damping=

  • See also dynamic_damp_factor=

  • Warning: this should not be used for completion of SCF convergence, since density matrices generated by damping are not valid density matrices

diis_keep= INT

Read an integer telling how many DIIS parameter vectors to keep

  • The default value is 8

  • Note: some archive files are created by the DIIS routine to store past iteration results

diis_start= INT

Read an integer telling when the DIIS procedure is to start

  • The default is 3

  • Refer also to diis_keep= and diis=

eri_cutoff= REAL

Read a number telling which integrals are to be ignored because they are deemed too small

  • The default is 10-12

eri_limit= REAL

Equivalent to eri_cutoff=

initial_density= STR

Read a string indicating what initial guess for the density matrix should be used

  • Default is core, i.e. using the core hamiltonian

  • Other options:

    atom, i.e. start from a sum of spherically averaged atomic densities;
    group, i.e. start from a sum of molecular group densities

  • The following options assume that the corresponding TONTO archive (produced from a previous SCF run with the same archive name) exists in the same directory where the executable is running:

    restricted,
    unrestricted,
    general,
    restricted_complex,
    complex_unrestricted,
    unrestricted_complex,
    general_complex,
    complex_general.

    Note that these densities are "converted" to the right type if the scf_kind= is not compatible

  • Refer to scf_kind=

  • Other option: fock, start from an existing (in memory) fock matrix. Note that this is not starting from an initial density whereas all other options are

initial_mos= STR

Read in a string indicating that initial molecular orbitals are to be used to start the SCF cycle

  • Allowed options are:

    restricted,
    unrestricted,
    general,
    restricted_complex,
    complex_unrestricted,
    unrestricted_complex,
    general_complex,
    complex_general.

  • Where possible molecular orbitals of one type are "converted" to the calculation type if the scf_kind= is not compatible

  • Refer to scf_kind=

  • It is assumed that the corresponding TONTO archive (produced from a previous SCF run with the same archive name) exists in the same directory where the executable is running

initial_lambda= STR

Read the initial λ value used in the constrained SCF procedure

  • This value is incremented by lambda_step until lambda_max is attained

  • See lambda_step= and lambda_max

kind= STR

Equivalent to scf_kind=

lambda_min= REAL

Read the initial λ value used in the constrained SCF procedure

  • This value is incremented by lambda_step until lambda_max is attained

  • See lambda_step= and lambda_max

lambda_max= REAL

Read the maximum λ value to be used in the constrained SCF procedure

  • The initial λ is set using initial_lambda= or lambda_min=

  • λ is incremented by the value set in lambda_step=

  • The cycle terminated when the value set in lambda_max= is exceeded

lambda_step= REAL

Read the δ λ value used to increment the λ value in the constrained SCF procedure

  • The initial λ is set using initial_lambda= or lambda_min=

  • The cycle terminated when the value set in lambda_max= is exceeded

  • Refer to lambda_max=

level_shift= REAL

Read a number used for level shifting the Fock matrix

  • The diagonals of the virtual-virtual block of the pre-diagonalised fock matrix are shifted upward by this value

  • This has the effect of damping SCF oscillation

  • Level shifting is applied by default until iteration 3

level_shift_finish= INT

Read an integer at which level shifting is to stop

  • Default value is 3

  • Setting a value zero turns this feature off

  • Refer to level_shift=

min_it= INT

Read an integer representing the minimum number of iterations to be used in the SCF procedure

  • The default value is 1

  • See also max_it=

min_iterations= INT

Equivalent to min_it=

max_it= INT

Read an integer representing the maximum number of iterations to be used in the SCF procedure

  • The default value is 100

  • See also min_it=

max_iterations= INT

Equivalent to max_it=

nddo= BIN

If TRUE, an NDDO (Neglect of Diatomic Differential Overlap) calculation is performed

  • Currently only available for RHF

nudo= BIN

If TRUE, an NUDO (Neglect of Unconnected Differential Overlap) calculation is performed

  • In this method, only the integrals atoms which are connected---that is within a certain bonding radius---are calculated

  • Currently only available for RHF

output= BIN

If set FALSE, no output is presented by put routines

  • Default is TRUE

  • This is useful for calling modules which wish to have a hook into turining off any SCF output---e.g. atomic guess routines

rough_convergence= REAL

Read a number which indicates rough convergence in the SCF energy value

  • Default value is 10-2

  • Rough convergence is when the difference between the energies from two succesive iterations is less than the inputted value and greater than the first iteration

  • Usually when rough convergence is attained, full convergence is attempted

  • This can save integral computation time

  • See use_rough_convergence=

  • Other convergence criteria also apply; see convergence= and diis_convergence=

rough_diis_convergence= REAL

Read a number which indicates rough DIIS convergence in the SCF energy

  • Default value is 10-2

  • Rough convergence is when the difference between the energies from two succesive iterations is less than the inputted value and greater than the first iteration

  • Usually when rough convergence is attained, full convergence is attempted

  • This can save integral computation time

  • See use_rough_convergence=

  • Other convergence criteria also apply; see convergence= and diis_convergence=

scf_kind= STR

The kind of SCF calculation to be performed

  • Thereis no default; this value must be specified

  • Allowed values are:

    rhf,
    restricted_hartree_fock,
    xray_rhf,
    rohf,
    restricted_open_shell_hartree_fock,
    uhf,
    unrestricted_hartree_fock,
    ghf,
    general_hartree_fock,
    rchf,
    restricted_complex_hartree_fock,
    uchf,
    unrestricted_complex_hartree_fock,
    gchf,
    general_complex_hartree_fock,
    noninteracting-group-rhf.

scf_type= STR

Equivalent to scf_kind=

sl_1e_factor= REAL

Equivalent to 1e_sl_factor=

sl_2e_factor= REAL

Equivalent to 2e_sl_factor=

test= BIN

If TRUE, some testing code may be evaluated

  • This is useful for programmers who want a simple hook into the input

  • This should not be used by regular users

use_delta_build= BIN

If TRUE, the fock matrix is built incrementally

  • Default is FALSE

  • If direct= is set TRUE, the default is TRUE

use_diis= BIN

If set TRUE, DIIS extrapolation is used

  • Default value is TRUE

  • By default, the method turn on only at iteration 3, and only 8 vectors are kept

  • Refer to diis_start= and diis_keep=

  • Note: some archive files are created by the DIIS routine to store past iteration results

  • The DIIS method extrpolates the fock matrix

use_rough_convergence= BIN

If TRUE, rough convergence is used

  • Refer to rough_convergence=

  • Rough convergence is when the difference between the energies from two succesive iterations is less than the inputted value and greater than the first iteration

  • Usually when rough convergence is attained, full convergence is attempted

  • This can save integral computation time

use_damping= BIN

If TRUE, density damping is used

  • Density damping refers to a technique whereby a certain percentage of the previous iteration density matrix is added to the complementary percentage of the current density matrix, D = x Di + (1-x) Di-1

  • It is used to stop wild oscillations near the start of the SCF procedure

  • To input x refer to damp_factor=

  • Refer to damp_finish=

use_level_shift= BIN

If TRUE, level shifting is used

use_level_shifting= BIN

  • The diagonals of the virtual-virtual block of the pre-diagonalised fock matrix are shifted upward by this value

  • This has the effect of damping SCF oscillation

  • Level shifting is applied by default until iteration 3

  • Refer to level_shift_finish=

use_bl_term= BIN

If FALSE, the magnetic-field angular-momentum term B.L is ignored in general relativistic Hartree Fock calculations

  • The default is TRUE

use_bs_term= BIN

If FALSE, the magnetic-field spin angular-momentum term B.S is ignored in general relativistic Hartree Fock calculations

  • The default is TRUE

use_bs_t_term= BIN

If FALSE, the magnetic-field kinetic term (B.S)∇2 is ignored in general relativistic Hartree Fock calculations

  • The default is TRUE

use_aa_term= BIN

If FALSE, the magnetic vector field term A.A is ignored in general relativistic Hartree Fock calculations

  • The default is TRUE

  • This is the diamagnetic term

use_1e_sl_term= BIN

If FALSE, the 1-electron spin orbit integrals are not used

  • The default is TRUE

  • See also 1e_sl_factor=

use_1e_s(rxa)_term= BIN

If FALSE, the 1-electron spin orbit gauge invariant integrals are not used

  • The default is TRUE

use_2e_sl_term= BIN

If FALSE, the 2-electron spin orbit integrals are not used

  • The default is TRUE

  • See also 2e_sl_factor=

use_1e_zora_term= BIN

If FALSE, the 1-electron ZORA (Zero Order Regular Hamiltonian) integrals are not used

  • The default is TRUE

  • You should not use these integrals with the one electron spin orbit integrals, which are calculated in the Briet-Pauli approxintmation

  • Calling modules will require a numerical integration to evaluate these integrals, probably via DFTGRID

quantization_axis= REALVEC(3)

Read in a vector around which to quantise the spin

  • This is used to quantise the initial spin when using UHF orbitals as an initial guess to general_complex_hartree_fock calculations

  • It may be required, for example, in g-tensor calculations