Rodin/Solver/SimplicialLDLT.h file

Simplicial LDLT Cholesky factorization for sparse SPD matrices.

This header provides the SimplicialLDLT solver class, which implements Cholesky decomposition without square root for symmetric positive definite sparse matrices.

Algorithm

The solver computes:

\[ A = LDL^T \]

where $ L $ is unit lower triangular and $ D $ is diagonal. This variant avoids square root operations, improving numerical stability.

Applicability

  • Symmetric positive definite sparse matrices
  • When numerical stability is a concern
  • Problems requiring higher precision
  • Systems where LLT might encounter numerical issues

Usage Example

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

Solver::SimplicialLDLT 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::SimplicialLDLT<Math::LinearSystem<Math::SparseMatrix<Scalar>, Math::Vector<Scalar>>>
Simplicial LDLT Cholesky factorization without square root.