Crate Dependency Graph
The diagrams below are derived from the current production Rust module layout in
crates/*/src. They are intended to be updated whenever crate/module boundaries
change. Test-only modules are omitted for readability.
Crate Dependency Graph
flowchart LR
common[common]
basis[basis]
integral[integral]
dft[dft]
solvent[solvent]
symmetry[symmetry]
iooq[iooq]
scf[scf]
posthf[posthf]
geometry[geometry]
driver[driver]
common --> basis
common --> integral
common --> dft
common --> symmetry
common --> iooq
common --> geometry
common --> scf
common --> posthf
basis --> integral
integral --> scf
dft --> solvent
integral --> solvent
dft --> scf
integral --> posthf
symmetry --> scf
solvent --> scf
scf --> driver
posthf --> driver
iooq --> driver
symmetry --> driver
geometry --> driver
dft --> driver
solvent --> driver
basis --> driver
integral --> driver
Dependency Rules
commonis the root crate — all other crates depend on itbasis→integral(integrals need basis set data)integral→scf(SCF needs integrals)dft→scf(SCF builds the Kohn–Sham Fock matrix via XC integration)dft+integral→solvent(solvent needs DFT grid + integral evaluation for cavity)solvent→scf(solvent-coupled SCF usesReactionFieldtrait)symmetry→scf(SCF uses symmetry for orbital labeling)integral→posthf(MP2/CC need integrals)- All crates →
driver(binary links everything) - No cycles in the dependency graph