Rodin/Solver/SparseQR.h file

Sparse QR factorization with column pivoting.

This header provides the SparseQR solver class, which implements QR decomposition with numerical column pivoting for sparse matrices.

Algorithm

The solver computes:

\[ AP = QR \]

where $ P $ is a permutation matrix, $ Q $ is orthogonal, and $ R $ is upper triangular. The left-looking algorithm proceeds column by column.

Applicability

  • General sparse matrices (no symmetry required)
  • Rank-deficient systems
  • Least-squares problems
  • Overdetermined systems
  • Systems where LU factorization is numerically unstable

Usage Example

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

Solver::SparseQR solver(problem);
solver.solve();

Namespaces

namespace Rodin
The Rodin library for Shape and Topology Optimization.
namespace Rodin::Solver
Module for linear algebra systems.

Classes

template<class Scalar>
class Rodin::Solver::SparseQR<Math::LinearSystem<Math::SparseMatrix<Scalar>, Math::Vector<Scalar>>>
Sparse QR factorization with numerical column pivoting.