kineticEQ Documentation
kineticEQ is a numerical library for BGK-type kinetic equations. It combines a high-level Python interface built around Config and Engine with optimized C++/CUDA extensions for the BGK1D production path. This documentation is written against the current src/kineticEQ implementation rather than the legacy notebook workflow.
Current implementation status
| Model | Scheme | torch | cuda_kernel | cpu_kernel | Status |
|---|---|---|---|---|---|
BGK1D1V | explicit | supported | supported | not registered | runnable |
BGK1D1V | implicit | not registered | supported | supported | runnable |
BGK1D1V | holo | not registered | supported | not registered | runnable |
BGK2D2V | explicit | registered in the registry | not registered | not registered | incomplete Engine path |
Notes:
- The BGK1D
cuda_kernelpath requiresfloat64in the fused explicit and implicit bindings. - The BGK1D
cpu_kernelpath is currently implicit-only and also requiresfloat64. BGK2D2Vcan allocate state, but theEnginepath is not operational because the model config lacksscheme_paramsand the stepper itself is unfinished.
Numerical highlights
- BGK1D explicit: direct velocity-space quadrature, Maxwellian reconstruction, first-order upwind transport, and local collision relaxation.
- BGK1D implicit: Picard iteration with batched tridiagonal solves, optionally accelerated by Anderson acceleration and CNN warm-starts.
- BGK1D holo: coupled HO/LO iterations, with a block-tridiagonal LO solve and a tridiagonal HO distribution update.
- CNN warm-start: a 1D CNN predicts moment increments and provides a better initialization for implicit Picard iterations.