Template Class SolverLamg

Class Documentation

template<class Matrix>
class SolverLamg

Implements the solve phase of LAMG (Lean Algebraic Multigrid by Livne et al.).

Public Functions

inline SolverLamg(const LevelHierarchy<Matrix> &hierarchy, const Smoother<Matrix> &smoother)

Constructs a new solver instance for the specified hierarchy. The smoother will be used for relaxing and solving the coarser solutions.

Parameters:
SolverLamg(const SolverLamg<Matrix> &other) = default
SolverLamg(SolverLamg<Matrix> &&other) noexcept = default
virtual ~SolverLamg() = default
SolverLamg &operator=(SolverLamg<Matrix> &&other) noexcept = default
SolverLamg &operator=(const SolverLamg<Matrix> &other) = default
void solve(Vector &x, const Vector &b, LAMGSolverStatus &status)

Solves the system A*x = b for the given initial x and right-hand side b. More parameters can be specified in status and additional output is also stored in status. After the solver finished, the approximate solution is stored in x.

Parameters:
  • x[out] – Reference to the initial guess to the solution and the approximation after the solver finished.

  • b – The right-hand side vector.

  • status – Reference to an LAMGSolverStatus.