v0.10.0-beta — Krylov/Fréchet ML backend + 4 issues (#11/#12/#13/#14)
Pre-release
Pre-release
Summary
Five-feature wave (issues #11, #12, #13, #14 + A1 stiff fix): generic symmetric operators, conservative divergence-form diffusion, stiff multilayer conduction, ETD/φ semilinear integrator, and depth-independent Krylov + Fréchet for graph semigroups. All additive; no breaking changes to the 0.9.1-beta public surface.
Added
A1/A2 — Depth-independent graph-semigroup Krylov action + edge-weight Fréchet gradient
GraphKrylovChernoff,graph_expmv_frechet; ADR-0185, math §54graph_expmv(L, v, t, ε)computese^{−tL_G}·vwithout stepping through each time unit- Chebyshev default (O(1) working vectors) or Lanczos adaptive (O(m·N) basis, m ≈ 20–40, flat in
t) graph_expmv_frechetreturns∂J/∂wfor all edge weights via one augmented Krylov solve (Al-Mohy & Higham 2009)- Closes forward and backward speed ceilings exposed by v0.9.1-beta (#10)
- PyO3:
GraphKrylovpyclass +graph_expmv_frechetpyfunction in one GIL-releasing call - Honest limits: symmetric
L_Gonly; time-varyingL(t)out of scope
#13 — Generic externally-assembled symmetric-operator entry point
SymmetricOperator,MassKOperator,EntrySensitivity; ADR-0186, math §55SymmetricOperator::from_csraccepts any externally-assembled symmetric PSD sparse operator- FEM stiffness with Robin BC, anisotropic conductivity — not just graph Laplacians
MassKOperatorpropagatese^{−τM⁻¹K}·vvia congruence chain without formingM⁻¹Kexplicitly- Lumped
(M,K)path is a 3-liner - Honest limits: symmetric PSD required; consistent-mass differentiability deferred
#11 — Conservative (divergence-form) variable-coefficient diffusion
ConservativeDiffusionChernoff,assemble_conservative_csr_1d; ADR-0187, math §56- Harmonic-mean face conductivities reproduce series-resistance network at machine precision
- Handles sharp material interfaces (k-contrast 100:1 to 3025:1) where non-conservative methods give ≥50% error
- Crank–Nicolson wrapper (order()=2, A-stable, no CFL, one O(n) Thomas solve)
- Honest limits:
k > 0; full-tensor non-separable∂_x(k∂_y)out of scope
#14 — Stiff multilayer conduction via mass-weighted Krylov
MultilayerStack,multilayer_evolve,MassWeightedConservativeChernoff; ADR-0188, math §57- Maps physical
[(thickness, k, ρc)]→ node arrays on single uniform grid - Propagates in one depth-flat Krylov action for any integration span
- Beats explicit CFL by ~28000× on Shuttle TPS stack (k-contrast ≈ 3025×, ρc-contrast ≈ 27×)
- Optional A-stable CN convenience for O(1)-vector memory
- Honest limits: 1-D first; one global
dx; node-centered lumped mass only
#12 — ETD φ-functions and ETDRK4 semilinear integrator
phi_action,phi_action_batched,Etdrk4,Nonlinearity; ADR-0189, math §58phi_action_batchedcomputes φ₀…φ_p(τA)·v simultaneously via ONE augmented block-triangular matvec-only Taylor actionEtdrk4(Cox–Matthews 2002 / Kassam–Trefethen 2005) integrates∂ₜu = Lu + N(u)at order 4N(u)is declarativeNonlinearitytrait or fixed enum menu (AllenCahn,Burgers,GrayScott,KuramotoSivashinsky)- Never a per-step Python callback; ADR-0179 wall preserved
NonlinearityDiffenables end-to-end adjoint∂J/∂paramthrough one step- Honest limits:
L1-D divergence-form or symmetric graph only; deferred beyond this scope
Fixed
A1 stiff operator NaN bug (commit 9e5f557)
GraphKrylovChernoff's Chebyshev path silently returned garbage for stiff operators (λ_max ≳ 1400)- Fix: substep
s = ⌈z/Z_SAFE⌉(Z_SAFE = 200), mirroring Lanczos scaling - Plus fail-loud finiteness guard returning
SemiflowError::DomainViolation - Conservative high-contrast diffusion (
λ_max ∼ 10⁴) was affected - New test
cheb_stiff_regime(z ≈ 6400) was red before, green after (sup_error 1.0e-11)
See CHANGELOG.md for ADRs, validation gates, and complete honest limitations.