Skip to content

Experimental Modules

sci-form organises pre-production algorithms into three tiers based on maturity:

TierStabilityAPI guaranteeCoverage
AlphaProof-of-conceptMay break between minor versionsBasic integration tests
BetaValidatedMinor-version bumps onlyRegression + reference validation
Experimental (legacy)Track-by-trackSee individual track pageVaries

Alpha Modules →

New methods gated by alpha-* feature flags. Functionally correct but API shapes may still change.

IDModuleFeature flagDescription
A1alpha::dftalpha-dftKohn-Sham DFT (SVWN / PBE)
A2alpha::reaxffalpha-reaxffReaxFF reactive force field
A3alpha::mlffalpha-mlffNeural network FF with AEV descriptors
A4alpha::obara_saikaalpha-obara-saikaObara-Saika ERIs + Boys function
A5alpha::cgaalpha-cgaCGA motor algebra dihedral refinement
A6alpha::gsmalpha-gsmGrowing String Method
A7alpha::sdralpha-sdrSemidefinite relaxation embedding
A8alpha::dynamicsalpha-dynamics-liveLive interactive MD
A9alpha::imdalpha-imdIMD wire-protocol bridge
typescript
// WASM: subpath import
import { alpha_compute_dft, alpha_compute_reaxff_gradient } from 'sci-form-wasm/alpha';
python
# Python: submodule
from sci_form.alpha import dft_calculate, reaxff_gradient

Beta Modules →

Validated methods gated by beta-* feature flags. API is stable within minor versions.

IDModuleFeature flagDescription
B1beta::kpmbeta-kpmKernel Polynomial Method — O(N) DOS
B2beta::mbhbeta-mbhMobile Block Hessian
B3beta::randnlabeta-randnlaRandomized Nyström EHT — O(N k²)
B4beta::riemannianbeta-riemannianRiemannian PSD cone geometry
B5beta::cpmbeta-cpmConstant Potential Method
typescript
// WASM: subpath import
import { beta_compute_kpm_dos, beta_solve_eht_randnla } from 'sci-form-wasm/beta';
python
# Python: submodule
from sci_form.beta import kpm_dos, eht_randnla

Legacy Experimental Tracks

The older experimental-* feature flags remain available at their existing module paths:

All experimental modules live under sci_form::experimental::* and require explicit feature flags to compile.

Track Summary

TrackModuleFeature FlagDescription
E1cgaexperimental-cgaConformal Geometric Algebra G(4,1)
E2rand_nlaexperimental-randnlaRandomized NLA for O(N log N) EHT
E3riemannianexperimental-riemannianRiemannian L-BFGS for ETKDG
E4kpmexperimental-kpmKernel Polynomial Method — O(N) DOS
E5eeqexperimental-eeqDynamic EEQ Charge Model
E6alpbexperimental-alpbAnalytical Linearized Poisson-Boltzmann
E7d4experimental-d4DFT-D4 Dispersion Correction
E8sdrexperimental-sdrSemidefinite Relaxation Embedding
E9mbhexperimental-mbhMobile Block Hessian
E10cpmexperimental-cpmConstant Potential Method
E11gsmexperimental-gsmGrowing String Method

Groups

Group A — Advanced Geometry

TrackFocus
E1: CGAUnify rotations/translations via geometric algebra motors
E2: RandNLASub-cubic EHT diagonalization with randomized sketching
E3: RiemannianPSD-guaranteed embedding via manifold optimization

Group B — Electronic Structure

TrackFocus
E4: KPMLinear-scaling DOS and density matrix via Chebyshev expansion
E5: EEQGeometry-dependent electronegativity equalization charges
E6: ALPBAnalytical implicit solvation with Born radii

Group C — Precision Methods

TrackFocus
E7: D4Geometry-dependent dispersion with BJ damping
E8: SDRConvex SDP embedding eliminating the retry loop
E9: MBHReduced-DOF vibrational analysis for large molecules
E10: CPMElectrochemical charge equilibration at fixed potential
E11: GSMReaction path and transition state search

Enabling Features

Rust

toml
[dependencies]
# Alpha modules
sci-form = { version = "0.11", features = ["alpha-dft", "alpha-reaxff"] }

# Beta modules
sci-form = { version = "0.11", features = ["beta-kpm", "beta-randnla"] }

# Legacy experimental
sci-form = { version = "0.11", features = ["experimental-d4", "experimental-kpm"] }

# Everything + parallel
sci-form = { version = "0.11", features = [
    "alpha-dft", "alpha-reaxff", "alpha-mlff",
    "beta-kpm", "beta-randnla",
    "experimental-d4",
    "parallel"
] }

Run tests

bash
# Alpha tests
cargo test --features alpha-dft,alpha-reaxff,alpha-mlff --lib --test 'alpha_*'

# Beta tests
cargo test --features beta-kpm,beta-mbh,beta-randnla --lib --test 'beta_*'

# Legacy experimental tests
cargo test --features experimental-d4 --test regression -- test_d4

Design Principles

  1. Isolation — Experimental code never modifies stable modules (src/conformer/, src/eht/, etc.)
  2. Feature gates — Each track compiles only when its flag is enabled
  3. Independent testing — Each track has its own test suite under tests/experimental/
  4. Graduation path — Tracks may be promoted through alpha → beta → stable after validation

Released under the MIT License.