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. [111].

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 [112]). 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(N^{2}) - 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 C_{1} 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).