# SCF

Performs self consistent field (Hartree-Fock and Density Functional Theory) computations. These are the starting points for most computations, so this code is called in most cases.

## General Wavefunction Info

### BASIS

> Primary basis set

> - Type: string
> - Possible Values: basis string
> - Default: No Default

### CHOLESKY_TOLERANCE

> Tolerance for Cholesky decomposition of the ERI tensor

> - Type: conv double
> - Default: 1e-4

### DF_BASIS_SCF

> Auxiliary basis set for SCF density fitting computations. Defaults to a JKFIT basis.

> - Type: string
> - Possible Values: basis string
> - Default: No Default

### DF_SCF_GUESS

> Do a density fitting SCF calculation to converge the orbitals before switching to the use of exact integrals in a SCF_TYPE `DIRECT` calculation

> - Type: boolean
> - Default: true

### GUESS

> The type of guess orbitals. Defaults to `READ` for geometry optimizations after the first step, to `CORE` for single atoms, and to `SAD` otherwise. The `HUCKEL` guess employs on-the-fly calculations like SAD, as described in doi:10.1021/acs.jctc.8b01089.

> - Type: string
> - Possible Values: AUTO, CORE, GWH, SAD, HUCKEL, READ
> - Default: AUTO

### GUESS_MIX

> Mix the HOMO/LUMO in UHF or UKS to break alpha/beta spatial symmetry. Useful to produce broken-symmetry unrestricted solutions. Notice that this procedure is defined only for calculations in C1 symmetry.

> - Type: boolean
> - Default: false

### GUESS_PERSIST

> If true, then repeat the specified guess procedure for the orbitals every time - even during a geometry optimization.

> - Type: boolean
> - Default: false

### INTS_TOLERANCE

> Schwarz screening threshold. Mininum absolute value below which TEI are neglected.

> - Type: conv double
> - Default: 0.0

### MAX_MEM_BUF

> Max memory per buf for PK algo REORDER, for debug and tuning

> - Type: integer
> - Default: 0

### MOLDEN_WRITE

> Do write a MOLDEN output file? If so, the filename will end in .molden, and the prefix is determined by WRITER_FILE_LABEL (if set), or else by the name of the output file plus the name of the current molecule.

> - Type: boolean
> - Default: false

### PRINT_BASIS

> Do print the basis set?

> - Type: boolean
> - Default: false

### PRINT_MOS

> Do print the molecular orbitals?

> - Type: boolean
> - Default: false

### QCHF

> Do perform a QCHF computation?

> - Type: boolean
> - Default: false

### REFERENCE

> Reference wavefunction type. Cfour Interface: Keyword translates into CFOUR_REFERENCE

> - Type: string
> - Possible Values: RHF, ROHF, UHF, CUHF, RKS, UKS
> - Default: RHF

### SAVE_JK

> Keep JK object for later use?

> - Type: boolean
> - Default: false

### SCF_MEM_SAFETY_FACTOR

> Memory safety factor for allocating JK

> - Type: double
> - Default: 0.75

### SCF_PROPERTIES

> SCF Properties to calculate after an energy evaluation. Note, this keyword is not used for property evaluations.

> - Type: array
> - Default: No Default

### S_ORTHOGONALIZATION

> SO orthogonalization: symmetric or canonical?

> - Type: string
> - Possible Values: SYMMETRIC, CANONICAL
> - Default: SYMMETRIC

### S_TOLERANCE

> Minimum S matrix eigenvalue to allow before linear dependencies are removed.

> - Type: conv double
> - Default: 1e-7

## Convergence Control/Stabilization

### BASIS_GUESS

> Accelerate convergence by performing a preliminary scf with this small basis set followed by projection into the full target basis. A value of `TRUE` turns on projection using the 3-21G small basis set.

> - Type: string
> - Default: FALSE

### DAMPING_CONVERGENCE

> The density convergence threshold after which damping is no longer performed, if it is enabled. It is recommended to leave damping on until convergence, which is the default. Cfour Interface: Keyword translates into CFOUR_SCF_DAMPING

> - Type: conv double
> - Default: 1.0e-18

### DAMPING_PERCENTAGE

> The amount (percentage) of damping to apply to the early density updates. 0 will result in a full update, 100 will completely stall the update. A value around 20 (which corresponds to 20% of the previous iteration’s density being mixed into the current density) could help to solve problems with oscillatory convergence.

> - Type: double
> - Default: 0.0

### DF_BASIS_GUESS

> When BASIS_GUESS is active, run the preliminary scf in density-fitted mode with this as fitting basis for the small basis set. A value of `TRUE` turns on density fitting with the default basis, otherwise the specified basis is used.

> - Type: string
> - Possible Values: basis string
> - Default: FALSE

### DIIS

> Do use DIIS extrapolation to accelerate convergence?

> - Type: boolean
> - Default: true

### DIIS_MAX_VECS

> Maximum number of error vectors stored for DIIS extrapolation

> - Type: integer
> - Default: 10

### DIIS_MIN_VECS

> Minimum number of error vectors stored for DIIS extrapolation

> - Type: integer
> - Default: 2

### DIIS_RMS_ERROR

> Use RMS error instead of the more robust absolute error?

> - Type: boolean
> - Default: true

### DIIS_START

> The minimum iteration to start storing DIIS vectors

> - Type: integer
> - Default: 1

### D_CONVERGENCE

> Convergence criterion for SCF density, defined as the RMS or maximum absolute value of the orbital gradient. See Table SCF Convergence & Algorithm for default convergence criteria for different calculation types. Cfour Interface: Keyword translates into CFOUR_SCF_CONV

> - Type: conv double
> - Default: 1e-6

### E_CONVERGENCE

> Convergence criterion for SCF energy. See Table SCF Convergence & Algorithm for default convergence criteria for different calculation types.

> - Type: conv double
> - Default: 1e-6

### FAIL_ON_MAXITER

> Fail if we reach maxiter without converging?

> - Type: boolean
> - Default: true

### MAXITER

> Maximum number of iterations. Cfour Interface: Keyword translates into CFOUR_SCF_MAXCYC

> - Type: integer
> - Default: 100

### MOM_OCC

> The absolute indices of orbitals to excite from in MOM (+/- for alpha/beta)

> - Type: array
> - Default: No Default

### MOM_START

> The iteration to start MOM on (or 0 for no MOM)

> - Type: integer
> - Default: 0

### MOM_VIR

> The absolute indices of orbitals to excite to in MOM (+/- for alpha/beta)

> - Type: array
> - Default: No Default

### SOSCF

> Do use second-order SCF convergence methods?

> - Type: boolean
> - Default: false

### SOSCF_CONV

> Second order convergence threshold. Cease microiterating at this value.

> - Type: conv double
> - Default: 5.0e-3

### SOSCF_MAX_ITER

> Maximum number of second-order microiterations to perform.

> - Type: integer
> - Default: 5

### SOSCF_MIN_ITER

> Minimum number of second-order microiterations to perform.

> - Type: integer
> - Default: 1

### SOSCF_PRINT

> Do we print the SOSCF microiterations?.

> - Type: boolean
> - Default: false

### SOSCF_START_CONVERGENCE

> When to start second-order SCF iterations based on gradient RMS.

> - Type: conv double
> - Default: 1.0e-2

### STABILITY_ANALYSIS

> Whether to perform stability analysis after convergence. NONE prevents analysis being performed. CHECK will print out the analysis of the wavefunction stability at the end of the computation. FOLLOW will perform the analysis and, if a totally symmetric instability is found, will attempt to follow the eigenvector and re-run the computations to find a stable solution.

> - Type: string
> - Possible Values: NONE, CHECK, FOLLOW
> - Default: NONE

## Fractional Occupation UHF/UKS

### FRAC_DIIS

> Do use DIIS extrapolation to accelerate convergence in frac?

> - Type: boolean
> - Default: true

### FRAC_LOAD

> Do recompute guess from stored orbitals?

> - Type: boolean
> - Default: false

### FRAC_OCC

> The absolute indices of occupied orbitals to fractionally occupy (+/- for alpha/beta)

> - Type: array
> - Default: No Default

### FRAC_RENORMALIZE

> Do renormalize C matrices prior to writing to checkpoint?

> - Type: boolean
> - Default: true

### FRAC_START

> The iteration to start fractionally occupying orbitals (or 0 for no fractional occupation)

> - Type: integer
> - Default: 0

### FRAC_VAL

> The occupations of the orbital indices specified above (\(0.0\ge occ \ge 1.0\))

> - Type: array
> - Default: No Default

## Environmental Effects

### EXTERN

> An ExternalPotential (built by Python or nullptr/None)

> - Type: boolean
> - Default: false

### ONEPOT_GRID_READ

> Read an external potential from the .dx file?

> - Type: boolean
> - Default: false

### PERTURB_DIPOLE

> An array of length three describing the magnitude (atomic units) of the dipole field in the {x,y,z} directions

> - Type: array
> - Default: No Default

### PERTURB_H

> Do perturb the Hamiltonian?

> - Type: boolean
> - Default: false

### PERTURB_MAGNITUDE

> Size of the perturbation (applies only to dipole perturbations). Deprecated - use PERTURB_DIPOLE instead

> - Type: double
> - Default: 0.0

### PERTURB_WITH

> The operator used to perturb the Hamiltonian, if requested. DIPOLE_X, DIPOLE_Y and DIPOLE_Z will be removed in favor of the DIPOLE option in the future

> - Type: string
> - Possible Values: DIPOLE, DIPOLE_X, DIPOLE_Y, DIPOLE_Z, EMBPOT, SPHERE, DX
> - Default: DIPOLE

### PHI_POINTS

> Number of azimuthal grid points for spherical potential integration

> - Type: integer
> - Default: 360

### RADIUS

> Radius (bohr) of a hard-sphere external potential

> - Type: double
> - Default: 10.0

### R_POINTS

> Number of radial grid points for spherical potential integration

> - Type: integer
> - Default: 100

### THETA_POINTS

> Number of colatitude grid points for spherical potential integration

> - Type: integer
> - Default: 360

### THICKNESS

> Thickness (bohr) of a hard-sphere external potential

> - Type: double
> - Default: 20.0

## DFSCF Algorithm

### DF_BUMP_R0

> Bump function min radius

> - Type: double
> - Default: 0.0

### DF_BUMP_R1

> Bump function max radius

> - Type: double
> - Default: 0.0

### DF_DOMAINS

> FastDF geometric fitting domain selection algorithm

> - Type: string
> - Possible Values: DIATOMIC, SPHERES
> - Default: DIATOMIC

### DF_INTS_NUM_THREADS

> Number of threads for integrals (may be turned down if memory is an issue). 0 is blank

> - Type: integer
> - Default: 0

### DF_METRIC

> FastDF Fitting Metric

> - Type: string
> - Possible Values: COULOMB, EWALD, OVERLAP
> - Default: COULOMB

### DF_THETA

> FastDF SR Ewald metric range separation parameter

> - Type: double
> - Default: 1.0

## SAD Guess Algorithm

### SAD_D_CONVERGENCE

> Convergence criterion for SCF density in the SAD guess, analogous to D_CONVERGENCE

> - Type: conv double
> - Default: 1e-5

### SAD_E_CONVERGENCE

> Convergence criterion for SCF energy in the SAD guess, analogous to E_CONVERGENCE

> - Type: conv double
> - Default: 1e-5

## DFT

### DFT_ALPHA

> The DFT Exact-exchange parameter

> - Type: double
> - Default: 0.0

### DFT_ALPHA_C

> The DFT Correlation hybrid parameter

> - Type: double
> - Default: 0.0

### DFT_BASIS_TOLERANCE

> DFT basis cutoff.

> - Type: conv double
> - Default: 1.0e-12

### DFT_BS_RADIUS_ALPHA

> Factor for effective BS radius in radial grid.

> - Type: double
> - Default: 1.0

### DFT_DISPERSION_PARAMETERS

> Parameters defining the dispersion correction. See Table -D Functionals for default values and Table Dispersion Corrections for the order in which parameters are to be specified in this array option. Unused for functionals constructed by user.

> - Type: array
> - Default: No Default

### DFT_GRAC_ALPHA

> The gradient regularized asymptotic correction alpha value

> - Type: double
> - Default: 0.5

### DFT_GRAC_BETA

> The gradient regularized asymptotic correction beta value

> - Type: double
> - Default: 40.0

### DFT_GRAC_SHIFT

> The gradient regularized asymptotic correction shift value

> - Type: double
> - Default: 0.0

### DFT_NUCLEAR_SCHEME

> Nuclear Scheme.

> - Type: string
> - Possible Values: TREUTLER, BECKE, NAIVE, STRATMANN
> - Default: TREUTLER

### DFT_OMEGA

> The DFT Range-separation parameter

> - Type: double
> - Default: 0.0

### DFT_OMEGA_C

> The DFT Correlation Range-separation parameter

> - Type: double
> - Default: 0.0

### DFT_RADIAL_POINTS

> Number of radial points.

> - Type: integer
> - Default: 75

### DFT_RADIAL_SCHEME

> Radial Scheme.

> - Type: string
> - Possible Values: TREUTLER, BECKE, MULTIEXP, EM, MURA
> - Default: TREUTLER

### DFT_SPHERICAL_POINTS

> Number of spherical points (A Lebedev Points number).

> - Type: integer
> - Default: 302

### DFT_SPHERICAL_SCHEME

> Spherical Scheme.

> - Type: string
> - Possible Values: LEBEDEV
> - Default: LEBEDEV

### DFT_V2_RHO_CUTOFF

> Minima rho cutoff for the second derivative

> - Type: double
> - Default: 1.e-6

### DFT_VV10_B

> Define VV10 parameter b

> - Type: double
> - Default: 0.0

### DFT_VV10_C

> Define VV10 parameter C

> - Type: double
> - Default: 0.0

### DFT_VV10_POSTSCF

> post-scf VV10 correction

> - Type: boolean
> - Default: false

### DFT_VV10_RADIAL_POINTS

> Number of radial points for VV10 NL integration.

> - Type: integer
> - Default: 50

### DFT_VV10_SPHERICAL_POINTS

> Number of spherical points (A Lebedev Points number) for VV10 NL integration.

> - Type: integer
> - Default: 146

### LOCAL_CONVERGENCE

> The convergence on the orbital localization procedure

> - Type: conv double
> - Default: 1e-12

### LOCAL_MAXITER

> The maxiter on the orbital localization procedure

> - Type: integer
> - Default: 200

### NL_DISPERSION_PARAMETERS

> Parameters defining the -NL/-V dispersion correction. First b, then C

> - Type: array
> - Default: No Default

### SAVE_UHF_NOS

> Save the UHF NOs

> - Type: boolean
> - Default: false

### UHF_NOONS

> The number of NOONs to print in a UHF calc

> - Type: string
> - Default: 3

## Expert General Wavefunction Info

### PK_ALGO

> Select the PK algorithm to use. For debug purposes, selection will be automated later.

> - Type: string
> - Possible Values: REORDER, YOSHIMINE
> - Default: REORDER

### PK_ALL_NONSYM

> All densities are considered non symmetric, debug only.

> - Type: boolean
> - Default: false

### PK_MAX_BUCKETS

> Maximum numbers of batches to read PK supermatrix.

> - Type: integer
> - Default: 500

### PK_NO_INCORE

> Deactivate in core algorithm. For debug purposes.

> - Type: boolean
> - Default: false

### WFN

> Wavefunction type

> - Type: string
> - Possible Values: SCF
> - Default: SCF

## Expert Convergence Control/Stabilization

### FOLLOW_STEP_INCREMENT

> When using STABILITY_ANALYSIS = FOLLOW, the increment to modify FOLLOW_STEP_SCALE value if we end up in the same SCF solution.

> - Type: double
> - Default: 0.2

### FOLLOW_STEP_SCALE

> When using STABILITY_ANALYSIS `FOLLOW`, how much to scale the step along the eigenvector by. A full step of \(pi/2\) corresponds to a value of 1.0.

> - Type: double
> - Default: 0.5

### MAX_ATTEMPTS

> When using STABILITY_ANALYSIS `FOLLOW`, maximum number of orbital optimization attempts to make the wavefunction stable.

> - Type: integer
> - Default: 1

## Expert Parallel Runtime

### DISTRIBUTED_MATRIX

> The dimension sizes of the distributed matrix

> - Type: array
> - Default: No Default

### PARALLEL

> Do run in parallel?

> - Type: boolean
> - Default: false

### PROCESS_GRID

> The dimension sizes of the processor grid

> - Type: array
> - Default: No Default

### TILE_SZ

> The tile size for the distributed matrices

> - Type: integer
> - Default: 512

## Expert Misc.

### SAPT

> Are going to do SAPT? If so, what part?

> - Type: string
> - Default: FALSE

## Expert DFSCF Algorithm

### DF_FITTING_CONDITION

> Fitting Condition, i.e. eigenvalue threshold for RI basis. Analogous to S_TOLERANCE

> - Type: double
> - Default: 1.0e-10

### DF_INTS_IO

> IO caching for CP corrections, etc

> - Type: string
> - Possible Values: NONE, SAVE, LOAD
> - Default: NONE

## Expert SAD Guess Algorithm

### DF_BASIS_SAD

> Density fitting basis used in SAD

> - Type: string
> - Possible Values: basis string
> - Default: SAD-FIT

### SAD_CHOL_TOLERANCE

> SAD guess density decomposition threshold

> - Type: conv double
> - Default: 1e-7

### SAD_FRAC_OCC

> Do force an even distribution of occupations across the last partially occupied orbital shell?

> - Type: boolean
> - Default: true

### SAD_MAXITER

> Maximum number of atomic SCF iterations within SAD

> - Type: integer
> - Default: 50

### SAD_PRINT

> The amount of SAD information to print to the output

> - Type: integer
> - Default: 0

### SAD_SCF_TYPE

> SCF type used for atomic calculations in SAD guess

> - Type: string
> - Possible Values: DIRECT, DF
> - Default: DF

### SAD_SPIN_AVERAGE

> Do use spin-averaged occupations instead of atomic ground spin state in fractional SAD?

> - Type: boolean
> - Default: true

## Expert DFT

### DFT_BLOCK_MAX_POINTS

> The maximum number of grid points per evaluation block.

> - Type: integer
> - Default: 256

### DFT_BLOCK_MAX_RADIUS

> The maximum radius to terminate subdivision of an octree block [au].

> - Type: double
> - Default: 3.0

### DFT_BLOCK_MIN_POINTS

> The minimum number of grid points per evaluation block.

> - Type: integer
> - Default: 100

### DFT_BLOCK_SCHEME

> The blocking scheme for DFT.

> - Type: string
> - Possible Values: NAIVE, OCTREE
> - Default: OCTREE

### DFT_GRAC_C_FUNC

> The gradient regularized asymptotic correction functional corr form.

> - Type: string
> - Default: XC_LDA_C_VWN

### DFT_GRAC_X_FUNC

> The gradient regularized asymptotic correction functional exch form.

> - Type: string
> - Default: XC_GGA_X_LB

### DFT_GRID_NAME

> The DFT grid specification, such as SG1.

> - Type: string
> - Possible Values: SG0, SG1
> - Default: No Default

### DFT_PRUNING_ALPHA

> Spread alpha for logarithmic pruning.

> - Type: double
> - Default: 1.0

### DFT_PRUNING_SCHEME

> Pruning Scheme.

> - Type: string
> - Default: FLAT

### DFT_VV10_RHO_CUTOFF

> Rho cutoff for VV10 NL integration.

> - Type: double
> - Default: 1.e-8