Choosing an engine¶
SCPN Phase Orchestrator ships more than a dozen phase-dynamics engines. Almost every user needs only one of them. This page is the shortlist: the golden path first, then when to reach for a specialised engine, and where each is documented.
Start here — UPDEEngine via simulate()¶
The golden path is the general UPDEEngine (a Kuramoto UPDE integrator with
pre-allocated scratch arrays) driven through
simulate(). You do not
construct the engine yourself: you write a binding spec and run it.
from scpn_phase_orchestrator.binding import load_binding_spec
from scpn_phase_orchestrator.runtime.simulation import simulate
spec = load_binding_spec("domainpacks/minimal_domain/binding_spec.yaml")
result = simulate(spec, steps=200, seed=7)
print(result.r_good, result.separation, result.final_regime)
This path gives you the supervisor policy loop, the conformal admission gate, the audit log (which now fails closed on a broken event stream), and replayable evidence — the whole assurance envelope. Reach for a different engine only when your dynamics genuinely differ from first-order Kuramoto phase coupling.
Supported specialised modes¶
These have a dedicated, documented entry point:
| Engine | When to use | Where |
|---|---|---|
StuartLandauEngine |
Phase and amplitude matter (limit-cycle oscillators). | Stuart-Landau Amplitude Mode |
SparseUPDEEngine |
Large networks with a sparse coupling matrix. | API reference |
JaxUPDEEngine |
Differentiable / GPU-accelerated integration (needs the nn extra). |
Differentiable Kuramoto Layer |
Specialised dynamics engines (advanced)¶
The remaining engines model specific physics. They are research surfaces — powerful where they fit, but outside SPO's externally validated niche (see below). Each is documented in Advanced Dynamics:
| Engine | Dynamics |
|---|---|
DelayedEngine |
Kuramoto with time-delayed coupling. |
DopplerEngine |
Graph-weighted Doppler velocity correction. |
HypergraphEngine |
Arbitrary k-body (hypergraph) coupling. |
InertialKuramotoEngine |
Second-order swing-equation Kuramoto (power grids). |
MovingFrameUPDEEngine |
Chamber-frame axial positions with collision checks (fusion / MIF). |
SheafUPDEEngine |
Cellular-sheaf integrator for multi-dimensional phase vectors. |
SimplicialEngine |
Pairwise + simplicial (3-body) coupling. |
SplittingEngine |
Strang-split stepper (operator splitting). |
SwarmalatorEngine |
Swarmalators (coupled phase + spatial position). |
TorusEngine |
Symplectic Euler on the torus T^N. |
Honesty note — validated niche¶
Choosing a fancier engine does not make a claim validated. SPO's externally validated result is grid inter-area modal damping (IEEE-39 / Kundur vs ANDES eigenvalues); generic early-warning across the other modalities is honestly reported at chance on real data. See the README Evidence status table. Pick the engine your physics needs, then rely on the honest evaluation auditor — not the engine's sophistication — to tell you whether a detector beats chance on your data. ```