Capabilities and validation

Implemented ≠ validated. Working code is not a checked number.

Read this page before trusting any result. It lists every CLI method.kind (which references it accepts, which tasks it supports, the matching Python function, an example input) and the Python entry points. Each graded CLI method.kind gets a grade (three kinds are ungraded, and Python entry points are not graded individually), and the page shows how far each grade's numbers have been checked against an independent reference and where they are known to fail.

How to read it: find the capability in the matrix or the Python entry points. A matrix Grade cell links to the Anchors table when a row there holds the evidence; the Known limits section records the measured negatives. Every matrix cell comes from the CLI dispatch in crates/ferric-cli/src/lib.rs or the bindings in crates/ferric-python/src/lib.rs. The page is maintained by hand, so check those two files if a cell looks wrong. For keyword details see the input reference; for the example files see the examples index.

Grades

The grades are the ones ferric's CLI uses. Every CLI method.kind except laplace-sos-mp2 has a grade. A kind's grade is for the EXACT method; the local approximation of rimp2, drpa and linlccd (the [local] section) is graded separately in that row's Caveat. The CLI prints the Smoke and Spike grades as a [warning] line on stderr at run time; Proven kinds and the ungraded kind print nothing. The warning text is the EPISTEMIC_WARNINGS table in crates/ferric-cli/src/lib.rs, and the "Caveat" column of the matrix condenses it.

GradeMeaning
ProvenTotal energies (or the stated property) agree at a stated tolerance with an independent reference, pinned by tests. An independent reference is another code (PySCF, MOLGW), a numpy reference, a published value, or an exact limit the method must reduce to. The CLI groups "Proven" and "Proven (narrow)" together and does not say which kinds are narrow.
Proven (narrow)As Proven, but only on the stated class of systems, or only against the stated kind of reference (for example exact limits only)
SmokeRuns end to end, and some pieces are checked, but there is no independent reference for the headline number, or only one loose one. The checks are range bands, internal consistency or limits rather than a tight external number. Do not quote a Smoke result as a reference value.
SpikeBuilt on new infrastructure and not yet compared against any reference code; for exploration only
not gradedDispatched by the CLI but in neither its Proven list nor its warning table, so it prints no warning; treat it as unproven

Symbols: ✓ = supported. — = not supported (the CLI refuses it with an error). FD = finite differences of the analytic gradient (6N gradient evaluations). The analytic Hessian covers closed-shell RHF and UHF of any multiplicity with exact J/K, no ECP and a basis up to f functions; rhf and uhf frequencies use it there by default.

CLI method.kind matrix

"Reference" is the SCF reference the CLI actually builds for that kind. Open-shell support is listed only where the dispatch code handles it (see Open shells below).

method.kindFamilyReference (CLI)Energytask = "optimize"task = "frequencies"PythonExampleGradeCaveat
rhfSCFRHF; RKS with [dft] functional (refuses multiplicity > 1)✓✓ analyticanalytic (RHF, exact J/K, no ECP, up to f); FD otherwiserun_rhf, run_optimize, run_frequencieswater-rhf.tomlProven—
uhfSCFUHF; UKS with [dft] functional✓✓ analytic (+ D3(BJ) or MBD@rsSCS gradient with [dft] dispersion on UKS)analytic (UHF, exact J/K, no ECP, up to f); FD otherwiserun_uhf, run_frequencies(reference="uhf", xc=...)h_uhf.tomlProven—
rohfSCFROHF; ROKS with [dft] functional✓✓ analytic (+ D3(BJ) or MBD@rsSCS gradient with [dft] dispersion on ROKS)FDrun_rohf, run_frequencies(reference="rohf", xc=...)—Proven—
ksdftSCF/DFTRKS; UKS when multiplicity > 1✓✓ analytic (+ D3(BJ) or MBD@rsSCS gradient with [dft] dispersion, RKS and UKS)FD; with [dft] dispersion (closed shell) FD of the KS + dispersion gradient; refused with grid_prunerun_dft / run_ksdft, run_frequencies(xc=..., dispersion=...)benzene-dfb3lyp.toml, h2-lda-opt.tomlProven—
rimp2MP2RHF; UHF + unrestricted RI-MP2 when multiplicity > 1 (energy only)✓✓ analytic (Z-vector; closed shell only)—run_rimp2 (UHF + UMP2 when multiplicity > 1)water-rimp2.toml; local: water-rimp2-local.toml, alkane8-rimp2-local-direct.tomlProvenExact RI-MP2. With [local] scheme = "amplitude-threshold" (run_rimp2(local=..., eps=...)): Proven (narrow) by its exact limit — at ε = 0 the in-core and integral_direct paths match PySCF DF-MP2 to ≤1.1e-11 Ha (H2O and n-butane, 6-31G and cc-pVDZ); finite ε is a measured error map, not validated; closed shell and task = "energy" only; ε = 0 reproduces exact rimp2; the exact reference and the error against it are opt-in ([local] reference = true, compute_reference=True). integral_direct = true never forms the global 3-index tensor; its measured scaling is under Known limits.
mp3MP2RHF✓——run_mp3water-mp3.tomlProven—
oo-rimp2MP2RHF; UHF + unrestricted OO-RI-MP2 when multiplicity > 1 (energy only)✓——run_oo_rimp2 (closed shell only)water-oo-rimp2.tomlProven (narrow)Energy matches an independent numpy OO-RI-MP2 to 7.5e-13 Ha (closed-shell H2O and NH3, UHF CH3 / cc-pVDZ) and the closed-shell analytic gradient matches a finite difference of its own energy to 8e-9 Ha/Bohr. ORCA 6.1.1 stops 3.7e-8 to 7.0e-8 Ha above the same minimum.
att-rimp2MP2RHF✓——run_attenuated_rimp2water-attmp2.tomlProven—
mp2-vMP2RHF; UHF when multiplicity > 1 (energy only)✓——run_mp2_v (closed shell only)water-mp2v.tomlSmokeThe VV10 half is bit-identical to the ωB97X-V path. No comparison to any published MP2-V number; no published MP2-V total energy exists to compare against. The defaults are fitted for aug-cc-pVTZ with frozen core and no counterpoise. Open shell is doubly unvalidated.
scs-mp2MP2RHF✓——run_scs_mp2water-scs-mp2.tomlProven—
scs-mp2-2terfcMP2RHF✓——run_scs_mp2_2terfcwater-scs-mp2-2terfc.tomlProvenNeeds the terfc tables (FERRIC_TERF_TABLE_DIR).
laplace-mp2MP2RHF✓——run_laplace_mp2water-laplace-rimp2.tomlProvenMinimax-Laplace denominators on five systems (R = 19.0 to 45.7) against exact DF-MP2 and against a quadrature-isolated reference that separates quadrature error from implementation error. See the Anchors table.
laplace-sos-mp2MP2RHF✓——run_laplace_sos_mp2water-laplace-sos-mp2.tomlnot gradedWith c_os = 1.0 it reproduces the opposite-spin MP2 energy (internal reference).
pdep-rpaRPA/GWRHF, or RKS via [rpa] xc; UHF/UKS when multiplicity > 1 (energy only)✓✓ (closed-shell RHF reference only; [rpa] xc is refused; analytic SCF + FD correlation)—run_pdep_rpa (closed shell only; open-shell U-PDEP-RPA is CLI-only)water-pdep-rpa.tomlProven—
rs-mp2-rpaMP2 / RPARHF✓——run_rs_mp2_rpawater-rs-mp2-rpa.tomlSmokeThe ω→0 and ω→∞ limits reduce exactly to MP2 and MP2+dRPA and are Proven. At production ω it is only marginally benchmarked on one small subset and is unproven on new systems.
gwRPA/GWRHF, or RKS via [rpa] xc; UHF/UKS, or ROHF/ROKS with [gw] reference = "rohf", when multiplicity > 1 (energy only)✓ (QP energies)——run_gw, run_u_gwwater-g0w0-pbe.toml, oh-ugw.tomlSmokeMatches PySCF gw_ac/ugw_ac only at matched settings (G0W0@HF and @PBE ≤1.3e-7 Ha, evGW ≤5.7e-7, ECP ≤2.5e-6, U-G0W0@UHF ≤7e-6 Ha; U-G0W0@UKS/PBE, with Σx − v_xc inside each spin's quasiparticle equation, ≤2.6e-8 Ha; U-G0W0 on a semi-canonicalized ROHF reference in the Anchors; the ROKS reference is not compared) with [rpa] n_quad = 100 and trunc_thresh = 0; the CLI defaults are coarser (the 20-point grid moves the H2O G0W0@PBE HOMO by 13 meV) and truncation is not validated. See the G0W0 anchors.
bse-tdaRPA/GWRHF only (refuses multiplicity > 1)✓ (excitations)——run_bse_tdawater-bse-tda.tomlSmokeThe lowest five singlets match an independent numpy BSE-TDA to 1.8e-10 Ha given the same quasiparticle energies (H2O cc-pVDZ and aug-cc-pVDZ, NH3 and CH2O cc-pVDZ; see anchors). The quasiparticle energies come from the internal G0W0, which matches PySCF only at n_quad = 100, trunc_thresh = 0; the defaults are coarser.
tdhf-static-polarizabilityRPA/GWRKS only ([rpa] xc required)✓ (static α)——run_tdhf_static_polarizabilitywater-tdhf-static-alpha.tomlSmokeStatic α only, and not established: at a physical scissor (0.36 Ha) it is 5.20 a.u. for water/cc-pVDZ against DOSD 9.64 (−46%). The same kernel gives C6 about 63% low. At scissor = 0 it can hard-error on a negative α diagonal; set [gw] scissor to about 0.3–0.4 Ha.
ccsdCCRHF (spin-adapted solver)✓——run_ccsdwater-ccsd.tomlProven—
ccdCCRHF only (refuses multiplicity > 1)✓——run_ccdwater-ccd.tomlProven (narrow)RI-CCD, spin-orbital solver.
ccsd(t)CCRHF only (refuses multiplicity > 1)✓——run_ccsd_twater-ccsd-t.tomlProven (narrow)Spin-adapted CCSD + spin-adapted (T). Prints E_CCSD, E_(T) and the total.
linlccdCCRHF only (refuses multiplicity > 1; open-shell LinLCCD(hh) is library-only)✓——run_linlccdwater-linlccd.toml; local: water-linlccd-local.tomlProven (narrow)No other code implements LinLCCD(hh); the energy matches an independent numpy solve on PySCF density-fitted integrals to ≤1.2e-12 Ha (H2O and NH3 through the CLI's closed-shell path; UHF OH through the library-only open-shell path). With the hole–hole ladder off it reduces exactly to RI-MP2, and with exact integrals its driver terms reproduce canonical MP2; size consistency is checked. [mp2] linlccd_variant (hh, drivers-only, full) applies exact and local. With [local] (amplitude threshold): Proven (narrow); at ε = 0 every variant, full included, matches the independent numpy solve to ≤ 4.4e-13 Ha, as does the exact path.
drpaRPA/GWRHF only (refuses multiplicity > 1)✓——run_drpa, run_drpa_scan (local ε scan)water-drpa.toml; local: water-drpa-local.tomlProven (narrow)Exact dRPA@HF by the drCCD Riccati solve with nothing truncated; equals the canonical plasmon formula (≤1e-12 Ha), full-rank PDEP (pdep-rpa, trunc_thresh = 0), and an independent numpy plasmon dRPA on PySCF integrals (≤3.0e-11 Ha; water and n-butane at 6-31G and cc-pVDZ, n-octane at 6-31G; see Anchors). Its memory grows as no³·nv² and a run that cannot fit is refused before the SCF. With [local] (amplitude threshold, eps or eps_sweep): Proven (narrow) by its exact limit; the finite-ε error is not variational, and on n-octane it is positive and grows with ε at every point measured (Anchors).
wb97x-l-vCC § ωB97X-L-VIts own RKS (wB97X-L-V) reference (refuses multiplicity > 1; open shell is library-only)✓——nonewater-wb97xlv.tomlProven (narrow)E_KS and λ·E_c against PySCF with the paper's parameters plus a numpy LinLCCD(hh) (water, OH / def2-SVP); Be₂ bond energy against the paper's Table 4.
b2plypCC § double hybridsIts own RKS reference✓——run_double_hybrid(kind="b2plyp")water-b2plyp.tomlSpikeWeighted B88+LYP reference. Not compared with any reference code.
dsd-pbep86CC § double hybridsIts own RKS reference✓——run_double_hybrid(kind="dsd-pbep86")—SpikeWeighted PBE+P86 reference. Not compared with any reference code.
tdaRPA/GW § TDDFTRHF (CIS), or RKS via [tddft] xc (refuses multiplicity > 1)✓ (excitations)——run_tddft(method="tda")water-tda.tomlProven (narrow, closed shell)The lowest five roots match PySCF TDA for water, formaldehyde and NH3 at 6-31G and aug-cc-pVDZ with HF, LDA, PBE and B3LYP: at most 6.5e-4 eV (B3LYP), test bar 1e-3 eV. A [tddft] xc with no f_xc kernel (meta-GGA, VV10, range-separated) is refused before the SCF.
tddftRPA/GW § TDDFTRHF (TDHF), or RKS via [tddft] xc (refuses multiplicity > 1)✓ (excitations)——run_tddft(method="casida")water-tddft-pbe.tomlProven (narrow, closed shell)Same comparison of the lowest five roots against PySCF TDDFT, same bar. Same functional refusals as tda.

task = "optimize" is accepted only for rhf, ksdft, uhf, rohf, pdep-rpa and rimp2. task = "frequencies" is accepted only for rhf, ksdft, uhf and rohf. On an open-shell molecule both tasks are accepted only for uhf, rohf and ksdft (UHF/UKS, ROHF/ROKS). Both tasks refuse [dft] grid_prune, and [scf] k_builder = "cosx" except for rhf, ksdft and uhf (closed-shell RHF/RKS and UHF; UKS with COSX is refused before the SCF); a COSX final pass is skipped for them. [dft] dispersion is refused for frequencies on an open-shell reference: the frequency driver threads the correction through the closed-shell SCF only, so it would report the Hessian of the uncorrected surface. The RKS, UKS and ROKS optimizers apply D3(BJ) and MBD@rsSCS (energy and exact gradient); an open-shell task = "energy" single point applies either. Any other combination exits with an error before the SCF runs.

Open shells in the CLI

  • uhf and rohf read [molecule] multiplicity directly. With [dft] functional they run UKS and ROKS, for energies, optimizations and frequencies.
  • ksdft with multiplicity > 1 runs UKS (the uhf route with the functional set). For ROKS use rohf with [dft] functional.
  • rhf refuses multiplicity > 1 and points to uhf/rohf.
  • rimp2 and oo-rimp2 run on the same plain UHF that kind = "uhf" runs, then take unrestricted RI-MP2 (UMP2, as PySCF mp.MP2(uhf)) and unrestricted OO-RI-MP2. [mp2] kappa is refused on an open shell. task = "energy" only: there is no unrestricted MP2 nuclear gradient.
  • pdep-rpa, gw and mp2-v solve UHF with MOM after 5 iterations when multiplicity > 1, for task = "energy" only. For pdep-rpa and gw, setting [rpa] xc makes that reference UKS; gw with [gw] reference = "rohf" uses ROHF (ROKS with [rpa] xc) instead, semi-canonicalized per spin; U-G0W0 on a semi-canonicalized ROHF reference is in the Anchors, the ROKS reference is not compared. mp2-v does not read [rpa] xc and stays UHF.
  • linlccd and wb97x-l-v refuse an open-shell molecule; their open-shell versions are library-only (ferric_cc::linlccd_u::u_linlccd, ferric_cc::double_hybrid::u_solve_wb97x_l_v).
  • ccd, ccsd and ccsd(t) refuse an open-shell molecule, and no open-shell CCD, CCSD or CCSD(T) exists in the library either: every CC solver reads restricted orbitals.
  • Every other kind refuses multiplicity > 1 with an error before any integral is computed.

Python entry points

These are Python functions without a method.kind of their own; some rows also have a CLI route through a TOML section or task, noted in the row. Scope is taken from the binding code and its docstrings. They are not graded individually.

CapabilityPythonScope (verified in code)
Open-shell KS frequenciesrun_frequencies(reference="uhf"|"rohf", xc=...)Setting xc promotes RHF/UHF/ROHF to RKS/UKS/ROKS. FD Hessian. Also CLI: kind = "uhf"/"rohf" with [dft] functional and task = "frequencies".
Transition-state searchrun_saddleP-RFO. Closed shell only (refuses multiplicity ≠ 1). Raises if the start has no negative mode. Costs 2(6N+1) + (steps+1) gradients.
Reaction pathrun_ircBoth IRC branches from a saddle's imaginary mode. Closed shell only.
Geometry optimization (Python)run_optimizeRHF only (no xc argument). Accepts point charges and a field.
QM/MM energy + forcesQmmmSystem, run_qmmmmethod = "rhf"/"uhf"/"rks"/"uks". Link atoms, boundary schemes (keep/delete-host/rc/rcd), Gaussian-smeared charges, Thole polarizable sites, an optional MM force field (MmTopology). See QM/MM. The CLI [qmmm] section covers fixed point charges only.
QM/MM optimizationrun_optimize_qmmmSame four methods. move_mm = "none"/"all"/("within", r)/("residues", [...]). Moving MM atoms requires mm_topology.
Constrained DFTrun_cdft, CdftConstraintUHF, or UKS when functional names a libxc functional other than "HF" (None and "HF", any case, give UHF). Constrained UKS/PBE matches NWChem 7.2.2 (see anchors); UHF-cDFT has only internal checks, because NWChem cannot run Hartree–Fock cDFT. Fragment target is a Becke electron population ("charge": Nα + Nβ; "spin": Nα − Nβ), not a net charge. Raises if the λ loop does not converge. Not graded; see Constrained DFT.
cDFT electron-transfer couplingcdft_couplingWu–Van Voorhis H_ab between two run_cdft states, each with one converged "charge" constraint, on the same geometry, basis, occupations and Hamiltonian. Not graded.
Point charges / uniform fieldpoint_charges=, external_field= on run_rhf/run_uhf/run_rohf/run_dft, run_optimize, run_frequencies, run_saddle, run_irc, run_pdep_rpaBohr and atomic units. run_rhf also takes smeared_charges=. The MP2/CC drivers take no external-potential arguments. The CLI equivalent is [external_potential], where a width makes a charge smeared.
D3(BJ)run_dft(dispersion="d3bj"), run_frequencies(xc=..., dispersion="d3bj"), d3bj_energyAdditive, with parameters fitted per functional. run_frequencies takes it on the closed-shell reference only.
MBD@rsSCSrun_dft(dispersion="mbd"), run_frequencies(xc=..., dispersion="mbd"), mbd_rsscs_energyrun_dft adds it to total_energy from Hirshfeld volume ratios of the converged density (DftResult.volume_ratios), with β published for PBE, PBE0, HSE06. With with_gradient=True it adds the analytic gradient: the exact analytic gradient, including the orbital relaxation of the Hirshfeld volumes (Z-vector; LDA, GGA and hybrid-GGA functionals without VV10). mbd_rsscs_energy is the standalone energy from caller-supplied ratios.
Chargesmulliken_charges, lowdin_charges, hirshfeld_charges, chelpg_charges, resp_chargesTake an RhfResult or DftResult. Mulliken, Löwdin, CHELPG and RESP are documented closed-shell only. hirshfeld_charges uses the CLI's free-atom SCF proatoms, solved with the result's SCF settings; proatom="slater" selects the single-Slater proatom. RESP is a single-stage restrained fit, not multi-conformer RESP.
Electrostatic potentialesp_at_atoms, esp_at_pointsEvaluated exactly from the density. esp_at_points takes (N, 3) points in Bohr.
Polarizability / momentshirshfeld_polarizability, orbital_moments, density_second_moment—
ω tuningtune_omegaRange-separation ω for a named functional.
Conformer statisticsboltzmann_weights, weighted_stats*, ConformerEnsemble—
Integralscompute_eri3, compute_eri3_mo, compute_metric_2c, boys_localize, shell_infoLow-level access.

Polarizable (Thole) embedding is Python and Rust only. IEF-PCM, UHF stability descent and terfc-attenuated MP2 are reachable from both: see [pcm], [scf] stability_descent and [mp2] att_operator in the Input reference.

Anchors

Where numbers are checked, they are checked against external references or exact limits, not against ferric's own earlier output. "Stated agreement" is the measured difference recorded in the repository; "test tolerance" is what the pinning test actually asserts, which is often looser. Proof links to the test file that asserts the row, and, where one exists, the script that generated its reference data; a row with nothing to link is not graded Proven. Proof files named validation_*.rs are #[ignore]d, so an ordinary cargo test skips them; they run in the weekly validation CI job and on demand (cargo nextest run --run-ignored only -E 'binary(/^validation_/)').

CapabilitySystem / basisReferenceStated agreementTest toleranceProof
UHF and ROHF energies, stability-checkedHO2, NO2, CH2 (triplet), allyl / 6-31G, def2-SVPPySCF UHF/ROHF + stability()4.0e-12 Ha (energy); 3e-7 (⟨S²⟩)1e-10 Ha; 1e-6validation_open_shell_scf.rs, gen_uhf_rohf.py
SCF stability: lowest orbital-Hessian eigenvalues and verdict (UHF internal, UKS internal, RHF internal, RHF→UHF external). RhfConfig::check_stability on an RHF/HF run reports BOTH the internal (singlet) verdict on ScfResult::stability and the external (RHF→UHF triplet, rhf_external_stability) verdict on ScfResult::stability_external; the external operator is also checked against the triplet block of ferric's UHF Hessian at the RHF point, an independent constructionN2⁺, OH (UHF), water at r(OH) = 0.9572 and 2.0 Å (RHF), NH2 (UKS/PBE) / 6-31G; H₂ at 2.0 Å / STO-3G (fast tier)PySCF dense gen_g_hop_uhf/gen_g_hop_rhf/hop_rhf2uhf Hessians + stability()eigenvalues ≤ 4.5e-10 Ha; energies ≤ 7.1e-12 Ha; the dedicated triplet operator matches the UHF-at-RHF triplet block to ≤ 2.3e-13 Ha (two independent constructions); stable/unstable verdicts match PySCF, including water at 2.0 Å where internal is STABLE (+1.97e-2) and external UNSTABLE (−3.07e-1); OH (an exact zero mode) is reported MARGINAL by ferric where PySCF reports stable. KS references are refused for the external channel (no triplet XC kernel f_αα − f_αβ)1e-8 Ha; 1e-10 Ha; 2e-12 Havalidation_scf_stability.rs, scf_stability_external.rs, gen_scf_stability.py
SCF convergence ladder with RHF internal stability descent (solve_rhf_ladder, check_stability + scf_stability_descent): converged energy, internal (singlet) and external (RHF→UHF) Hessian eigenvaluesN2 at 1.60 Å, CuCN, Cr(CO)6 / def2-SVP (Cu, Cr from Basis Set Exchange)PySCF RHF .newton() from four guesses; dense singlet and triplet orbital Hessians from MO integrals, checked against PySCF's own operatorsenergy ≤ 8.8e-10 Ha; eigenvalues ≤ 1.3e-9 Ha; the plain-DIIS rung lands on the N2 saddle 1.906e-2 Ha higher1e-8 Ha; 1e-8 Havalidation_scf_ladder.rs, rhf_stability_descent.rs, gen_scf_ladder.py
RHF and UHF with def2 ECPs: energies and analytic gradientsHI, CH3I, RbH, I atom (UHF) / def2-SVP, def2-TZVP; SnH4 / def2-TZVP; HBr (all-electron control)PySCF RHF/UHF + analytic gradient, and ORCA RHF (NoRI), both fed ferric's basis and ECP≤ 2.9e-8 Ha (energy, both codes); ≤ 2.3e-8 Ha/Bohr (gradient); all-electron HBr 1e-112.5e-7 Ha; 1e-7 Ha/Bohrvalidation_ecp.rs, gen_ecp.py, gen_ecp_orca.py
RHF, UHF, RKS, UKS, ROKS and RI-MP2 nuclear gradients with def2 ECPs: full gradient, the ECP term alone (HF and KS; for RI-MP2 the ECP term is tested through the full gradient and a control that the HF-density ECP term misses), translation invariance, 5-point finite difference of ferric's own energyHF: HI, CH3I / def2-SVP, def2-TZVP; SnH4 / def2-TZVP; CH2I (UHF doublet) / def2-SVP, def2-TZVP; HBr (all-electron control). KS/PBE: CH3I (RKS), CH2I (UKS, ROKS) / def2-SVP. RI-MP2: CH3I / def2-SVP, def2-svp-rifitHF: PySCF analytic gradient with its ECP term separated (checked against a fixed-density finite difference), and ORCA EnGrad (NoRI), both fed ferric's basis and ECP. KS: PySCF with exact J, the matched (75,110) Becke grid and grid_response=True (analytic for RKS/UKS, 5-point finite difference of the ROKS energy). RI-MP2: 5-point finite difference of the PySCF DF-MP2 energy, its ECP term from the relaxed-energy derivative with respect to a λ dV_ECP/dR hcore perturbation, and ORCA RI-MP2 EnGradHF: gradient ≤ 1.3e-7 Ha/Bohr vs PySCF and ≤ 2.5e-7 vs ORCA; the ECP term alone ≤ 1.3e-7; own 5-point FD ≤ 1.9e-7; energy ≤ 2.9e-8 Ha. KS: energy ≤ 2.0e-8 Ha, gradient ≤ 1.4e-8 Ha/Bohr, the ECP term alone ≤ 1.1e-8, own FD ≤ 4.3e-8. RI-MP2: E_corr 7.4e-10 Ha; gradient 7.7e-9 Ha/Bohr vs the PySCF finite difference and 4.3e-8 vs ORCAHF: 5e-7 Ha/Bohr (PySCF), 1e-6 (ORCA), 6e-7 (FD). KS: 2e-7 (PySCF), 6e-7 (FD). RI-MP2: 1e-7 (PySCF FD), 5e-7 (ORCA)validation_ecp_gradient.rs, validation_ecp_rimp2_gradient.rs, gen_ecp_gradient.py
ESP at the nucleiH2O, CH3OH (RHF), HO2 (UHF) / cc-pVDZ, def2-SVPPySCF int1e_rinv on PySCF's converged density, fed to ferric in ferric's AO order (AO order checked through the overlap matrix)4.8e-14 a.u. same density; 4.6e-9 own SCF5e-13 a.u.; 5e-8 a.u.validation_density_properties.rs, gen_properties.py
Electric field at the nucleiH2O, CH3OH, HO2 / cc-pVDZ, def2-SVPPySCF int1e_iprinv, same density (checked against a finite difference of the ESP)1.5e-13 a.u. same density; 2.7e-9 own SCF1e-12 a.u.; 3e-8 a.u.″
Becke effective volumesH2O, CH3OH, HO2 / cc-pVDZ, def2-SVP; free atoms Z = 1–18 (UKS-PBE; B, C, O, F, Al, Si, S, Cl as the fractional-occupation ensemble) / aug-cc-pVDZnumpy on ferric's grid rebuilt from PySCF's radial, Lebedev and AO values, with ferric's Becke partition; free atoms vs PySCF UKS1.4e-15 rel. same density; 7.1e-9 (molecules), 3.5e-8 (atoms) own SCF; Li, Be, Na, Al 1.5e-6 from ferric's XC density floor (ρ ≤ 1e-10), which the reference does not apply; free-atom energies 3.1e-12 Ha1e-13; 5e-8; 2e-6 (Li, Be, Na, Al)″
Hirshfeld charges (hirshfeld_charges) with the same-basis free-atom SCF proatom (what the CLI and ferric.hirshfeld_charges pass by default) and with the single-Slater proatom (proatom="slater"); free-atom proatom tables (spherically_averaged_proatom)H2O, CO, CH3OH (RHF) / cc-pVDZ, def2-SVP; free H, C, O (UHF) and He (RHF) atoms; HeH promolecule (zero-charge limit)numpy on ferric's grid rebuilt from PySCF's radial, Lebedev and AO values, with PySCF's converged density and PySCF free-atom proatoms tabulated and interpolated as ferric does (scipy cubic spline of ln ρ, an independent build of the interpolant); the same charges on a dense (200, 590) grid and on PySCF's own level-9 grid (agreeing to ≤2.8e-7 e)1.9e-13 e same density; 2.6e-9 e own SCF and own free atoms; ferric's default grid ≤2.0e-4 e from the dense-grid value; the 0.05 Bohr proatom table ≤2.9e-7 e from a 0.005 Bohr one; promolecule 8.7e-6 e1e-10 e; 1e-6 e; 1e-3 e; 5e-5 evalidation_hirshfeld.rs, gen_hirshfeld.py
Hirshfeld effective volumes (atomic_effective_volumes_hirshfeld, the TS C6 volumes), on the atom-centred Becke–Lebedev grid of hirshfeld_volume_grid_config (75 radial × 590 angular — the volume integrand carries an r³ factor and needs a higher Lebedev order than the XC grid's 110); and atomic_effective_volumes_hirshfeld_on_grid on the 0.20 Bohr lattice, which MBD@rsSCS integrates onH2O, CO, CH3OH / cc-pVDZ, def2-SVP (SCF proatom); free H, C, O atoms (no proatom, as the CLI's free-atom denominator)numpy on a dense (200, 590) Becke–Lebedev grid, same density and proatoms; the free-atom weight-one moment ∫ρ r³ against the same grid is the exactness anchor (one atom ⇒ Hirshfeld weight 1); plus numpy on ferric's lattice rebuilt point for point for the lattice entry point1.1e-7 rel. vs the dense grid, same density and own SCF alike; ∫ρ within 2.0e-7 e of N_e on the same grid; CH3OH's two mirror-image methyl H equal to 2.9e-14 rel.; free-atom weight-one moment 8.1e-13 rel. (the 1e-12 Hirshfeld weight floor then removes 1.2e-3 of free H's volume, 3.4e-10 of C's); lattice entry point 3.2e-13 rel. same density1e-6; 2e-6 e; 1e-10; 1e-11; 1e-11″
TS C6 and MBD@TS given the same volume ratios: TS α_eff, ω, pair and molecular C6 (ts_atom_params, ts_dynamic_polarizability, casimir_polder_c6); full-range SCS screened α(iω) and C6 (mbd_screen, mbd_dynamic_polarizability), and the plain Gaussian-damped coupled-oscillator energy (coupled_qho_energy_plain_gg), which checks the oscillator algebra and is not a dispersion energyH2O, CO, CH3OH / cc-pVDZ, def2-SVP; CH4, benzene / cc-pVDZ (Hirshfeld volume ratios); ferric's and pymbd's frequency gridspymbd 0.15.0 / libmbd: free-atom table checked equal for every element used; MBD screening as libmbd scs and energy as libmbd plain screening with Gaussian damping (dip,gg), cross-checked against a numpy build and mpmath dimer closed formsTS ≤ 7.5e-16 rel.; MBD 8.1e-15 against the same A&S erf ferric uses, 5.1e-7 against an exact erf1e-12; 1e-11; 1e-6validation_ts_mbd.rs, gen_ts_mbd.py
MBD@rsSCS energy (mbd_rsscs_energy, mbd_rsscs_energy_from_params): range-separated SCS screening (short-range (1−f)·T_GG), screened α₀, C6, ω and R_vdW, and the long-range coupled-oscillator energy with f·T_bare; free-atom R_vdW table (Z = 1–54); frequency gridH2O, CO, CH3OH / cc-pVDZ, def2-SVP; CH4, benzene / cc-pVDZ (Hirshfeld volume ratios); β = 0.83 (PBE) and 0.85 (PBE0/HSE06), a = 6pymbd 0.15.0 (screening + mbd_energy in Python) and libmbd 0.15.0 (Fortran, variant='rsscs') given identical inputs, which agree with each other to < 1e-10; R_vdW table read back from pymbd vdw_params; grid vs pymbd freq_grid(15)E ≤ 9.5e-12 rel.; screened α₀, C6, ω, R_vdW ≤ 1.5e-14 rel.; grid 3.8e-141e-10; 1e-12; 1e-12validation_mbd_rsscs.rs, gen_ts_mbd.py
MBD@rsSCS nuclear gradient, exact (mbd_rsscs_gradient; on an SCF mbd_rsscs_for_scf, used by [dft] dispersion = "mbd" with task = "optimize" and by run_dft(with_gradient=True)): explicit term at fixed volume ratios; Hirshfeld-volume term with the occupied orbitals held fixed (AOs and proatoms follow the atoms, orthonormality term −½ Tr[V D Sˣ D], centroid-anchored lattice response); orbital relaxation from the KS Z-vector (ferric_scf::zvector_ks: closed-shell for RKS; coupled α/β for UKS, with orthonormality term −Σ_σ Tr[V D_σ Sˣ D_σ]; three-block closed/open/virtual for ROKS, with orthonormality term −Tr[Sˣ W_Q], W_Q = D_α V D_α + P_c V P_c + ½ (P_c V P_o + P_o V P_c))explicit: the 8 systems × 2 β above; SCF terms: H2O / STO-3G (HF and PBE), H2O / 6-31G (PBE, PBE0, HSE06, PBE + RI-J), NH3 / 6-31G (PBE); UKS: OH / STO-3G (PBE), NH2, OH (doublets) and O2 (triplet) / 6-31G (PBE, PBE0, HSE06), OH / 6-31G (PBE + RI-J, PBE0 + RI-JK); anchor: H2O / STO-3G RKS run through the UKS path (PBE, PBE0, HSE06); ROKS: HCO (doublet) and CH2 (triplet) / STO-3G (PBE), HCO, NH2 (doublets), CH2 and O2 (triplets) / 6-31G (PBE, PBE0, HSE06), HCO / 6-31G (PBE + RI-J); anchor: H2O / STO-3G RKS run through the ROKS path (PBE, PBE0, HSE06)explicit vs libmbd 0.15.0 force=True (checked against libmbd's own finite differences to ≤ 4.2e-11) and vs central FD in every position and every α₀, C6, R_vdW input; volume term vs central FD of the volumes on a fixed lattice at fixed D; the unrelaxed gradient vs central FD of the pipeline with the reference occupied orbitals re-orthonormalized at each displaced geometry; the exact gradient vs central FD of the full SCF + MBD pipeline, and its relaxation term vs the difference of the two FDsexplicit 6.2e-16 abs vs libmbd; parameter derivatives ≤ 1.3e-6 rel. (FD); volume term 2.5e-8 abs (Slater proatom), 6.5e-9 (tabulated proatom), both at h = 1e-4; unrelaxed 3.4e-9 (H2O/STO-3G HF); exact 8.0e-10 (H2O/STO-3G PBE), ≤ 3.5e-9 (H2O/6-31G, all four), 2.0e-10 (NH3/6-31G) Hartree/Bohr at h = 1e-3; relaxation term (1.0e-5 H2O, 1.6e-6 NH3) vs FD ≤ 3.5e-9; UKS (h = 3e-5): unrelaxed 3.9e-11 and exact 2.9e-11 (OH/STO-3G, h = 1e-3), exact ≤ 1.9e-9 (6-31G, exact J/K), 6.0e-9 (RI-J), 5.0e-9 (RI-JK), relaxation term (2.7e-6–1.0e-5) vs FD ≤ 6.0e-9; the UKS path on a closed shell reproduces the RKS gradient to 3.0e-14; ROKS (h = 1e-3, re-orthonormalizing closed and open orbitals as one set for the unrelaxed FD): unrelaxed ≤ 2.2e-11 against a closed–open cross term of 7.1e-8–3.2e-7, exact ≤ 2.1e-11 (STO-3G), ≤ 2.1e-11 (6-31G, PBE and PBE0), ≤ 4.5e-10 (HSE06), 7.5e-9 (RI-J), relaxation term (2.7e-6–9.8e-6) vs FD ≤ 7.5e-9, every displaced SCF on the reference state (max|ΔD|/h ≤ 0.39 per Bohr); the ROKS path on a closed shell reproduces the RKS gradient to 2.7e-141e-14; 1e-5 rel.; 1e-6 rel. (Slater), 5e-8 rel. (tabulated); 5e-8; 5e-9; UKS 5e-10, anchor 1e-12; ROKS 5e-10, anchor 1e-12validation_mbd_rsscs.rs, mbd_scf_gradient.rs, mbd_scf_gradient_uks.rs, mbd_scf_gradient_roks.rs, unit tests in dispersion/mbd_rsscs.rs
Harmonic frequencies with dispersion (harmonic_frequencies_with_scf_correction; CLI task = "frequencies" + [dft] dispersion, Python run_frequencies(dispersion=...)): central differences of the KS + dispersion analytic gradient, each from the SCF converged at that displaced geometryH2O / STO-3G, PBE (D3(BJ), MBD@rsSCS); H2 / STO-3G HF with a synthetic harmonic-spring correctionD3: the dispersion Hessian vs 4-point second differences of the D3(BJ) energy, and the frequencies vs those of the KS Hessian plus that independent D3 Hessian; MBD: v·H·v along three fixed directions vs second differences of the full SCF + MBD energy; spring: the closed-form spring Hessian; a no-op correction reproduces the plain FD Hessian bit for bitD3 5.3e-9 Hartree/Bohr² (largest element 1.9e-5), frequencies 9.8e-6 cm⁻¹; MBD 1.5e-6 (0.8% of 2.0e-4, limited by noise in the energy differences; without the orbital-relaxation term 3.2e-5); spring 6.6e-8 at a 1e-3 Bohr step (truncation, 25× smaller than at 5e-3)2e-8; 5e-5 cm⁻¹; 3e-6; 2e-7dispersion_frequencies.rs
Static α (direct RPA with a density-fitted Coulomb kernel, no exchange; not CPHF)H2O / aug-cc-pVDZ; CH3OH / cc-pVDZnumpy linear solve on PySCF int3c2e with the same aux basis4.8e-14 rel. same orbitals; 5.3e-10 rel. own SCF5e-13; 5e-9validation_static_alpha.rs, gen_properties.py
Dynamic α(iω) and Casimir–Polder C6 (direct RPA, density-fitted Coulomb kernel, no exchange), molecular and Becke per-atom (molecular_dynamic_polarizability, pdep_polarizability_becke_dynamic, casimir_polder_c6); per-atom α is the Krishtal–Senet–Van Alsenoy intrinsic polarizability (atom-centred Becke dipole on the bra, analytic molecular dipole on the ket; JCP 125, 034312 (2006)) and the charge-transfer remainder α_CT = α_mol − Σ_A α^A (charge_transfer_remainder[_dynamic]); ω = 0 against the static α, molecular and per-atomH2O, N2 / aug-cc-pVDZ (aug-cc-pvdz-rifit)numpy sum over Casida excitations on PySCF int3c2e with the same aux basis, at ferric's 20 Gauss–Legendre nodes (rebuilt with leggauss); per-atom and α_CT on the copy of ferric's Becke grid, α_CT also as the independent charge-flow form 4 (Σ_A R_A q^A)ᵀ R μα(iω) 4.9e-14 rel. same orbitals; C6 6.2e-14; per-atom 3.4e-14; 5.3e-10 own SCF; α_CT,iso(0) is 27.0% (H2O) and 22.7% (N2) of α_iso; α_CT vs charge-flow form 1.1e-4 / 2.0e-5 (grid error of the lab dipole)1e-11; 1e-11; 1e-10; 5e-9; α_CT 1e-10, charge-flow 1e-3validation_pdep_c6.rs, gen_pdep_c6.py
NPZ export ([rpa] export_npz)water / STO-3G, CLI pdep-rpanumpy.load of the CLI's file against the Python bindingsexact (keys, shapes, dtypes, C order, geometry); per-atom and molecular α origin-independent to 3.4e-13 rel.; alpha_ct = alpha_tensor − Σ_A alpha_atomicexact; 1e-11 rel. under translation; 1e-13test_validation_npz_export.py
NPZ export against PySCF: all 30 keys for the default knobs plus the surface ESP, including the C6 block and the PDEP eigenpotentials; each knob turned off removes exactly its keyswater / cc-pVDZ, CLI pdep-rpa with exact J/Knumpy.load of the CLI's file against PySCF integrals contracted with the exported density and orbitals, and against PySCF RHF; α against the numpy dRPA-RI solve; PDEP eigenpotentials against PySCF's generalized dielectric eigenproblem; TS C6 recomputed from the exported α(iω) and the Tkatchenko–Scheffler free-atom tableintegral level ≤2.8e-14; density/orbital-energy/property chain ≤5.9e-10; α 9.2e-11 rel.; PDEP metric 4.3e-12, projector 2.6e-7; C6 recomputed exactly5e-13; 1e-8 (density), 3e-9; 1e-9; 5e-11, 1e-6; 1e-12validation_npz.rs, gen_npz.py
KS-DFT energies: open-shell UKS and second-row closed shellUKS: NH2, CH3, HO2, O2 (triplet) × PBE, B3LYP, ωB97X-V / 6-31G, def2-SVP; RKS: H2S, HCl, SiH4 × PBE, B3LYP, HSE06 / def2-SVP, def2-TZVPPySCF UKS/RKS + stability(), same grid and density fitting; for UKS ωB97X-V both codes use exact J and range-separated DF-K, whose fitting metrics differ, which sets that functional's larger bar; for RKS HSE06 both use exact J and short-range DF-K in the attenuated metricenergy ≤3.1e-12 Ha (PBE, B3LYP), 4.2e-12 Ha (HSE06), 6e-6 Ha (ωB97X-V); ⟨S²⟩ ≤4.6e-9 (PBE, B3LYP), 1.3e-7 (ωB97X-V)energy 1e-10 Ha (PBE, B3LYP, HSE06), 2e-5 Ha (ωB97X-V); ⟨S²⟩ 5e-8, 1e-6validation_ks_energies.rs, gen_ks_energies.py
KS-DFT energies: ROKS (rohf with [dft] functional)NH2, CH3, HO2, OH (degenerate π hole) × PBE, B3LYP / 6-31G, def2-SVPPySCF ROKS, same grid and density fitting (RI-J; RI-K for B3LYP), six starts each polished by second-order SCF and checked with stability(); PySCF's own ROKS does not converge on OH without that polish, and its converged OH points spread by up to 1.3e-6 Ha (π-hole orientation on the grid)8.0e-13 Ha; OH 8.0e-7 Ha1e-11 Ha; OH 5e-6 Havalidation_roks_energies.rs, gen_roks_energies.py
Meta-GGA energies (SCAN, r2SCAN)RKS: H2O, NH3, H2S, CH4 / def2-SVP, def2-TZVP; RI-J (default) and exact J; UKS: NH2 / def2-SVP, def2-TZVPPySCF RKS/UKS + stability(), same grid, density fitting and XC density floorRKS energy ≤ 4.0e-12 Ha, UKS ≤ 2.4e-13 Ha; frontier orbitals ≤ 1.1e-8 Ha; ⟨S²⟩ ≤ 5.2e-10energy 5e-11 Ha; orbitals 1e-7 Ha; ⟨S²⟩ 5e-9validation_mgga_energies.rs, gen_mgga_energies.py
RSH ω tuning (tune_omega): the objective J(ω) = ε_HOMO(N) + E(N−1) − E(N) (signed; the tuner minimizes |J|) and the tuned ω*H2O, NH3 / def2-SVP, ωB97X-V: J at ω = 0.2, 0.3, 0.4, 0.5, 0.6 Bohr⁻¹ and ω*; N2 / def2-SVP: J at ω = 0.2–0.5 only, because the N2⁺ cation turns UKS-unstable (hole localization) between ω = 0.53 and 0.56, below J's rootPySCF RKS neutral and stability-checked doublet UKS cation with mf.omega overridden, same grid, exact J on both states and range-separated DF-K; ω* from brentq on J. Both states use exact J, as tune_omega does by defaultε_HOMO ≤6.7e-6 Ha (N2 4.8e-7); IP ≤8.8e-7 Ha; J ≤6.3e-6 Ha; ω* ≤2.8e-5 Bohr⁻¹2e-5 Ha; 5e-6 Ha; 2e-5 Ha; 1e-4 Bohr⁻¹validation_rsh_omega.rs, gen_rsh_omega.py
Constrained DFT (Becke charge and spin constraints): E(N) − E_unconstrained, λ, and dE/dN = −λLiH (Li), HF (F), H2O⁺ (O; charge and spin) / 6-31G, def2-SVP, 3–4 targets eachNWChem 7.2.2 cdft ... pop becke, PBE, Becke-partitioned Treutler grid, fed ferric's basis; internal: natural-target limit (λ = 0) and dE/dN = −λunconstrained E 1.0e-8 Ha; E(N) − E_unc 2.0e-7 Ha; λ 1.1e-6 (NWChem, grid limit); dE/dN = −λ to 2.3e-12 Ha (Simpson, def2-SVP)5e-8 Ha; 1e-6 Ha; 5e-6; 5e-11 Havalidation_cdft.rs, gen_cdft.py, NWChem inputs
Constrained DFT state selection at an integer target: which constrained state ferric lands on, seeded from NWChem's orbitals (solve_cdft_uhf_seeded, CdftSeed) and unseeded with and without the stability descentHeNe⁺ (N_He = 2, R = 2.0 Å), LiH⁺ (N_Li = 2.8, R = 3.0 Å) / def2-SVP, two states eachNWChem 7.2.2 cDFT (HF exchange), run both with its native Becke partition and with ferric's He/Ne radius ratio by relabelling the atoms; NWChem orbitals imported into ferric (AO order and the d(m=+1) sign mapped and checked)one-shot energy of NWChem's orbitals ≤ 4.7e-10 Ha; seeded and unseeded states ≤ 7.7e-10 Ha after the quadrature correction; λ 3.2e-5 (HeNe⁺), 2.9e-7 (LiH⁺)1e-8 Ha; 1e-8 Ha; 1e-4validation_cdft_state.rs, gen_cdft_state.py
cDFT-ET coupling (Wu–Van Voorhis, coupling_hab) and its ingredients: determinant overlap, one- and two-electron transition elements, |V|; KS-PBE diabats end to endHe₂⁺ at 2.50/3.00/3.50 Å / def2-SVP, aug-cc-pVDZNWChem 7.2.2 cDFT + et (its MO files recomputed in PySCF, every et number reproduced to ≤ 5.9e-11); the textbook form F = E + λN with its constraint-offset invariancekernel ≤ 5.9e-11 Ha; coupling vs textbook ≤ 2e-18; E − E_unc ≤ 4.0e-7 Ha; λ ≤ 6.6e-6; |S| ≤ 2.8e-3 rel., |V| ≤ 8.3e-4 rel. (both largest at def2-SVP 3.50 Å, where |S_AB| = 3.9e-4 is the smallest of the six points; the absolute S offset is a flat 1.7e-7–1.1e-6 across the row, and V ∝ S so its relative error is smaller than S's everywhere); all six points converge end to end, deepest inner SCF 106 iterations (cap 150)2e-10 Ha; 1e-12; 2e-6 Ha; 3e-5; 4e-3 rel. (S); 2e-3 rel. (V)validation_cdft_et.rs, gen_cdft_et.py
IEF-PCM solver and SCF on PySCF's cavity; ferric's own cavitywater, NH3 / STO-3G, cc-pVDZ; ε = 78.4, 4.7PySCF RHF.PCM() IEF-PCM; its SWIG cavity injected into ferriccharges 1.3e-17, E_pcm 3.5e-18 Ha (solver); total energy 4.8e-12 Ha (SCF); ferric's own cavity (modified-Bondi radii, 110-point spheres) 0.07–0.61% from PySCF1e-11 Ha (solver); 1e-10 Ha (SCF); own cavity ±2%validation_pcm.rs, gen_pcm.py
Geometry optimization, RHF and RKSH2O, NH3, CH2O from distorted starts / RHF and B3LYP 6-31G, PBE cc-pVDZPySCF analytic gradient (KS with grid response) driven to max abs gradient ≤ 1e-6 Ha/Bohr by scipy BFGS; exact J/Kdistances ≤ 2.6e-6 Bohr; angles ≤ 1.1e-4°; optimized energies ≤ 9.3e-13 Ha2e-5 Bohr; 1e-3°; 1e-10 Havalidation_geometry_optimization.rs, gen_geometry_optimization.py
Geometry optimization, UHF, ROHF and UKSHO2, CH3, NH2 from distorted starts / UHF, ROHF, UKS-PBE 6-31GPySCF analytic gradient driven to max abs gradient ≤ 1e-6 Ha/Bohr by scipy BFGS; stability() at start and enddistances ≤ 2.6e-6 Bohr; angles ≤ 1.1e-4°; optimized energies ≤ 9.3e-13 Ha; ⟨S²⟩ ≤ 4.9e-9 (UHF, UKS; ROHF is a pure spin state and is not checked)2e-5 Bohr; 1e-3°; 1e-10 Ha; 5e-8 (⟨S²⟩, UHF and UKS)validation_geometry_optimization.rs, gen_geometry_optimization.py
G0W0@HFH2O / cc-pVDZPublished MOLGW IP (11.97 eV); PySCF gw_ac (IP 12.160 eV)—0.30 eV (IP); 0.20 eV (PySCF LUMO and gap)h2o_g0w0_cohsex.rs
MP3 (RI integrals)H2O, NH3 / cc-pVDZ, def2-SVP; all-electron and frozen coreexact-integral PySCF RHF, then the same aux basis and DF factorization as ferric; two independent numpy MP3 constructions (spin-orbital textbook, closed-shell via PySCF's linear doubles residual), agreeing to 2e-17≤ 7.6e-12 Ha1e-10 Havalidation_cc.rs, gen_cc.py, reference data
RI-CCDH2O, NH3 / cc-pVDZ, def2-SVPexact-integral PySCF RHF, then the same aux basis and DF factorization as ferric; PySCF CCD on the DF integrals≤ 1.9e-11 Ha2e-10 Havalidation_cc.rs, gen_cc.py, reference data
RI-CCSD, spin-orbital and spin-adaptedH2O, NH3 / cc-pVDZ, def2-SVP; HCN / cc-pVDZ; H2O / aug-cc-pVDZ; C2H6 / cc-pVDZ (spin-adapted only)exact-integral PySCF RHF, then the same aux basis and DF factorization as ferric; PySCF CCSD on the DF integrals≤ 4.7e-11 Ha (both solvers)2e-10 Havalidation_cc.rs, gen_cc.py, reference data
CCSD(T), spin-orbital and spin-adapted (T)H2O / cc-pVDZ, aug-cc-pVDZ; HCN / cc-pVDZ; C2H6 / cc-pVDZ (spin-adapted only)exact-integral PySCF RHF, then the same aux basis and DF factorization as ferric; PySCF ccsd_t on the DF integrals(T) ≤ 6.9e-12 Ha; the two (T) codes agree to 8.9e-121e-10 Havalidation_cc.rs, gen_cc.py, reference data
CAS-CI (library only: ferric_ci::run_cas_ci, closed-shell RHF reference, lowest Ms = 0 root): total, core and active-space energiesN2 at r = 1.10 and 2.20 Å, CAS(6,6) / cc-pVDZ; H2O, CAS(4,4) / 6-31G; each also with the window moved down one orbitalPySCF mcscf.CASCI on an exact-integral RHF with the same orbital window, checked against a dense diagonalization of the full active-space Hamiltonian. At 2.20 Å both codes use the symmetric RHF, which is internally unstable toward a symmetry-broken RHF 0.19 Ha lowerE_CASCI ≤ 1.4e-11 Ha; e_core and the active-space energy ≤ 2.6e-10 Ha; E_RHF 2.2e-12 Ha3e-9 Ha (CAS-CI energies), 5e-11 Ha (E_RHF)validation_casci.rs, gen_casci.py
G0W0 quasiparticle energies, HOMO−2 to LUMO+2, @HF and @PBE (and @HF with one frozen core orbital)H2O, NH3, N2 / cc-pVDZ (cc-pvdz-ri), aug-cc-pVDZ (aug-cc-pvdz-rifit); @PBE: H2O / both bases, N2 / cc-pVDZPySCF gw_ac fed ferric's basis and aux, with the same 100-point frequency grid, Padé nodes, full quasiparticle equation and exact-integral SCF; @PBE references apply ferric's XC density floor (ρ ≤ 1e-10) and evaluate the Padé as the standard Thiele fraction, because PySCF's pade_thiele_ndarray applies its last coefficient twice (up to 7.1e-3 Ha at @PBE)@HF ≤ 1.3e-7 Ha, @PBE ≤ 6.2e-8 Ha; Σc(ef + iω) at the Padé nodes ≤ 8.6e-11 Ha; Σx ≤ 4.9e-9 Ha1e-6 Ha (Σc(iω) 1e-9)validation_gw.rs, gen_gw.py
G0W0@HF with ECPsI2, Xe, Ag2 / aug-cc-pVDZ-PP (def2-tzvp-rifit)PySCF gw_ac, same basis, inline ECP and aux≤ 2.5e-6 Ha (ε_mf 2.9e-6 from the ECP SCF offset)2e-5 Ha″
U-G0W0@UHFOH, CH3, NH2 / cc-pVDZ, aug-cc-pVDZ; O2 and CH2 triplets / aug-cc-pVDZPySCF ugw_ac on a stability-checked UHF, with ferric's per-spin Fermi level≤ 8.7e-7 Ha; OH/cc-pVDZ 7.0e-6 Ha (its π hole makes the UHF marginally stable)3e-5 Ha″
U-G0W0@UKS/PBE (gw with [rpa] xc and multiplicity > 1)OH, CH3, NH2 / cc-pVDZ (cc-pvdz-ri)PySCF ugw_ac Σc(ef + iω) on a stability-checked exact-J UKS/PBE with ferric's per-spin XC density floor and per-spin Fermi level; standard Thiele continuation and the quasiparticle equation solved in numpy with the density-fitted Σx, because PySCF's ugw_ac vhf_df exchange has the wrong signΣc(ef + iω) ≤8.7e-9 Ha, v_xc ≤7.1e-10 Ha, quasiparticle energies ≤2.6e-8 Ha on orbitals whose quasiparticle equation has one root (NH2's α HOMO and HOMO−1 have three within 1 Ha and are not compared); ferric solves each spin's quasiparticle equation with Σx − v_xc inside it, as the reference does; adding the shift after an unshifted solve lands 0.38–0.96 eV away, and the test requires ferric to miss that rootΣc(ef + iω) 1e-7 Ha; v_xc 1e-8 Ha; quasiparticle energies 3e-7 Havalidation_gw.rs, gen_gw.py
COHSEX (@HF and @PBE), evGW₀, evGW (@HF)COHSEX: H2O, N2 / cc-pVDZ; evGW₀, evGW: H2O / cc-pVDZnumpy COHSEX on PySCF's density-fitted integrals; @PBE on the exact-J RKS/PBE orbitals with ferric's XC density floor, plus the static Σx − v_xc from PySCF's density-fitted exchange and v_xc; anchored to U-COHSEX on the same RKS orbitals as UKS (1.1e-15 Ha); evGW₀ and evGW by iterating PySCF's get_sigma with ferric's update ruleCOHSEX@HF 9.4e-10 Ha; COHSEX@PBE 1.2e-9 Ha; evGW₀/evGW 5.7e-7 Ha1e-8 / 1e-8 / 5e-6 Ha″
U-COHSEX@UHF (static, HF reference, spin-summed W)OH, CH3, NH2 / cc-pVDZ (cc-pvdz-ri), aug-cc-pVDZ (aug-cc-pvdz-rifit); O2 and CH2 triplets / aug-cc-pVDZ; H2O / cc-pVDZ singlet UHF against the closed-shell COHSEXnumpy U-COHSEX on PySCF's density-fitted integrals with ferric's aux, W from ε = I + Π_α + Π_β, on the stability-checked UHF of the U-G0W0 row; the singlet UHF numpy reproduces the closed-shell COHSEX reference to 2.1e-9 Haε_qp ≤ 3.3e-9 Ha (open shell); the singlet UHF through run_u_gw equals closed-shell COHSEX to 8.1e-103e-8 Ha (anchor 1e-8)validation_u_cohsex.rs, gen_u_cohsex.py, reference data
U-RPA, U-G0W0 and U-RI-MP2 (doubles only) on a ROHF reference, semi-canonicalized per spinOH, CH3 doublets / cc-pVDZ (cc-pvdz-ri)PySCF URPA, ugw_ac and a numpy UMP2 (checked against DFUMP2) on the ROHF orbitals semi-canonicalized in numpy (each spin's Fock diagonalized in its occupied and virtual blocks); the ROMP2 singles term is not included on either sideU-RPA E_c ≤ 7.3e-12 Ha, U-MP2 E_c ≤ 8.7e-12, U-G0W0 QP ≤ 1.5e-5 (OH β) and ≤ 1.3e-6 (CH3); semicanonical orbital energies ≤ 6.4e-101e-10 Ha (E_c), 5e-5 Ha (QP)validation_rohf_reference.rs, gen_rohf_semicanonical.py, reference data
BSE-TDA singlet excitation energies and oscillator strengths (G0W0@HF, static W, frozen core 0)H2O / cc-pVDZ (cc-pvdz-ri), aug-cc-pVDZ (aug-cc-pvdz-rifit); NH3, CH2O / cc-pVDZ; lowest five singletsnumpy BSE-TDA on PySCF density-fitted integrals with ferric's aux, W from the static RPA dielectric on HF energies; the kernel is diagonalized on ferric's own quasiparticle energies, because G0W0 energies of core and high virtual orbitals move by up to 0.29 Ha under a 1e-10 relative change of Σc(iω); CIS limit (W replaced by the bare Coulomb interaction, HF energies) against the same numpy build and PySCF tdscf.TDAΩ ≤ 1.8e-10 Ha and oscillator strengths ≤ 2.6e-9 against the kernel on ferric's QP energies; ≤ 2.2e-7 Ha with each side's own QP energies; CIS anchor ≤ 1.6e-9 Ha vs numpy DF-CIS2e-9 Ha (Ω), 3e-8 (f), 2e-6 Ha (own QP)validation_bse.rs, gen_bse.py
TDA and Casida TDDFT excitation energieswater, formaldehyde, NH3 / 6-31G, aug-cc-pVDZPySCF tddft.TDA/TDDFT, same RI and gridHF ≤ 2e-6 eV; LDA/PBE ≤ 2e-5 eV; B3LYP ≤ 6.5e-4 eV1e-3 eVvalidation_tddft.rs, gen_tddft_refs.py
RI-MP2 analytic gradient (all electrons, exact-J/K RHF)distorted H2O, bent HCN / cc-pVDZ (cc-pvdz-ri); distorted NH3 / def2-SVP (def2-svp-rifit)ORCA RI-MP2 NoRI NoFrozenCore EnGrad with the same /C aux; PySCF DFMP2 5-point finite differences≤ 2.1e-9 Ha/Bohr (PySCF FD); ≤ 5.1e-8 Ha/Bohr (ORCA, its own floor); energies ≤ 1.3e-10 Ha2e-8 Ha/Bohr (FD), 2.5e-7 Ha/Bohr (ORCA); 1e-9 Havalidation_rimp2_gradient.rs, gen_rimp2_gradient.py
COSMO solvation (RHF, UHF)H2O, NH3, CH3OH, acetate(−) / STO-3G, cc-pVDZ × ε 4.7, 78.4; HO2 (UHF) / cc-pVDZPySCF pcm.py COSMO driver with ferric's radii, 110-point cavity and point-charge potential (ferric's model); stock PySCF COSMO for the formulation gapsolvated energy ≤ 1.9e-11 Ha, E_cosmo ≤ 9.7e-11 Ha (ferric's model); 0.05–0.51% from stock PySCF COSMO (point vs Gaussian surface charges)1e-10 Ha; 1e-9 Ha; 2%validation_cosmo.rs, gen_cosmo.py
Attenuated RI-MP2 (erfc on 3-center and metric)H2O, NH3 / aug-cc-pVDZ + aug-cc-pVDZ-RIFIT, ω 0.2, 0.222, 0.42, 1.0 Bohr⁻¹numpy RI-MP2 on PySCF int3c2e/int2c2e under with_range_coulomb(-ω)E_corr ≤ 5.9e-12 Ha at every ω; ω → 0 reproduces Coulomb RI-MP2 to 1.6e-151e-10 Havalidation_attenuated_mp2.rs, gen_attenuated_mp2.py
QM/MM electrostatic embedding (RHF): energy, embedding shift, QM gradient, MM forcesH2O + 10 charges / cc-pVDZ, aug-cc-pVDZ; CH3OH + 501 TIP3P charges / 6-31GPySCF qmmm.mm_chargeenergy and shift ≤ 4.8e-12 Ha; QM gradient ≤ 1.2e-10, MM forces ≤ 4.4e-12 Ha/Bohr (up to 501 charges)5e-11 Ha; 1e-9, 5e-11 Ha/Bohrvalidation_qmmm.rs, gen_qmmm.py
Gaussian-smeared MM charges (width in Bohr, ζ = 1/width², same as PySCF radii with unit="Bohr")H2O + 10 charges / cc-pVDZ, widths 0.5, 1, 2 BohrPySCF qmmm.mm_charge(radii=)energy ≤ 4.1e-12 Ha; QM gradient ≤ 1.2e-10 Ha/Bohr; width → 0 reproduces point charges to 3.0e-12 Ha5e-11 Ha; 1e-9 Ha/Bohr″
KS QM/MM (exact J/K, matched (75,110) grid; gradient with grid response)CH3OH + 20 charges / def2-SVP, B3LYP and PBEPySCF qmmm.mm_charge on dft.RKS, grid_response=Trueenergy ≤ 4.1e-12 Ha; QM gradient ≤ 2.9e-9, MM forces ≤ 1.8e-10 Ha/Bohr1e-10 Ha; 3e-8, 2e-9 Ha/Bohr″
Thole polarizable embedding (induced point dipoles, exponential Thole damping a = 2.1304): energy, E_pol, induced dipoles, QM gradient, MM rowsH2O + 4 TIP3P waters (α O 0.837, H 0.496 ų; with and without intramolecular exclusions) / cc-pVDZ, RHF; NH2 + 3 waters / cc-pVDZ, UHF; anchors: one site 30 Å away (classical limit −½α|E0|²), α → 0 (PySCF qmmm.mm_charge)numpy induction model on PySCF point-dipole field integrals and qmmm.mm_charge, self-consistent in the SCF; gradients by 5-point finite differencetotal energy ≤ 3.7e-12 Ha, E_pol ≤ 1.5e-9, induced dipoles ≤ 1.5e-9 a.u., QM and MM gradients ≤ 3.0e-9 Ha/Bohr; far-site E_pol within 7.7e-8 (relative) of −½α|E0|²5e-11 Ha (total), 1e-8 (E_pol, dipoles), 3e-8 Ha/Bohrvalidation_thole.rs, gen_thole.py
MM force field (ferric-mm): bond, angle, torsion, Coulomb and LJ energies and gradients, exclusion and 1-4 pair setsALA-ALA, ACE-PHE-NME, TRP-PRO-ASP (charge −1), ACE-PHE-NME + 3 TIP3P waters, at the relaxed geometry and two random displacements; one extra case with every torsion phase shifted by 37°OpenMM Reference platform (double precision), ff14SB and flexible TIP3P, no cutoff; Coulomb and LJ split by evaluating copies of the nonbonded force with epsilons or charges zeroedenergies ≤ 1.75e-12 relative, gradients ≤ 8.5e-11 relative (after OpenMM's Coulomb constant, which differs from ferric's by 6.6e-11 relative); pair sets identical1e-11 (energy), 1e-9 (gradient), relativevalidation_mm.rs, gen_mm.py
External potential in the RI-MP2 analytic gradientH2O + 10 charges / cc-pVDZ; CH3OH + 20 charges / 6-31G; aux cc-pVDZ-RI5-point finite difference of PySCF DFMP2 on qmmm.mm_charge RHF, same auxenergies ≤ 8.4e-12 Ha; RI-MP2 gradient ≤ 4.8e-9 Ha/Bohr vs PySCF FD1e-10 Ha; 3e-8 Ha/Bohrvalidation_qmmm_mp2_gradient.rs, gen_qmmm.py
κ-regularized RI-MP2 (κ = 0.5, 1.1, 2.0 Eh⁻¹; opposite- and same-spin parts)H2O, CH4 / cc-pVDZ (cc-pvdz-ri)numpy (1 − exp(−κΔ))² sum on PySCF density-fitted integrals with the same aux basis; κ → ∞ checked against PySCF DFMP2E_corr (OS, SS, total) ≤ 3.3e-12 Ha at κ = 0.5, 1.1, 2.0; κ → ∞ equals RI-MP2 exactly3e-11 Havalidation_kappa_mp2.rs, gen_kappa_mp2.py
AO-Laplace RI-MP2 (compute_mo and compute_ao, n_quad 3/5/7, all electrons)H2O / cc-pVDZ and aug-cc-pVDZ, CH4, s-trans-1,3-butadiene, n-octane / cc-pVDZ (cc-pvdz-ri, aug-cc-pvdz-rifit)TWO numpy references on PySCF density-fitted integrals with the same aux basis: the dense (i,a,j,b) sum with the exact 1/Δ (equal to PySCF mp.dfmp2.DFMP2 to 6.7e-16), and the SAME sum with 1/Δ → Σ_k w_k e^(−t_k Δ) over the identical minimax nodes parsed from minimax.rs, which isolates quadrature error from implementation errorMO ≡ AO ≤ 3.4e-13 Ha; vs the quadrature-isolated reference (implementation error) ≤ 3.1e-11 Ha; vs exact DF-MP2 at n_quad = 7 (quadrature error) 8.0e-9 (CH4, R = 19.0), 4.0e-8 (octane, R = 24.5), 1.5e-7 (butadiene, R = 33.7), 8.3e-8 (H2O, R = 36.4), 2.2e-7 (H2O/aug, R = 45.7) — the error tracks R, and no case approaches the k = 7 table limit R ≤ 10001e-10 Ha (MO ≡ AO); 1e-9 Ha (vs quadrature reference); 2e-6 Ha (vs exact DF-MP2)validation_laplace_mp2.rs, gen_laplace_mp2.py, reference data
Local RI-MP2 (rimp2 with [local] scheme = "amplitude-threshold"), in-core (global and per-pair domain fit) and integral_direct, at ε = 0 with every locality map at its no-op limit; finite ε as a measured error mapH2O, n-butane / cc-pVDZ, 6-31G (cc-pvdz-ri), frozen core 0 and one per heavy atom; finite ε on n-butane / cc-pVDZPySCF DFMP2 with the same aux basis (canonical orbitals, closed-form denominators), checked against a dense numpy sum to 1e-12. ORCA 6.1.1 DLPNO-MP2 (NormalPNO, TightPNO) on n-butane and n-octane / cc-pVDZ is recorded as a ballpark only: it truncates by PNO occupation, not by an amplitude threshold, so the two recoveries are not comparedE_corr ≤ 1.1e-11 Ha at ε = 0 (24 comparisons). At ε = 1e-5, 1e-4, 1e-3 (n-butane, all electrons) ferric recovers 99.98%, 99.67%, 95.0% of DF-MP2 in-core and 99.98%, 99.65%, 95.0% integral-direct with its production maps; ORCA DLPNO-MP2 recovers 99.97% (NormalPNO) and 99.99% (TightPNO) of its own RI-MP21e-10 Ha (ε = 0); finite ε: under-correlation that grows with ε, no tolerancevalidation_lmp2_amplitude.rs, gen_lmp2_amplitude.py
LinLCCD(hh) correlation energyH2O, NH3 (RHF); OH (UHF, stability-checked) / 6-31G, cc-pVDZ (cc-pvdz-ri)numpy exact linear solve of the hole–hole ladder equations on PySCF density-fitted integrals; ladder off checked against PySCF DFMP2/DFUMP2LinLCCD(hh) ≤ 4.4e-13 Ha closed shell, 1.2e-12 Ha OH UHF; ladder off equals RI-MP2 to 1.1e-161e-11 Havalidation_linlccd.rs, gen_linlccd.py
Amplitude-threshold LinLCCD at ε = 0, all three variants (drivers-only, hh, full), global and integral-direct paths, plus exact canonical LinLCCD of each variantH2O, NH3 (RHF) / 6-31G, cc-pVDZ (cc-pvdz-ri)numpy exact linear solves on PySCF density-fitted integrals: hh in the occupied-pair eigenbasis, full (hh + pp ladders) as a Sylvester equation in the joint eigenbasis, each in spin orbitals and spin-adapted (agree ≤ 1.1e-16); no ladder checked against PySCF DFMP2local ≤ 4.4e-13 Ha (drivers-only), 2.8e-13 (hh), 2.0e-13 (full); integral-direct ≤ 3.0e-13; exact canonical ≤ 4.4e-13; at finite ε (NH3/cc-pVDZ, hh) the error is +1.6e-13 at ε = 1e-6, +2.7e-9 at 1e-5, +1.07e-5 Ha at 1e-45e-12, 3e-12, 2e-12 Ha; 3e-12; 5e-12validation_linlccd_amplitude.rs, gen_linlccd.py
ωB97X-L-V components: E_KS (libxc ωB97X-V form with the paper's 18 parameters, VV10 b = 10, C = 0.01), λ·E_c = LinLCCD(hh) under λ·erfc(ωr)/r (λ = 0.6, ω = 0.1), total; Be₂ bond energy E(10 000 Å) − E(r_e)H2O (RKS, exact J and RI-J), OH (ROKS → semicanonical → unrestricted) / def2-SVP (def2-svp-rifit, def2-universal-jkfit); Be₂ / def2-QZVPPDPySCF KS with register_custom_functional_ ext params on ferric's (75,110) grid; numpy LinLCCD(hh) on PySCF density-fitted λ·erfc integrals; ladder off equals λ² × PySCF SR-MP2; Be₂: paper Table 4 (2.3 kcal/mol)E_KS ≤ 1.05e-9 Ha; λ·E_c on the same orbitals 7.2e-14 Ha; total on ferric's orbitals 1.1e-7 Ha; Be₂ 2.299 kcal/mol1e-8; 1e-11; 5e-7 Ha; 0.3 kcal/molvalidation_wb97xlv.rs, wb97x_l_v_be2_bde.rs, gen_wb97xlv.py
OO-RI-MP2 energy and analytic nuclear gradient (all electrons, exact-J/K Fock, RI correlation)distorted H2O, distorted NH3 (RHF, energy and gradient); CH3 doublet (UHF, energy) / cc-pVDZ (cc-pvdz-ri)Energy: an independent numpy OO-RI-MP2 on PySCF integrals (exact J/K, the same aux, minimized to max orbital gradient ≤ 1e-10, anchored to PySCF SCF + DF-MP2 at zero rotation); cross-check: ORCA OO-RI-MP2 NoRI NoFrozenCore with the same /C aux, which stops 3.7e-8 to 7.0e-8 Ha above the minimum (reference/doubles split off by up to 1.5e-5 Ha). Gradient: 5-point finite difference of ferric's own OO energy; loose cross-checks against the finite difference of ORCA's OO energy and ORCA's analytic EnGrad (which misses that finite difference by up to 8e-6 Ha/Bohr)total 7.5e-13 Ha, reference/doubles split 6.4e-10 Ha vs numpy; gradient 8.0e-9 Ha/Bohr vs own FD, 2.0e-7 vs the FD of ORCA's energy1e-11 Ha (total), 5e-9 Ha (split), 2e-7 Ha (vs ORCA); 1e-7 Ha/Bohr (own FD), 1e-6 Ha/Bohr (ORCA FD)validation_oo_rimp2.rs, gen_oo_rimp2.py, ORCA inputs
Unrestricted RI-MP2 (rimp2 with multiplicity > 1): E_corr and the αα, ββ, αβ blocksOH, CH3, NH2, O2 (triplet), HO2 / cc-pVDZ (cc-pvdz-ri); HO2 also with frozen core 2PySCF DFUMP2 with the same aux on a stability-checked exact-integral UHF; αα and ββ split by an independent numpy build anchored to DFUMP2's same-spin and opposite-spin energies to 1e-11 HaE_UHF ≤2.8e-12 Ha; every MP2 energy ≤9.2e-10 Ha (HO2), ≤5.8e-11 Ha elsewhere3e-11 Ha; 1e-8 Havalidation_u_rimp2.rs, gen_u_rimp2.py
OO-RI-MP2 with a def2 ECP: energy and analytic nuclear gradient (core Hamiltonian includes V_ECP; gradient includes the ECP derivative term)HI at 1.75 Å (RHF) / def2-SVP (def2-svp-rifit), gradient on the I atomEnergy: the independent numpy OO-RI-MP2 extended with PySCF's ECP core Hamiltonian (ECP read from ferric's basis JSON), anchored to PySCF RHF + DF-MP2 at zero rotation; gradient: 5-point finite difference of ferric's own OO energyOO total 1.5e-8 Ha (the ECP integral offset the RHF energy also carries); doubles 5.5e-11 Ha; gradient 2.3e-9 Ha/Bohr vs its own finite difference2.5e-7 Ha; 5e-8 Ha/Bohrvalidation_oo_rimp2_ecp.rs, gen_oo_rimp2_ecp.py, zero-rotation anchors in oo_rimp2_ecp.rs
Open-shell PDEP-RPA correlation energy (UHF reference, full rank, spin-summed dielectric)OH, CH3, NH2 (doublets), O2 (triplet) / cc-pVDZ (cc-pvdz-ri); OH / aug-cc-pVDZ (aug-cc-pvdz-rifit); H2O / cc-pVDZ through both the restricted and the unrestricted pathPySCF gw.urpa.URPA (and gw.rpa.RPA for H2O) on the same stability-checked exact-integral UHF, same aux basis and the same 40-point Gauss–Legendre frequency grid; cross-checked by numpy on PySCF's density-fitted integrals; truncation checked against a numpy emulation≤ 9.2e-11 Ha (OH/aug-cc-pVDZ); truncated 6.4e-11; U path vs R path at the closed-shell limit 3.2e-121e-9 Ha (U vs R 3e-11)validation_urpa.rs, gen_urpa.py
dRPA@HF by the drCCD Riccati solve (drpa, exact) and its local approximation ([local] amplitude threshold); closed shell, frozen core 0, 1 and (n-butane) 4H2 / STO-3G (STO-3G aux); H2O, n-butane / 6-31G, cc-pVDZ (cc-pvdz-ri); n-octane / 6-31G (cc-pvdz-ri), carbon cores frozen, ε = 0 to 1e-3numpy plasmon dRPA on PySCF density-fitted integrals with the same aux basis and an exact-J/K RHF, Fock semicanonicalized, Ω² from a symmetric eigensolve; the formula and its frozen cores match PySCF gw.rpa.RPA on the same integrals (≤ 3.6e-11 Ha at 160 frequency points) and the H2 value matches the proof notebook's −0.0126072623 (3.7e-11)ε = 0: ≤ 3.0e-11 Ha on the CLI's exact route, the integral-direct route and the in-crate canonical plasmon reference. n-octane, ε = 1e-6 / 1e-5 / 1e-4 / 1e-3: error +6.7e-7 / +3.9e-5 / +5.5e-4 / +1.0e-2 Ha (less correlation) at 82 / 50 / 18 / 2.8% of amplitudes kept; there is no external finite-ε reference3e-10 Ha (ε = 0)validation_drpa_amplitude.rs, gen_drpa_amplitude.py; references in testdata/reference/validation/drpa_amplitude/
Attenuated PDEP-RPA correlation energy (erf and erfc on the 3-center integrals and the metric; closed shell, full rank)H2O, NH3 / cc-pVDZ (cc-pvdz-ri); H2O / aug-cc-pVDZ (aug-cc-pvdz-rifit); ω 0.2, 0.222, 0.42, 1.0 Bohr⁻¹numpy dRPA on PySCF int3c2e/int2c2e under with_range_coulomb(±ω), the same metric factorization as ferric (eigh with a 1e-10 cutoff for erf, Cholesky for erfc), the same RHF and the same 40-point Gauss–Legendre grid; the Coulomb kernel matches PySCF gw.rpa.RPA to 1.6e-14 Ha; erfc(ω → 0) and erf(ω → ∞) reproduce Coulomb RPA≤ 5.8e-11 Ha (erf), 3.5e-11 (erfc), 4.5e-11 (Coulomb); the ω → 0 erfc and ω → ∞ erf limits equal Coulomb RPA to 4.9e-111e-9 Ha (erf), 5e-10 (erfc, Coulomb, limits)validation_attenuated_rpa.rs, gen_attenuated_rpa.py
RS-MP2-RPA correlation energy, formulations B (DeltaLr: E_MP2[Coulomb] + E_dRPA[erf] − 2·E_OS[erf]) and T (CoupledRings: E_MP2[Coulomb] + ΔdRPA[Coulomb] − ΔdRPA[erfc]); every reported componentH2O, NH3 / cc-pVDZ (cc-pvdz-ri); H2O / aug-cc-pVDZ (aug-cc-pvdz-rifit); ω 0.222 (= 0.420 Å⁻¹, the default) and 0.42 Bohr⁻¹numpy assembly on PySCF int3c2e/int2c2e under with_range_coulomb(±ω): RI-MP2 spin components and dRPA from the same fitted integrals ferric uses per operator (eigh with a 1e-10 cutoff for erf, Cholesky otherwise), 40-point Gauss–Legendre grid; Coulomb pieces match PySCF DFMP2 to 3.3e-16 Ha and gw.rpa.RPA to 1.7e-14 Ha; the frequency-integrated second-order ring term equals 2·E_OS to 3.2e-15 relative; exact limits B, T(ω → 0) = MP2 and B, T(ω → ∞) = MP2 + ΔdRPA[Coulomb]every component ≤ 4.7e-11 Ha (MP2 pieces 4.2e-11, dRPA pieces 2.9e-11, B/T e_corr 4.3e-11); ω → 0 and ω → ∞ limits to 4.3e-115e-10 Havalidation_rs_mp2_rpa.rs, gen_rs_mp2_rpa.py
Closed-shell RPA nuclear gradient (total_rpa_gradient: central finite difference of E_RHF + E_c^RPA, exact-J/K RHF reference, full rank; all electrons and one frozen core orbital)distorted H2O, distorted NH3 / cc-pVDZ (cc-pvdz-ri)finite differences of PySCF exact-integral RHF + gw.rpa.RPA with the same aux basis and the same 40-point Gauss–Legendre frequency grid (5-point stencil step-converged to 7.4e-10 Ha/Bohr, and the 3-point stencil at ferric's step); 5-point finite difference of ferric's own energy; controls: RHF gradient, E_c-only gradient, all-electron vs frozen core, 6- vs 40-point gridE_c ≤ 1.5e-13 Ha; gradient ≤ 1.9e-9 Ha/Bohr vs PySCF at the same 3-point step, ≤ 5.7e-8 vs a converged 5-point FD (the 3-point truncation); sum over atoms ≤ 4.8e-91e-12 Ha (E_c); 2e-8 (same step), 2e-7 (5-point) Ha/Bohrvalidation_rpa_gradient.rs, gen_rpa_gradient.py
RI-MP2 size-extensivityH2 dimer at large separation2 × monomer2e-12 Ha1e-7 Harimp2_size_extensivity.rs
RHF/UHF/ROHF/KS gradients, including density-fitted J/Kwater, OH, HO2 / cc-pVDZ, 6-31Gfinite differences of the energy; PySCF df.grad1e-7 to 3e-7 Ha/Bohr (FD); ~1e-10 (PySCF)1e-6 Ha/Bohrdf_jk_gradient.rs
Analytic RHF Hessian (skeleton one- and two-electron, overlap/W and CPHF response terms) and its harmonic frequenciesH2O, NH3, CH2O / cc-pVDZ; distorted H2O / def2-SVPPySCF hessian.rhf (analytic, and its skeleton partial_hess_elec + hess_nuc); PySCF finite differences of its analytic gradient; ferric's own gradient differencedtotal Hessian ≤ 1.6e-7 Ha/Bohr² vs PySCF analytic (≤ 8.2e-8 at cc-pVDZ); skeleton ≤ 5.9e-10; frequencies ≤ 6.9e-4 cm⁻¹; each skeleton term vs a finite difference of its gradient piece ≤ 3.4e-81e-6 Ha/Bohr² (total), 1e-8 (skeleton), 1e-2 cm⁻¹validation_rhf_hessian.rs, rhf_hessian_fd.rs, gen_rhf_hessian.py
Analytic UHF Hessian (skeleton one- and two-electron, overlap/W and coupled α/β CPHF response terms) and its harmonic frequenciesOH (²Π), NH2 (²B1), CH2 (³B1) / cc-pVDZ; tilted OH and off-C2v CH2 / STO-3G, 6-31GPySCF hessian.uhf on the lowest internally stable UHF (analytic, and its skeleton partial_hess_elec + hess_nuc); PySCF finite differences of its analytic gradient; ferric's own UHF gradient differenced; ferric's RHF Hessian for a closed-shell UHFtotal Hessian ≤ 3.8e-7 Ha/Bohr² vs PySCF analytic (OH; ≤ 7.7e-8 for NH2 and CH2); skeleton ≤ 1.4e-10; frequencies ≤ 1.4e-4 cm⁻¹; on closed-shell water the UHF Hessian equals the RHF one term by term (response 2.8e-17)2e-6 Ha/Bohr² (total), 1e-8 (skeleton), 2e-3 cm⁻¹, 1e-12 (vs RHF)validation_uhf_hessian.rs, uhf_hessian_fd.rs, gen_uhf_hessian.py
Harmonic frequencies (FD of analytic gradients; Cartesian Hessian and cm⁻¹)H2O, NH3 × RHF, PBE, B3LYP / 6-31G, cc-pVDZ; UHF OH, CH3, HO2, UKS-PBE and ROHF CH3 / 6-31GPySCF same-step FD of analytic gradients (KS with grid response); PySCF analytic hessian.rhf/uhf/rks/uks; thermo.harmonic_analysis with ferric's massessame-step FD: 2.4e-7 Ha/Bohr², 7.5e-4 cm⁻¹; HF vs analytic 2.75e-5 Ha/Bohr², 0.10 cm⁻¹ (the 5e-3 Bohr step's truncation); KS vs PySCF's analytic Hessian differs by 5–35 cm⁻¹ because that Hessian has no grid response2e-6 Ha/Bohr², 5e-3 cm⁻¹ (same-step); 1e-4 Ha/Bohr², 0.5 cm⁻¹ (HF analytic)validation_frequencies.rs, gen_frequencies.py
Meta-GGA gradient, closed shell (SCAN, r2SCAN)H2O, NH3 / 6-31G, def2-SVP; RI-J (default) and exact JPySCF RKS grid_response=True, same grid and density fitting; FD of ferric's own energy≤ 1.3e-9 Ha/Bohr (def2-SVP 5.0e-10); analytic vs own FD 1.0e-91e-8 Ha/Bohrvalidation_mgga_gradients.rs, gen_mgga_gradients.py
Meta-GGA gradient, open shell (SCAN, r2SCAN)UKS: HO2, NH2 / 6-31G; ROKS: NH2 / 6-31GPySCF UKS grid_response=True + stability(); ROKS: central FD of PySCF ROKS energy; FD of ferric's own energyUKS ≤ 6.2e-9 Ha/Bohr; ROKS 2.2e-10 vs the FD; energies ≤ 5.7e-13 Ha3e-8 Ha/Bohr (UKS); 1e-7 (ROKS)validation_mgga_gradients.rs, gen_mgga_gradients.py
COSX exchange, dense-grid limitwater / cc-pVDZdirect K3.3e-7—cosx_k_anchors.rs; see SCF: choosing how exchange is built
COSX SCF energy, (50,110)+fitwater / cc-pVDZdirect K4.9e-6 Ha—″
COSX SCF energy, (50,110)+fitbutane / def2-SVPdirect K1.7e-4 Ha—″
COSX SCF energy, (50,110)+fitbutane / def2-TZVPdirect K1.2e-4 Ha—″
COSX, open shellCH3 doublet / cc-pVDZdirect K1.96e-5 Ha (UHF), 1.97e-5 Ha (ROHF)—k_builder_open_shell.rs
COSX analytic gradient (RHF, RKS, UHF; default overlap fit for RHF/UHF)water / STO-3G, 6-31G; HO2 / STO-3Gfinite differences of the COSX energy1.6e-9 to 4.3e-9 Ha/Bohr1e-6 / 3e-8 Ha/Bohrcosx_gradient.rs
COSX exchange against PySCF and against exact K: fit off with no screening on the identical grid; angular-grid convergence (75,110)→(75,590) with production knobs; analytic gradient with fit on (RHF) and off (B3LYP)water / aug-cc-pVDZ (RHF, B3LYP); butane / def2-SVP (RHF); distorted water, NH3 for gradientsPySCF sgx on ferric's grid recipe (exact J, fit off, no screening); ferric exact-K energy; central FD of the COSX energysame grid ≤ 1.2e-12 Ha at every grid; error shrinks 93x (butane) to 2576x (water) from 110 to 590 points; exact-K vs PySCF ≤ 2.1e-11 Ha; gradient ≤ 1.6e-8 Ha/Bohr1e-10 Ha; ≥ 30x; 1e-9 Ha; 2e-7 Ha/Bohrvalidation_cosx.rs, gen_cosx.py
RIJCOSX energy (RI-J + COSX K): separation into RI-J error + COSX errorwater / 6-31G (HF, B3LYP); HO2 / 6-31G (UHF)the three other corners of (exact or RI) J × (exact or COSX) K, same gridsecond-order cross term, 2.8–5.8 × e_cosx·e_rij (7.8e-10 Ha at (50,110), 2.3e-11 Ha at (75,302))30 × e_cosx·e_rij, or 1e-10 Hacosx_rijcosx.rs
RIJCOSX analytic gradient (RI-J derivative + COSX derivative; flat and pruned grids; fit on and off)water / STO-3G (RHF, B3LYP); HO2 / STO-3G (UHF)central FD of the RIJCOSX energy1.7e-9 Ha/Bohr (RHF), 4.9e-10 (B3LYP, exchange-isolated), 3.6e-9 (UHF)1e-7 / 3e-8 Ha/Bohr″
Pruned COSX grid (prune = "sgx", peaks 194 and 302) against PySCF SGX with sgx_prune on the same radial grid and Becke partition, fit off, no screeningwater / aug-cc-pVDZ; butane / def2-SVP (RHF)PySCF 2.13.1≤ 1.8e-12 Ha, identical point counts1e-10 Havalidation_cosx.rs, gen_cosx_pruned.py
COSX final-grid passwater / STO-3G, 6-31G; HO2 / STO-3Gthe SCF-grid energy (final grid = SCF grid); SCF converged on the final gridbit-identical; within 1.5e-7 Ha on eight molecules (site/src/methods/scf.md)exact; —cosx_rijcosx.rs, cosx_grid_sweep.py
Lebedev 194-point ruleunit sphereexact monomial integrals; PySCF's ruleexact through degree 23; nodes and weights identical to PySCF's1e-12 relativelebedev.rs

A "—" means the repository states no number for that cell. It is left empty on purpose rather than filled with an estimate.

Benchmark sweeps (GW100 and others) are kept in the project's working notes and are not reproduced here. Quoting a benchmark statistic from memory rather than from the record is the kind of unchecked claim this page exists to prevent.

Known limits and negatives

Reported rather than omitted:

  • Analytic Hessians: closed-shell RHF and UHF only (exact J/K, no ECP, no embedding or solvent, basis up to f functions). ROHF has none (PySCF has no ROHF Hessian either). Every other method's frequencies take central finite differences of the analytic gradient.
  • Local MP2: the integral-direct local MP2 (rimp2 with [local] integral_direct = true) has its correlation stage measured at about N1.24 (erfc) and N1.4 (Coulomb) on n-alkanes C20–C48 (6-31G / cc-pVDZ-RI, ε = 1e-4, frozen carbon cores, a calibrated pair gate; fitted to three points). That is one family of molecules in one basis: not shown to be linear, and not measured on 3-D or diffuse systems. Local MP2 without integral_direct still builds the global 3-index tensor and makes no scaling claim. See The MP2 family.
  • Exact dRPA by the Riccati solve is a small-system path: its ring-product plan holds no³·nv² numbers, no times the amplitudes themselves (C12 thrashed, then was killed for memory). The CLI and run_drpa refuse a run that cannot fit before the SCF; full-rank pdep-rpa gives the same energy at far lower memory.
  • Laplace SOS-MP2, AO-sparse variant: the domain truncation is accurate, and the radius it needs grows far more slowly than the molecule (chemical accuracy at 3 to 5 Bohr on n-alkanes C2 to C12, radius/diameter falling from 0.52 to 0.17; a 71-atom drug molecule is within 0.05% at 4 Bohr, about 13% of its diameter). The algebra is still dense, so no speedup is claimed. The regression test sos_ao_sparse_truncation_radius_is_transferable_across_sizes pins the STO-3G butane/octane comparison (12 Bohr exact on both; octane worse at 3 Bohr). The C2-C12 sweep and the drug-molecule figure are measurements, not regression tests.
  • TDHF/RPAx C6: ~63% low regardless of gap. Do not use it for dispersion; its static α is not established either (see the matrix).
  • TDDFT / TDA: closed-shell references only. Functionals without an fxc kernel (meta-GGA, VV10, range-separated) are refused rather than run without it. B3LYP at aug-cc-pVDZ agrees with PySCF to 6.5e-4 eV, 40× worse than PBE in the same basis; the cause is not yet identified.
  • COSX wins at high angular momentum, not at large system size. Measured on one thread at the flat (50,110) grid with the overlap fit:
    • Against LinK on n-alkanes at def2-SVP it is slower at every size measured: 1.59× (C20), 1.09× (C32) and 1.22× (C48), with no trend toward parity. At def2-TZVP on C20 it is faster (0.67×); that is the only triple-zeta size measured.
    • Against exact direct exchange on butane it is 3.7× slower at def2-TZVP (full SCF). At def2-QZVP its K build takes 90 s against about 400 s for the direct build's single J+K sweep, at a relative K error of 5.4e-5.
    • Its K build grows as N1.29–N1.32 between C20 and C48 at def2-SVP.
    • It applies to the Coulomb operator only: a range-separated functional takes its exchange from density-fitted short- and long-range fitters and ignores k_builder = "cosx", with a warning.
    • Its analytic gradient is exact for RHF, RKS and UHF with the overlap fit off, and for RHF and UHF with the default overlap fit, on flat and pruned (sgx) COSX grids. Fitted COSX with a KS functional, UKS and ROHF/ROKS are refused for gradient tasks, before the SCF runs.

Why the distinction is drawn so sharply

A quantum chemistry code can produce a plausible number in many ways that are wrong:

  • a non-converged SCF returned as an ordinary result, because convergence is a flag rather than an error
  • a method missing a physical term it does not mention (for example, TDDFT excitations computed without the fxc kernel)
  • a fallback model silently substituted for one atom in a molecule, changing a partitioning without changing the shape of the output
  • a screening or truncation threshold that happens to be safe for the test system and not for yours

None of these look like failures, and every one of them has occurred in this codebase. The remedy is to grade each capability separately and say which ones are checked against ground truth.

Testing discipline

Some properties are pinned by tests rather than asserted in prose:

  • Bit-identity across thread counts for reductions and permutations: results do not depend on RAYON_NUM_THREADS
  • ERI 8-fold permutational symmetry: verified against the engine, not assumed, since the MP2 code relies on it to compute only ~1/8 of quartets
  • Size-extensivity and rotational invariance of total energies
  • Memory guards in both directions: a starved budget must be refused and an ample budget must still run, because an over-estimating guard is also a bug

New guards are mutation-tested: a deliberate defect is injected and the test confirmed to fail before the guard is trusted. This has caught guards that passed while proving nothing.