Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Appendix A — Atlas Crate Dependency Map

Figure A.1 — A. Atlas Crate Dependency Map

A CFDrs-centric view of the Atlas stack — which crate owns which surface and which CFDrs crate consumes it.

Crate Map

Atlas crateSurfaceCFDrs consumer
eunomiaRealField, ComplexField, FloatElement, IntElementevery CFDrs crate
letoNdArray<T,D>, CowArray, geometry typescfd-math, cfd-1d, cfd-2d, cfd-3d, cfd-schematics
leto-opsdense/sparse linear algebra, Krylov solvers, sparse LUcfd-math
hermes-simdSimdLane, vectorized kernelscfd-2d::stencil, cfd-3d::fem, cfd-1d::kernel
mnemosyneArena, ScratchArenaevery CFDrs crate
themisPlacement, NUMA bindingscfd-3d, cfd-2d
moiraiExecutor, TaskGraph, channelscfd-2d::parallel, cfd-3d::parallel, cfd-optim
apolloFftPlancfd-3d::spectral, cfd-2d::spectral
aequitasdimensioned quantities for public physical contractscfd-core, cfd-1d, cfd-2d, cfd-3d, cfd-validation
hephaestusBackend, GPU kernelsopt-in via the cfd-3d GPU feature
coeusTensor, autodiffnot consumed — CFDrs runs no autodiff
ritkimage I/Onot consumed — CFDrs holds no image data
consuspersistent storagecfd-io (planned)

Invariants

The dependency direction is one-way — foundation crates never depend on CFDrs — and these properties are enforced rather than asserted:

  • cargo tree resolves no ndarray, nalgebra, rayon, tokio, or rustfft in the CFDrs graph; the Atlas crates above are the sole providers of those roles.
  • unsafe SIMD intrinsics live only in hermes-simd, and raw buffer reconstruction only in mnemosyne.
  • cfd-validation parity passes on every canonical scenario.

Further Reading