ORCA's COSX grid schedule: iterate on a coarse grid, switch to a finer one once the SCF is close (DIIS error below refine_threshold, or converged on the coarse grid), and evaluate the final exchange energy once on the final grid.
More...
ORCA's COSX grid schedule: iterate on a coarse grid, switch to a finer one once the SCF is close (DIIS error below refine_threshold, or converged on the coarse grid), and evaluate the final exchange energy once on the final grid.
Gradients then use the final grid.
The default is for energies. Its final energy is the GRIDX3 functional at orbitals converged on GRIDX2, which is not stationary on GRIDX3, so the GRIDX3 gradient misses an orbital-response term. for_gradients() refines on the final grid instead, so the SCF is converged where the gradient is evaluated, as for a fixed GRIDX3 SCF.
| bool occ::qm::COSXGridSchedule::frozen_correction {true} |
On the refine grid, iterate with the iterate grid's exchange plus a correction K_refine(D) - K_iterate(D) frozen at the last exact build, refreshed whenever the SCF converges on it.
The correction depends on D only through the grid error, so it changes little between iterations: the SCF converges to the refine grid's own solution with a few refine grid builds instead of one per iteration.