The state-targeted energy projection (STEP) method160 supplies a robust and cost-effective alternative to the maximum overlap method (MOM) and the “initial” MOM (IMOM) procedures described in Section 7.6. STEP applies a level shift via a simple modification of the Fock matrix,
where Q is the matrix representation of the projector onto the user-defined virtual space, and is a parameter. The level shift supplied by elevates the energy of virtual orbital from to for each unoccupied orbital that is contained in Q. The parameter is chosen to provide the smallest level shift that retains the desired electron configuration and is defined as follows:
The HOMO/LUMO gap in Eq. (7.40) pertains to the HOMO and LUMO of the user-defined configuration; meaning that like the MOM procedure, STEP requires a set of initial-guess molecular orbitals (usually from a ground state calculation). The small empirical parameter controls the magnitude of the gap between the occupied and unoccupied orbitals and is settable by the $rem variable STEP_EPSILON. Application of the STEP level shift constrains the solutions of the SCF equations to prevent variational collapse by forcing an aufbau occupation of the desired occupied space at every SCF cycle.
The implementation of STEP in Q-Chem takes advantage of the fact that faster convergence is generally achieved by allowing a dynamic level shift parameter that changes each cycle depending on the new HOMO/LUMO gap, which differs from the static parameter reported in Ref. 160. In the most extreme of cases, if the desired aufbau configuration is trivially satisfied without application of a level shift projection, STEP will set , which allows for unconstrained occupied/virtual rotations in optimizing the Fock matrix and thus for rapid convergence to the desired state. The parameter is nonetheless held constant as to allow control over the relative magnitude of the level shift in cases where one is necessary throughout the optimization.
In more difficult cases, the dynamic level-shift approach (while more efficient) can lead to variational collapse. If the dynamic level-shift is insufficient, reverting to the implementation that was originally reported in Ref. 160 can increase the robustness of STEP appreciably. In this approach, the level-shift parameter in Eq. (7.40) is always active at every SCF cycle such that is never zero.
STEP can be applied directly as a SCF procedure, wherein spin contamination of the excited state is often introduced, or within a restricted open-shell framework (Section 7.8.2) in order to directly converge spin-pure excited states. The STEP algorithm is available for restricted, unrestricted, and restricted open-shell orbitals in Q-Chem.
Job control for SCF (R- or U-STEP) and RO-STEP calculations: After STEP is activated in the $rem section, the remainder of the options for STEP are handled through the $step input section.
$comment Ground state calculation for reference orbitals $end $molecule 0 1 C 0.0000000000 -0.0000000177 -0.6043240964 C 0.0000000000 0.0000000000 0.6043240820 H 0.0000000000 0.0000000654 -1.6654864149 H 0.0000000000 0.0000000198 1.6654865011 $end $rem METHOD b3lyp BASIS def2-tzvpd SCF_CONVERGENCE 7 $end @@@ $comment Actual U-STEP calculation $end $molecule read $end $rem METHOD b3lyp BASIS def2-tzvpd SCF_GUESS read STEP true UNRESTRICTED true SCF_CONVERGENCE 7 $end ! default level-shift is 0.1 Hartree ! beta orbital promotion means only betas need constrained $step Epsilon 10 Always_Active beta $end $occupied 1:7 1:6 8 $end
$comment Generates the ground-state reference orbitals $end $molecule 0 1 C 0.0000000000 -0.0000000177 -0.6043240964 C 0.0000000000 0.0000000000 0.6043240820 H 0.0000000000 0.0000000654 -1.6654864149 H 0.0000000000 0.0000000198 1.6654865011 $end $rem METHOD b3lyp BASIS def2-tzvpd SCF_CONVERGENCE 7 $end @@@ $comment Actual RO-STEP calculation $end $molecule read $end $rem METHOD b3lyp BASIS def2-tzvpd SCF_ALGORITHM gdm ! usually recommended with ROKS, but not necessary SCF_GUESS read ROKS true STEP true SCF_CONVERGENCE 7 $end ! prints all level-shift information $step Epsilon 10 Print 2 $end $reorder_mo 1 2 3 4 5 6 7 1 2 3 4 5 6 7 $end