IDRS.h file
IDRS(s) solver for (generally) non-symmetric linear systems.
This header provides the IDRS(s) (Induced Dimension Reduction) solver class, an iterative method for solving linear systems:
for general (possibly non-symmetric) matrices.
IDR(s) is typically competitive with BiCGSTAB/GMRES for certain nonsymmetric problems, with short recurrences and modest memory footprint.
Notes
- This implementation uses Eigen's unsupported IDRS.
Usage Example
Solver::IDRS solver(problem); solver.setTolerance(1e-10).setMaxIterations(1000).setS(8).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::IDRS<Math::LinearSystem<Math::SparseMatrix<Scalar>, Math::Vector<Scalar>>>
- IDRS(s) solver for sparse systems.
-
template<class Scalar>class Rodin::Solver::IDRS<Math::LinearSystem<Math::Matrix<Scalar>, Math::Vector<Scalar>>>
- IDRS(s) solver for dense systems.