Skip to content

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 = '6-31G*'
  xc = PBE
  )
localize(
  load = 'dft1'
  orbital_type = 'occupied'
  method = 'ibo'
  )
This command can appear in the global context.

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.0e-9
  • 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 Pipek-Mezey 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 cc-pVTZ-MINAO basis. For xTB calculations use the GFN-xTB-MINAO basis.

  • The type is string-lowered
  • The default is cc-pVTZ-MINAO
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 2-occ_threshold are detected.

  • The type is real
  • The default is 1.0e-8
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.
    • non-valence virtual - Non-valence 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 because occupied orbitals include valence occupied ones.

If valence virtual is requested without also requesting non-valence virtual then the non-valence 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 non-valence 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 re-order 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 to none ordering.
pipek_exponent

Specify the exponent for the Pipek-Mezey localization functional.

  • The type is int
  • The default is 2
  • The value must be one of:
    • 2 - Use an exponent of 2 for the Pipek-Mezey localization functional.
    • 4 - Use an exponent of 4 for the Pipek-Mezey localization functional.
print_level

Print level.

  • The type is int
  • There is no default value.
  • The value must be one of:
    • -2 - No output
    • -1 - Minimum output
    • 0 - Output that doesn't scale with system size
    • 1 - Output that scales linearly with system size
    • 2 - (Debugging) output that scales quadratically with system size
    • 3 - (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 orbital-stability conditions defined by Pipek-Mezey.

  • The type is real
  • The default is 1.0e-9
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