A schematic cost–accuracy plot for molecular energies near equilibrium, where a single-reference description is appropriate. Horizontal positions show conventional dense-algorithm scaling with basis size N: semilocal DFT O(N³), Hartree–Fock O(N⁴), MP2 O(N⁵), CCSD O(N⁶), and CCSD(T) O(N⁷). Vertical positions illustrate a common qualitative tradeoff; they are not benchmark data, error bars, or a universal ranking. DFT performance depends strongly on the functional and observable; it can outperform more expensive wavefunction methods on particular problems. The absent diagonal is intentional: cost alone does not determine accuracy.
The exponents are not timing predictions. Prefactors, screening, density fitting, local correlation, convergence, and hardware change practical cost. Compare the same observable and system with converged basis sets and a stated error target. MP2 and single-reference coupled cluster can fail near degeneracy or strong correlation; perturbative triples cannot repair a poor reference. Generic “configuration interaction” and “coupled cluster” labels are avoided because truncation level changes both cost and behavior.
References: Psi4 FNOCC methods, conventional cubic DFT and linear-scaling alternatives, and limits of the CCSD(T) accuracy hierarchy.
#import "@preview/cetz:0.5.2": canvas, draw
#import draw: circle, content, line
#set page(width: auto, height: auto, margin: 14pt, fill: none)
#set text(font: "Avenir Next", size: 12pt)
// Exponents describe conventional dense algorithms, not measured runtime.
// Vertical coordinates are schematic, not benchmark accuracies or error estimates.
#let methods = (
(name: "Semilocal DFT", exponent: 3, height: 3.4, color: rgb("#d24636")),
(name: "Hartree–Fock", exponent: 4, height: 1.7, color: rgb("#385da8")),
(name: "MP2", exponent: 5, height: 3.5, color: rgb("#385da8")),
(name: "CCSD", exponent: 6, height: 4.7, color: rgb("#385da8")),
(name: "CCSD(T)", exponent: 7, height: 5.7, color: rgb("#385da8")),
)
#let scope = "Single-reference molecular energies near equilibrium"
#let qualification = "Schematic positions; accuracy depends on system, observable, and basis."
#canvas({
let plot_x(exponent) = (exponent - 2) * 2.3
content((0, 6.95), text(size: 14pt, scope), anchor: "west")
let arrow = (mark: (end: "stealth", scale: 0.7), stroke: 0.9pt)
line((0, 0), (13.2, 0), ..arrow)
line((0, 0), (0, 6.4), ..arrow)
content((0.15, 6.25), [higher accuracy], anchor: "west")
content((0.15, 5.75), text(size: 12pt)[qualitative], anchor: "west")
for exponent in range(3, 8) {
let axis_x = plot_x(exponent)
line((axis_x, -0.08), (axis_x, 0.08), stroke: 0.7pt)
content((axis_x, -0.4), $O(N^#exponent)$)
}
content((6.6, -1.0), text(size: 14pt)[Conventional scaling · $N$ = basis functions])
for method in methods {
let point = (plot_x(method.exponent), method.height)
circle(point, radius: 0.085, fill: method.color, stroke: none)
content((point.at(0), point.at(1) + 0.36), text(weight: "bold", method.name))
}
content((plot_x(3), 2.95), text(size: 12pt)[functional-dependent])
content((6.6, -1.8), text(size: 14pt, qualification))
})