Rodin/Solver/DGMRES.h file

DGMRES solver for (generally) non-symmetric linear systems.

This header provides the DGMRES (Deflated GMRES) solver class, an iterative method for solving linear systems:

\[ Ax = b \]

for general (possibly non-symmetric) matrices.

DGMRES accelerates restarted GMRES by deflating (approximations of) invariant subspaces associated with slow-to-converge eigencomponents.

Notes

  • This implementation uses Eigen's unsupported DGMRES.

Usage Example

Solver::DGMRES solver(problem);
solver.setTolerance(1e-10).setMaxIterations(1000).setRestart(50).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::DGMRES<Math::LinearSystem<Math::SparseMatrix<Scalar>, Math::Vector<Scalar>>>
DGMRES solver for sparse systems.
template<class Scalar>
class Rodin::Solver::DGMRES<Math::LinearSystem<Math::Matrix<Scalar>, Math::Vector<Scalar>>>
DGMRES solver for dense systems.