deltaFlow
ISolver.H File Reference

Abstraction over power-flow solvers (Open/Closed Principle). More...

#include <Eigen/Dense>
#include <utility>
#include <vector>
Include dependency graph for ISolver.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SolverContext
 Shared input/output parameters for power-flow solvers. More...
 
class  ISolverObserver
 Sink for solver progress/diagnostics (Dependency Inversion / SRP). More...
 
class  ISolver
 Common interface for power-flow solvers. More...
 

Detailed Description

Abstraction over power-flow solvers (Open/Closed Principle).

GaussSeidel and NewtonRaphson take different raw parameter lists (GaussSeidel works directly with the complex Y_bus and a relaxation coefficient; NewtonRaphson works with separate G/B matrices and PQ bus indices). Rather than forcing a single signature on both algorithms (which would require either changing their existing free-function signatures - breaking tests that call them directly - or silently dropping solver-specific parameters), ISolver exposes a shared SolverContext that carries every parameter either solver might need. Each concrete solver class reads only the fields it needs and forwards them, unchanged, to the existing free function.

Definition in file ISolver.H.