Workspace Structure

OpenQuantum is a multi-crate Cargo workspace of 11 crates:

crates/
├── common/       # Core data types (Molecule, BasisSet, ScfResult), error types, linalg
├── basis/        # Basis set loading, normalization, ECP parsing, .obs embedded files
├── integral/     # One- and two-electron integrals (MD, SP fast paths, Rys quadrature), ECP, gradients, Hessians
├── symmetry/     # Point group detection, character tables, irrep assignment
├── dft/          # Kohn–Sham DFT: exchange-correlation functionals, grid integration, dispersion
├── solvent/      # Implicit solvent models: PCM-family, ddCOSMO/ddPCM, SMD
├── iooq/         # Input file parsing (section-based format)
├── scf/          # RHF/UHF/ROHF + RKS/UKS solvers, DIIS, Fock builder, CPHF, analytic gradients/Hessians
├── posthf/       # MP2 and CCSD(T) correlation energies
├── geometry/     # BFGS/RFO/IC optimization, IRC, NEB, harmonic frequencies, thermochemistry
└── driver/       # Binary entry point (oquantum), pipeline dispatch, checkpoint

Dependency Graph (acyclic)

common (root)
  ├─ basis
  │    └─ integral ────────────────────────────────────┐
  ├─ symmetry ─────────────────────────────────────────┤
  ├─ dft ──────────────────────────────────────────────┤
  ├─ solvent (depends on common, dft, integral) ───────┤
  ├─ iooq ─────────────────────────────────────────────┤
  ├─ geometry ─────────────────────────────────────────┤
  │                                                     ▼
  └─ scf ── posthf ── driver ──────────────────────────┘

Crate Descriptions

CrateRoleKey Exports
commonRoot crate: error types, linalg, shared data typesMolecule, Atom, BasisSet, Shell, Primitive, ScfOptions, ScfResult, OneElectronIntegrals, IntegralProvider, ReactionField, CoordinateUnit, OpenQuantumError
basisBasis set loading & storage, normalization, ECP parsingload_basis_set, ecp::load_ecp_library, cartesian_to_pure_tmatrix
integral1e/2e integrals, ECP & gradient integrals, ERI Hessianscompute_one_electron_integrals, TwoElectronIntegrals, DirectScfIntegrals, shell_quartet_eri, shell_quartet_eri_hessian, ecp::build_ecp_matrix_from_molecule
symmetryPoint group detection, symmetry operationsdetect_symmetry, PointGroup, SymmetryInfo
dftKohn–Sham DFT: functionals, grid, XC integration, dispersionFunctionals, functional, FunctionalSpec, MolecularGrid, GridLevel, integrate_xc, build_xc_matrix, build_unrestricted_xc_matrices, dispersion_energy, DispersionModel
solventImplicit solvation: PCM, ddCOSMO/ddPCM, SMD, gradients, HessiansPcmSolver, DdSolver, SmdCds, build_surface, pcm_matrices, pcm_gradient, pcm_hessian, ddcosmo_gradient
scfRHF/UHF/ROHF/RKS/UKS solvers, DIIS, Fock builder, output, checkpoint, CPHF, analytic gradients/Hessiansrhf_scf, uhf_scf, rohf_scf, rks_scf, uks_scf, rks_scf_range_separated, rks_scf_with_reaction_field, uks_scf_with_reaction_field, DiisAccelerator, checkpoint::{save,load}
posthfMP2 and CCSD(T) correlation energymp2_correlation_energy, ccsd_energy, ccsdt_energy
iooqInput file parsing (section-based format)Route, Method, RunType, parse_molecule, Route::parse
geometryBFGS optimization, Berny RFO, GDIIS/GEDIIS, harmonic frequencies, IRC, NEBoptimize, OptimizationResult, frequencies, frequencies_from_hessian, FreqResult
driverBinary entrypoint, pipeline dispatch, checkpointprepare_scf, run_pipeline

Commands

ActionCommand
Build allcargo build --release
All testscargo test
Single cratecargo test -p <name>
Run inputcargo run --release --package oquantum -- <input_file>
Documentationcargo doc --no-deps

Note: cargo run requires --package oquantum (or -p oquantum) because the workspace has multiple crates. The binary's name is oquantum.