8.3 Implementation

Without giving details, we discuss features of the implementation in escf and egrad that matter for applications. The interested reader is referred to the refs. given in the program headers as well as ref. [110].

Simultaneous vector iteration. The solutions of Eqs. (8.4) and (8.7) (Eq. (8.11)) are expanded in a subspace of L which is iteratively expanded (Davidson method [111]). The iteration is stopped when the Euclidean norm of the residual vector is smaller than 10-k. The default for k is 5, which usually gives excitation energies accurate to 8 - 10 digits and properties accurate to 4 - 5 digits (k can be changed by specifying $rpaconv k). Several roots, i.e., several excited states or frequencies can be treated simultaneously, which is very effective and permits the calculation of whole excitation spectra and dispersion curves. During the iteration, the vectors are kept on scratch files vfile_<IR>,wfile_<IR>, and/or rhs_<IR>, where IR denotes an IRREP of the point group (see below). Before the programs terminate, the converged vectors are written onto formatted files type⟩⟨IR, where type is an abbreviation for the type of response calculation performed (cf. $scfinstab). Given these files in the working directory, escf and egrad calculations can be restarted or continued, e.g., with a larger number of roots.

Integral direct algorithm. In the iterative method outlined above, the super-matrices A and B never need to be set up explicitly; only the products of A and B with some suitable basis vectors are required. These matrix-vector-products are evaluated very efficiently in the AO basis, because the required four-index integrals can be computed “on the fly” and need not be transformed or stored on disk. In addition, prescreening techniques based on rigorous bounds are straightforward to apply. This leads to a low-order scaling O(N2) - O(N) for the time-determining steps. Due to the similarity to ground state fock matrix construction, the same keywords are used to control these steps as in semi-direct SCF, namely $thime, $thize, $scfintunit, see Chapter 6. The same is true for DFT and RI keywords such as $dft, $ridft, $ricore.

Point group symmetry. escf and egrad can exploit point group symmetry for all finite point groups (with up to 99-fold symmetry axes, $symmetry). The response and eigenvalue problems (8.4) and (8.7) decompose into separate problems for each IRREP that are solved independently. For excited state and instability calculations, it is thus necessary to specify the IRREPs to be treated ($soes, see below). For response calculations, the perturbation is automatically subduced into irreducible components. The overall speedup compared to C1 symmetry is approximately 1∕g, where g denotes the point group order. For spin-restricted closed-shell ground states, spin symmetry is used to further reduce the dimension of the response and eigenvalue problems by a factor of 2. Point group symmetry cannot be exploited in two-component calculations.

Other features. escf and egrad fully support external fields (using the keyword $electrostatic field; specify geofield on in $fldopt), point charges (using the keyword $point_charges), and effective core potentials (using $ecp). In escf calculations, occupied and virtual MOs can be frozen (using $freeze).