Skip to content

GKX 2.3.0

Choose a tag to compare

@rogeriojorge rogeriojorge released this 21 Sep 20:56
· 890 commits to main since this release
f9485f0

GKX 2.3.0

A minor release. Nothing is removed since 2.2.0. No shipped physics default changes.

Dependency

  • solvax>=0.22.0 (was >=0.12.0). The pr3-cm preconditioner now uses SOLVAX's block_thomas_factor_ops, first shipped in 0.22.0. The floor was checked against every PyPI wheel from 0.12.0 to 0.24.0. (#265)

Performance

  • pr3-cm factorization moved to SOLVAX and stores the tridiagonal Laguerre off-diagonal blocks as three diagonals. Factor storage is 1.43–2.61x smaller; the full apply agrees with the previous code to below 1e-15; Cyclone still converges in 252 iterations. (#265)
  • The eager adjoint heat-flux window compiles once instead of recompiling 13 XLA modules on every call. (#264)

Correctness

  • Diagonal imex2 reaches its intended order with ARS(2,2,2). (#273)
  • pr3-cm refusal thresholds are floored at float32 precision, so float32 runs can build the preconditioner. (#267)
  • Finite-shear analytic metrics trace without host callbacks, so they work under jit and autodiff. (#270)
  • Saturation statistics refuse windows below the retained-sample floor instead of reporting from too few samples. (#271)
  • Declared velocity-space regularization. Every linear row states its Laguerre sink, and a declared sink that is disabled is refused instead of silently ignored. (#260)

Verification

  • Three-field algebra and weighted streaming are now covered by tests. (#269)

Not in this release

  • The ky >= 0 layout remains opt-in. Making it the default is #266, which still needs a bitwise opt-out identity check.