Convergio — Open Source Convergence Detection
Your solver finished 3000 iterations ago. Convergio tells you when to stop — and when something is wrong.
from convergio import detect
result = detect(residual_history, residual_target=1e-8)
# returns: "converged" · "stalling" · "oscillating" · "diverging"
result = detect(residual_history, residual_target=1e-8)
# returns: "converged" · "stalling" · "oscillating" · "diverging"
500+
Installs
6
States
MIT
License
▶ CAP — Canonical Attractor Preconditioner
15 of 16 industry matrices solved. Performance benchmarks on SuiteSparse collection.
15/16
Solved
10
Rescued
84x
Peak Speedup
1.2M
Max DOF
| Matrix | Baseline Solver | CAP Engine (v0.8) | Result |
|---|---|---|---|
| nos4 | CG (84 iter) | 1 iter | 84x SPEEDUP |
| nos6 | CG (666 iter) | 12 iter | 55x SPEEDUP |
| ex5 | CG FAIL | 2 iter | RESCUED |
| offshore | CG FAIL (40.2s) | 2.8s | RESCUED |
| cavity10 | GMRES FAIL | 84 iter | RESCUED |
| cavity16 | GMRES FAIL | 173 iter | RESCUED |
| bcsstk14 | CG FAIL | 58 iter | RESCUED |
| bcsstk15 | CG FAIL | 74 iter | RESCUED |
| bcsstk17 | CG FAIL | 389 iter [strong] | RESCUED |
| bcsstk18 | CG FAIL | 184 iter | RESCUED |
| msc10848 | CG FAIL | 1845 iter [strong] | RESCUED |
| s3rmt3m3 | CG FAIL | 1313 iter [strong] | RESCUED |
| thermal2 | CG (83s) | 71s | 14% FASTER |
| apache2 | CG (39s) | 34s | 13% FASTER |
| thermal1 | CG (1345 iter) | 122 iter | 15% SLOWER |
| ex11 | CG OK | FAIL | Non-optimal case |
Walltime measured single-threaded on commodity hardware. CAP is not parallelized — these numbers are a lower bound.
Zero external dependencies · Header-only C++ · Integrates into any solver stack.
Request Evaluation
▶ Convergio Enterprise
C++ Header-Only. Drop into any C++/Fortran simulation.
- · Single header: convergio.hpp
- · Zero dependencies, zero config
- · Real-time: watch() inside your solver loop
- · Post-hoc: detect() on completed runs
- · Adaptive regime detection