Module ojalgo

Class MutableSolver

  • All Implemented Interfaces:
    MatrixTask<java.lang.Double>, SolverTask<java.lang.Double>
    Direct Known Subclasses:
    IterativeASS.SchurComplementSolver

    public abstract class MutableSolver
    extends java.lang.Object
    implements SolverTask<java.lang.Double>
    Lightweight mutable wrapper around a list of Equation rows that delegates solving to an IterativeSolverTask.

    Purpose

    • Build and update an equation system incrementally by adding/removing Equation rows.
    • Reuse an iterative solver across solves without rebuilding matrices.
    • Support workflows where the active rows/columns change between iterations.
    How it works Contract
    • Every added Equation must have Equation.size() equal to the problem size passed to the constructor; otherwise an IllegalArgumentException is thrown.
    • The provided solution vector represents the active variable subspace; residuals are formed against that vector and the current row bodies only.
    • Thread-safety: instances are not thread-safe; do not mutate the row set while solving.
    Example usage
    • A subclass can also implement MatrixStore and dynamically assemble a Schur-complement-style system by adding/removing rows, and then call resolve(PhysicalStore) to compute the unknowns.