localize
Perform localization of molecular orbitals obtained from a previous calculation.
For example, we can localize the occupied molecular orbitals (using IBOs of Knizia) after a DFT calculation:
dft1 := dft(
structure( molecule = water )
ao = '631G*'
xc = PBE
)
localize(
load = 'dft1'
orbital_type = 'occupied'
method = 'ibo'
)
Options
boys_exponent

Specify the exponent for the Boys localization functional.
 The type is int
 The default is 2
 The value must be one of:
2
 Use an exponent of 2 for the Boys localization functional.4
 Use an exponent of 4 for the Boys localization functional.
cholesky_threshold

Threshold for determining null space in incomplete Cholesky decomposition.
 The type is real
 The default is 1.0e9
 The value must be greater than 0.0
ibo_exponent

Specify the exponent for the IBO localization functional.
 The type is int
 The default is 4
 The value must be one of:
2
 Use an exponent of 2 for the IBO localization functional.4
 Use an exponent of 4 for the IBO localization functional.
load

Name of result set from which to load the molecular structure, basis set, and orbitals.
This option is mandatory.
 The type is string
 The default is previous
max_iter

Maximum number of iterations.
 The type is int
 The default is 50
method

Specify the method of localization.
 The type is string
 The default is ibo
 The value must be one of:
pipek
 Use PipekMezey localization method.boys
 Use Boys localization method.ibo
 Use intrinsic bond orbital (IBO) localization method of Knizia.cholesky
 Use partial Cholesky decomposition of the density matrix to generate local orbitals.
minao

Specify the MINAO basis for making the IAOs. The MINAO basis that should be used depends to the basis used in loaded result set. For DFT and HF calculations use the ccpVTZMINAO basis. For xTB calculations use the GFNxTBMINAO basis.
 The type is stringlowered
 The default is ccpVTZMINAO
name

Specify the name of a set of results.
This option is deprecated.
 The type is string
 There is no default value.
occ_threshold

Threshold for detecting the occupied space for fractional occupations (e.g. results from a fermi smearing). In the closed shell integer occupation case, the occupation numbers will be passed as is. If fractional occupation numbers are present, a sanity check will be performed to ensure all occupation numbers are close to 0 or 2 within occ_threshold and are in descending order. Otherwise, an error will be thrown if values between occ_threshold and 2occ_threshold are detected.
 The type is real
 The default is 1.0e8
orbital_type

Specify set of orbitals on which localization is performed.
 The type is string
 The default is occupied
 The value must be one of:
occupied
 All occupied molecular orbitals.virtual
 All virtual molecular orbital.core
 Core occupied molecular orbitals.valence occupied
 Valence occupied molecular orbitals.valence virtual
 Valence virtual molecular orbitals.nonvalence virtual
 Nonvalence virtual molecular orbitals.doubly occupied
 Doubly occupied molecular orbitals (for ROHF orbitals only).valence doubly occupied
 Valence doubly occupied molecular orbitals (for ROHF orbitals only).valence singly occupied
 Valence singly occupied molecular orbitals (for ROHF orbitals only).
orbital_types

Specify a list of orbital types to be localized separately. Each entry of the list should be an orbital type defined in
orbital_type
, and should not have overlapping orbitals with the other orbital groups in the list. For example:orbital_types = ['valence occupied', 'valence virtual']
specifies that both valence occupied and valence virtual orbitals will be localized separately. However,orbital_types = ['valence occupied', 'occupied']
is not a valid input becauseoccupied
orbitals includevalence occupied
ones.If
valence virtual
is requested without also requestingnonvalence virtual
then the nonvalence virtual orbitals will still be generated, but not localized. Instead they will be canonicalized when the Fock matrix is available (i.e. the Fock matrix will be diagonalized in the nonvalence virtual subspace). The type is [string]
 There is no default value.
ordering

Ordering of the localized orbitals.
 The type is string
 The default is fock
 The value must be one of:
none
 Do not reorder localized orbitals. The orbitals are not guaranteed to be ordered by any specific criterion.fock
 The orbitals are ordered as increasing diagonal elements of the Fock matrix in the localized orbital basis. This requires the Fock matrix in the original AO basis to be available when reading previous result set; otherwise, will fall back tonone
ordering.
pipek_exponent

Specify the exponent for the PipekMezey localization functional.
 The type is int
 The default is 2
 The value must be one of:
2
 Use an exponent of 2 for the PipekMezey localization functional.4
 Use an exponent of 4 for the PipekMezey localization functional.
print_level

Print level.
 The type is int
 There is no default value.
 The value must be one of:
2
 No output1
 Minimum output0
 Output that doesn't scale with system size1
 Output that scales linearly with system size2
 (Debugging) output that scales quadratically with system size3
 (Debugging) output that scales cubically with system size
simplified_iao

Whether to use the simplified method for making the IAOs. See this paper for details.
 The type is bool
 The default is false
threshold

Convergence threshold for localization, using orbitalstability conditions defined by PipekMezey.
 The type is real
 The default is 1.0e9
use_iao_from_occupied_mos

Whether to use the IAOs constructed from the occupied orbitals to localize all types of orbitals, or to use a specific set of IAOs made from each type of orbitals.
 The type is bool
 The default is false