Feature matrix

Molecular

Method

Driver

Open-shell

Gradient

Hessian (FD)

Hessian (analytic)

MP2

Validated vs PySCF

RHF

run_rhf

✓ (compute_hessian_fd)

✓ (compute_hessian_rhf_analytic)

✓ (run_mp2)

UHF

run_uhf

(roadmap 17c)

✓ (run_ump2)

RKS

run_rks

(roadmap 17e)

UKS

run_uks

(roadmap 17f)

ROHF

(roadmap)

Any functional that libxc supports is available through RKS and UKS (over 500, including LDA, GGAs, hybrids, meta-GGAs). HF analytic gradients and DFT analytic gradients are both available for LDA, GGA, and hybrid functionals. Vibrational analysis (frequencies + IR intensities + thermochemistry) is built on top of the Hessian path — see “Properties” below.

SCF convergence aids

Aid

API

Coverage

Notes

DIIS extrapolation

*_options.use_diis

RHF / UHF / RKS / UKS, periodic

default on, ~10× iter speedup

Damping

*_options.damping

all

density mixing

Saunders-Hillier level shift

*_options.level_shift

molecular + periodic Γ / multi-k

Phase C1a

Quadratic (“Newton”) SCF

*_options.quadratic_fallback_iter

molecular + periodic Γ / multi-k

Phase C1c — fallback for small-gap systems

Fermi-Dirac smearing

*_options.smearing_temperature

periodic Γ-Ewald

Phase C1b

Periodic

Method

Driver

Dim 1

Dim 2

Dim 3

Notes

RHF, molecular limit

run_rhf_periodic_gamma

large unit cell only

RHF, multi-k

run_rhf_periodic

EWALD_3D shipped (15c-1)

UHF, multi-k Ewald

run_uhf_periodic_multi_k_ewald3d

Phase 15c-3

RKS, multi-k

run_rks_periodic

LDA / GGA / hybrid functionals; Phase 15c-2

UKS, multi-k Ewald

run_uks_periodic_multi_k_ewald3d

Phase 15c-3

ROHF periodic

roadmap

Atomic gradients (periodic)

roadmap (G1)

3D bulk Coulomb works through full EWALD_3D (Phase 12e-c) without any cutoff-dependent results. Periodic SCF convergence aids (level shift, smearing, quadratic Newton fallback) are wired through every backend.

Ewald summation (Phase 12e, mostly shipped)

See user_guide/ewald.md for the math and API, or the v0.2.0 roadmap section for the full phase log.

Sub-phase

Scope

Status

12e-a

Classical Ewald for the point-charge nuclear lattice sum. CoulombMethod.EWALD_3D on nuclear_repulsion_per_cell.

✅ shipped

12e-b

erfc-screened nuclear attraction compute_nuclear_erfc_lattice (Ewald building block; no SCF dispatch yet).

✅ shipped

12e-c-1

Gaussian-charge Ewald for long-range V(g) via grid integration of the smooth complement. α-invariant to 1e-4.

✅ shipped

12e-c-2

erfc-screened ERIs for the short-range Ewald J/K. omega parameter on build_jk_gamma_molecular_limit and build_fock_2e_real_space.

✅ shipped

12e-c-3a

FFTW3 build dep + solve_poisson_erf_screened / solve_poisson_coulomb.

✅ shipped

12e-c-3b

build_j_long_range + auto_grid (J_LR via density-on-grid sampling, FFT convolution, AO-pair re-integration).

✅ shipped

12e-c-3c

Saunders–Dovesi multipolar splitting for the tight-core far field (handles e.g. STO-3G O 1s analytically; flips the H₂O xfail test in 12e-c-4a to pass).

⏳ in progress

12e-c-4

End-to-end CoulombMethod.EWALD_3D SCF dispatch — Γ-point + multi-k periodic RHF, RKS, UHF, UKS via run_*_periodic_*_ewald3d.

✅ shipped

Literature-Madelung-constant validations (tolerance from the implementation; source uncertainty in parens):

Crystal

M reproduced

Reference

NaCl (rocksalt, ±1 charges)

1.7475645946 to 1e-8

1.7475645946…

CsCl

1.76267477 to 1e-6

1.76267477 (±1e-8)

ZnS (zincblende)

1.63805 to 1e-4

1.63805 (±1e-5)

Simple-cubic jellium

1.4186487 to 1e-6

1.4186487 (Nijboer-De Wette 1957)

Properties

Property

API

Methods

Notes

Mulliken charges

mulliken_charges

RHF / UHF / RKS / UKS

atomic populations

Löwdin charges

loewdin_charges

all

symmetric-orth populations

Mayer bond orders

mayer_bond_orders

all

per-pair indices

Dipole moment

dipole_moment

all

with optional origin

Natural orbitals

natural_orbitals

all

for post-SCF analysis

Static polarizability α

dipole_polarizability_rhf

RHF (closed-shell)

via CPHF, Phase 17b-1; UHF/KS roadmap

Vibrational frequencies

compute_hessian_fd + HessianResult.frequencies_cm1

RHF / UHF / RKS / UKS

FD on analytic gradient; trans/rot projection

Vibrational frequencies (analytic)

compute_hessian_rhf_analytic

RHF

CPHF + libint deriv_order=2; Phase 17b-3

IR intensities

ir_intensities

RHF / UHF / RKS / UKS

dipole derivatives along normal modes (Phase 17a-2)

Thermochemistry (ZPE / U / H / S / G / Cv)

compute_thermochemistry

all

rigid-rotor + harmonic-oscillator + ideal-gas, Phase 17a-3

D3-BJ dispersion

compute_d3bj

all

Grimme D3 with Becke-Johnson damping

Cube file output

write_cube

all

density / orbital / spin density

Molden file export

write_molden

all

RHF / UHF / RKS / UKS

Periodic band structure

compute_bands

periodic SCF

k-path sampling

Input / output

Capability

API

Notes

High-level “run-a-job” driver

run_job

dispatches to the right SCF driver, writes .out + .molden, runs BFGS if asked

Formatted text log

format_scf_trace, log_scf_trace

banner, iteration trace, energy components (DFT), orbital table, HOMO-LUMO gap

Molden file export

write_molden

RHF / UHF / RKS / UKS; verified by PySCF round-trip

Geometry trajectory

run_job(..., optimize=True)

ASE .traj file, viewable with ase gui

XYZ load

Molecule.from_xyz

picks up charge / multiplicity

POSCAR load / save

read_poscar, write_poscar

VASP 5 format

Basis sets

  • Standard — 90 sets from libint, including STO-nG, 6-31G**, cc-pVXZ, def2-TZVP, ANO-RCC, and the Karlsruhe core-valence family.

  • Solid-state — pob-TZVP, pob-TZVP-rev2, pob-DZVP-rev2 (H–Br) from the Peintinger-Vilela-Oliveira-Bredow family, designed to avoid small-exponent linear dependencies in crystals.

  • CRYSTAL-format parser — imports arbitrary CRYSTAL per-element basis files, converts to libint-compatible .g94.

  • ECP basis sets — parsed but not yet applied; requires libecpint integration.

Crystal / lattice infrastructure

  • spglib integration: Crystal, analyze_symmetry, to_primitive, irreducible_kpoints.

  • POSCAR I/O (VASP 5 format).

  • Monkhorst-Pack k-mesh generation with IBZ reduction.

Validation

Test class

Count

Level

Molecular 1e integrals vs PySCF

24

machine precision

RHF / UHF / RKS / UKS energies vs PySCF

59

machine precision (HF), grid-accuracy (DFT)

MP2 / UMP2 vs PySCF

21

1e-8 Ha

Gradients (HF, DFT) vs finite-difference / PySCF

17

1e-6 Ha/bohr

Hessian skeleton 2nd-deriv contractions vs FD-on-gradient

8

FD-truncation (1e-4 to 1e-3)

Analytic RHF Hessian vs PySCF analytic

8

2.5e-9 Ha/bohr², freqs <0.01 cm⁻¹

FD Hessian + IR + thermochemistry vs PySCF

51

1e-7 Ha (ZPE, S, U, H, G)

CPHF kernel + polarizability vs PySCF FD

11

1e-5 a.u.

Periodic machinery (invariants, molecular limit, Bloch folding)

76

machine precision

Periodic SCF convergence aids (level-shift, quadratic, smearing)

27

per-test scoped

Crystal / POSCAR / basis parsing

18

Full suite: ~995 tests, runs in about 4 minutes on an M-class MacBook.