Component Diagram
KRONOS is organized as a layered set of modules under src/, each with strict dependency rules that prevent circular imports and keep the GPU abstraction boundary clean. The diagram below shows how data and control flow from the entry point down through the physics layers. See Source Layout for the full file-by-file breakdown, and GPU Portability for how the gpu/ abstraction layer is structured.
Module dependencies flow top-to-bottom. Each box is a directory under src/.
Dependency rules:
core/depends on nothing (leaf module).basis/depends oncore/.io/depends oncore/(Crystal, types).potential/depends oncore/,basis/,io/(forPseudoPotentialdata).hamiltonian/depends onbasis/,potential/(specificallyNonlocalPP).solver/depends on everything above; it orchestrates the full calculation.gpu/is called byhamiltonian/andbasis/but physics code never calls vendor APIs directly -- only thegpu::namespace.utils/is available to all modules (timer, logger).