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:
where is unit lower triangular and 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 finite element methods and shape optimization.
- namespace Rodin::FormLanguage
- Module for writing high level abstract expressions.
- namespace Rodin::Solver
- Module for solving linear and nonlinear systems.
Classes
-
template<class Scalar>class Rodin::Solver::SimplicialLDLT<Math::LinearSystem<Math::SparseMatrix<Scalar>, Math::Vector<Scalar>>>
- Simplicial LDLT Cholesky factorization without square root.