Skip to content

v0.12.0-beta — implicit stiff mode for SymmetricOperator (#16)

Latest

Choose a tag to compare

@VolkovIlia VolkovIlia released this 02 Jul 20:04

Implicit Stiff Mode for SymmetricOperator

The new path="implicit" option adds a dependency-free preconditioned-CG backward-Euler solver for externally-assembled symmetric operators, resolving the O(λ_max·t) timeout on stiff FEM operators.

Highlights

  • Flagship benchmark: ~4 ms / sup_error 3.3e-12 on a Neumann N=400 ×10⁷ stiff operator
    • Compare: explicit Lanczos ~56 s, scipy expm_multiply >90 s timeout
  • Cost caveat: governed by √κ of Jacobi-preconditioned system, not strictly λ_max-independent
  • Zero new dependencies: PCG + Jacobi preconditioning are dependency-free
  • API: SymmetricOperator.evolve_batched, mass_lumped_evolve, MassKOperator.evolve all support path="implicit"

CI Hardening

Alongside the #16 feature:

  • Flagship Gates: Resolvent argument parsing + bounded L_RESOLVENT tick budget turned green
  • Nightly miri: Scalar path (src/scalar/) validated
  • Nightly bench-regression: Scoped core families + baseline guard to prevent false positives

Full Changelog

See CHANGELOG.md for complete details.