Rodin/Solver/SparseLU.h file

Sparse LU factorization solver.

This header provides the SparseLU solver class, which implements sparse supernodal LU factorization for general (non-symmetric) matrices using Eigen's SparseLU solver.

Algorithm

The solver performs LU decomposition:

\[ PA = LU \]

where $ P $ is a permutation matrix for numerical stability, $ L $ is lower triangular, and $ U $ is upper triangular.

Applicability

  • General sparse matrices (non-symmetric)
  • Problems where iterative solvers fail to converge
  • Small to medium-sized systems

Usage Example

Problem problem(u, v);
problem = Integral(beta * Grad(u), Grad(v)) + Integral(gamma * u, v) - Integral(f, v);

Solver::SparseLU 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::SparseLU<Math::LinearSystem<Math::SparseMatrix<Scalar>, Math::Vector<Scalar>>>
Sparse supernodal LU factorization solver for general sparse matrices.