Rodin/Solver/Info.h file

Status reported by the factorization-based solvers.

The solvers that factorize their operator have no common ancestor: each one wraps a library of its own. They share this vocabulary instead, and expose it uniformly through getInfo() and success().

A factorization can fail for reasons that are not programming errors, such as a singular matrix or a factor that does not fit in memory. Solving with a failed factorization yields no solution and, depending on the backend, either leaves the solution vector untouched or reads state that was never computed. A solver therefore stops before the solve and reports what happened through its Info, leaving the caller to act on it. A violated contract, such as a matrix that is not square, remains an exception: it is a defect in the calling code rather than an outcome.

Namespaces

namespace Rodin
The Rodin library for finite element methods and shape optimization.
namespace Rodin::Solver
Namespace Rodin::Solver.

Classes

struct Rodin::Solver::Info
Outcome of the most recent operation of a factorization-based solver.