7 Open-Shell and Excited-State Methods

7.4 Non-Orthogonal Configuration Interaction (NOCI)

Systems such as transition metals, open-shell species, and molecules with highly-stretched bonds often exhibit multiple, near-degenerate solutions to the SCF equations. Multiple solutions can be located using SCF metadynamics (Section 4.9.2), but given the approximate nature of the SCF calculation in the first place, there is in such cases no clear reason to choose one of these solutions over another. These SCF solutions are not subject to any non-crossing rule, and often do cross (i.e., switch energetic order) as the geometry is changed. Consequently, the lowest energy state may switch abruptly with consequent discontinuities in the energy gradients. It is therefore desirable to have a method that treats all of these near-degenerate SCF solutions on an equal footing and might yield a smoother, qualitatively correct potential energy surface. This can be achieved by using multiple SCF solutions (obtained, via e.g. SCF metadynamics) as a basis for a configuration interaction (CI) calculation. Since the various SCF solutions are not orthogonal to one another — meaning that one solution cannot be constructed as a single determinant composed of orbitals from another solution — this CI is a bit more complicated and is denoted as a non-orthogonal CI (NOCI).910

NOCI can be viewed as an alternative to CASSCF within an “active space” consisting of the SCF states of interest, and has the advantage that the SCF states, and thus the NOCI wave functions, are size-consistent. In common with CASSCF, it is able to describe complicated phenomena such as avoided crossings (where states mix instead of passing through each other) as well as conical intersections (whereby via symmetry or else accidental reasons, there is no coupling between the states, and they pass cleanly through each other at a degeneracy).

Another use for a NOCI calculation is that of symmetry restoration. At some geometries, the SCF states break spatial or spin symmetry to achieve a lower energy single determinant than if these symmetries were conserved. As these symmetries still exist within the proper electronic Hamiltonian, its exact eigenfunctions should preserve them. In the case of spin, this manifests as spin contamination, while for spatial symmetries it usually manifests as artefactual localization. To recover a (yet lower energy) wave function retaining the correct symmetries, one can include these broken-symmetry states (with all relevant symmetry permutations) in a NOCI calculation; the resultant eigenfunction will have the true symmetries restored, as a linear combination of the broken-symmetry states.

A common example occurs in the case of a spin-contaminated UHF reference state. Performing a NOCI calculation in a basis consisting of this state, plus a second state in which all α and β orbitals have been switched, often reduces spin contamination in the same way as the half-projected Hartree-Fock method,622 although there is no guarantee that the resulting wave function is an eigenfunction of S^2. Another example consists of using a UHF wave function with MS=0, along with its spin-exchanged version (wherein all αβ orbitals are switched), resulting in two new NOCI eigenfunctions, one with even S (a mixture of S=0,2,), and one with odd S (mixing S=1,3,). These may be used to approximate singlet and triplet wave functions.

NOCI can be enabled by specifying CORRELATION = NOCI, and will automatically use all of the states located with SCF metadynamics. Two spin-exchanged versions of a UHF wave function can be requested simply by not turning on metadynamics. For more customization, a $noci input section can be included having, e.g., the following format:

$noci
   1 2 -2 4
   2
$end

In this particular case, the first line specifies that states 1, 2, and 4 are to be included in the NOCI calculation, along with state “-2”, which indicates the spin-exchanged version of state 2. The second (optional) line indicates which eigenvalue is to be returned to Q-Chem, with the convention that 0 indicates the lowest state so the $noci input section above is requesting the third state.

Analytic gradients are not available for NOCI but geometry optimizations can be performed automatically using finite-difference gradients.

7.4.0.1 Job Control

Q-Chem 5.2 features a new package LIBNOCI dedicated to running NOCI calculations, and accessed using
USE_LIBNOCI = TRUE. The LIBNOCI implementation introduces flexible job control, whereby the method used to generate multiple states for the NOCI basis can be defined by the user. Initially, a set of reference determinants must be chosen, either using a single SCF calculation or by reading sets or orbital coefficients from file as requested by the $rem variable NOCI_REFGEN. From these reference states, multiple non-orthogonal states are then created either using SCF metadynamics, or as excitations from the reference determinants, as requested by the $rem variable NOCI_DETGEN. When generating multiple using excitations within an active space, the active orbitals are controlled using the $active_orbitals keyword, i.e.

$active_orbitals
    1 4 11 14
$end

where the β orbitals are offset by the total number of α molecular orbitals (e.g. the above example selects α orbitals 1 and 4, along with β orbitals 1 and 4, with a total of 10 α MOs including occupied and virtual orbitals). The resulting multiple determinants are then individually relaxed at the SCF level, unless this is explicitly skipped using SKIP_SCFMAN = TRUE. Finally, NOCI is run using the full set of multiple determinants identified.

The LIBNOCI package also incorporates compatibility with the new SCF metadynamics implementation (see Section 4.9.3), as well as the holomorphic Hartree–Fock approach which allows multiple Hartree–Fock solutions to be continued across all geometries (see Section. 4.9.4).

USE_LIBNOCI
       Turn on the use of LIBNOCI for running NOCI calculations.
TYPE:
       LOGICAL
DEFAULT:
       FALSE
OPTIONS:
       False Do not use LIBNOCI (uses original Q-Chem implementation). True Use the LIBNOCI implementation.
RECOMMENDATION:
       The $rem variables detailed below are only available in LIBNOCI.

NOCI_REFGEN
       Control how the initial reference determinants are created.
TYPE:
       INTEGER
DEFAULT:
       0
OPTIONS:
       0 Generate initial reference determinant from a single SCF calculation. 1 Read (multiple) initial reference determinants from a previous calculation.
RECOMMENDATION:
       The specific reference determinants to be read from a previous calculation can be indicated using the $scf_read keyword.

NOCI_DETGEN
       Control how the multiple determinants for NOCI are created.
TYPE:
       INTEGER
DEFAULT:
       0
OPTIONS:
       0 Use only the initial reference determinants. 1 Generate CIS excitations from each reference determinant. 2 Generate all FCI excitations from each reference determinant. 3 Generate n multiple determinants using SCF metadynamics, where n is given by SCF_SAVEMINIMA = n. 4 Generate all CAS excitations from each reference determinant, where the active orbitals are specified using $active_orbitals.
RECOMMENDATION:
       By default, these multiple determinants are optimized at the SCF level before running NOCI. This behaviour can be turned off using by specifying SKIP_SCFMAN = TRUE.

NOCI_NEIGVAL
       The number of NOCI eigenvalues to be printed.
TYPE:
       INTEGER
DEFAULT:
       10
OPTIONS:
       n Positive integer
RECOMMENDATION:
       Increase this to print progressively higher NOCI energies.

NOCI_PRINT
       Specify the debug print level of NOCI.
TYPE:
       INTEGER
DEFAULT:
       1
OPTIONS:
       n Positive integer
RECOMMENDATION:
       Increase this for additional debug information.

Example 7.16  NOCI for H2 run in the LIBNOCI implementation, with multiple determinants generated using SCF metadynamics.

$molecule
    0 1
    H    0.0000000   0.0000000   0.0000000
    H    0.0000000   0.0000000   4.0000000
$end

$rem
   EXCHANGE                   hf
   CORRELATION                noci
   UNRESTRICTED               true
   BASIS                      sto-3g
   SCF_CONVERGENCE            10
   MAX_SCF_CYCLES             1000
   MOM_START                  1
   USE_LIBNOCI                true
   SCF_SAVEMINIMA             4
   SCF_MINFIND_RANDOMMIXING   30000
   SCF_MINFIND_MIXMETHOD      1
   NOCI_REFGEN                0
   NOCI_DETGEN                3
   NOCI_NEIGVAL               4
$end