Skip to main content

Module solver

Module solver 

Source

Structs§

IslandReport
One connected component’s power-flow outcome — see IslandStatus.
PersistentSolver
A Newton-Raphson solver that reuses its symbolic factorization (fill- reducing ordering, elimination-graph structure — the expensive, topology-only part of a sparse LU factorization) across repeated solve calls, not just across the iterations within one call the way newton_raphson_with_backend already does.
SolveStats
How a Newton-Raphson solve terminated, plus the per-iteration convergence trace it used to print to stdout.

Enums§

IslandStatus
Per-connected-component outcome of a multi-island power-flow solve (see network::connected_components/classify) — one shared Newton-Raphson call across every solvable component’s unknowns at once (the Y-bus has no coupling between disconnected components, so this is mathematically equivalent, iteration for iteration, to solving each independently), with per-component status recovered afterward rather than tracked live.
JacobianBackend
Selects which sparse-LU backend newton_raphson_with_backend uses to solve the Jacobian system each iteration.
SolveStatus
Outcome of a single Newton-Raphson solve — see SolveStats, which carries this alongside the convergence trace.

Traits§

LinearSolver
The one operation the Newton loop needs from a sparse-LU backend: build a reusable symbolic factorization from a sparsity pattern once, then numerically refactorize and solve against that same pattern every iteration.

Functions§

newton_raphson
newton_raphson_with_backend
Partitions buses into connected components first (network:: connected_components/classify/mark_unreferenced_islands — see docs/src/powerflow/multi_island.md), so a disconnected, sourceless region can never make the whole Jacobian singular, then solves every component in one shared Newton-Raphson call and returns each one’s own outcome. This is gridoxide’s one canonical way to run a solve — PersistentSolver::solve and crate::outerloop::solve_with_loops share this exact same partitioning step, so behavior is identical regardless of which entry point a caller uses.