Rodin/Solver/SPQR.h file

SuiteSparseQR multifrontal sparse QR solver wrapper.

This header provides a wrapper for SPQR (SuiteSparseQR) from SuiteSparse, a high-performance direct solver using multifrontal sparse QR factorization.

Algorithm

SPQR computes:

\[ AP = QR \]

where $ P $ is a fill-reducing permutation, $ Q $ is orthogonal, and $ R $ is upper triangular. The multifrontal method processes the matrix efficiently using an elimination tree.

Applicability

  • General sparse matrices
  • Rank-deficient systems
  • Least-squares problems
  • Overdetermined systems
  • Problems requiring excellent numerical stability

Usage Example

Problem problem(u, v);
problem = Integral(Grad(u), Grad(v)) - Integral(f, v);

Solver::SPQR solver(problem);
solver.setTolerance(1e-10).solve();