gko::multigrid::MultigridLevel#
Abstract interface for a single level of an algebraic-multigrid
hierarchy. Exposes three LinOps — the restriction \(R\), the coarse
operator \(A_c\), and the prolongation \(P\) — so that
gko::solver::Multigrid can drive any
generator that implements this interface without knowing how the level
was assembled.
Concrete level generators (Pgm, FixedCoarsening, …) implement
this interface. New generators typically combine the
EnableMultigridLevel<ValueType> CRTP mixin (which supplies the
storage and accessor boilerplate) with their own factorisation logic.
-
class MultigridLevel#
This class represents two levels in a multigrid hierarchy.
The MultigridLevel is an interface that allows to get the individual components of multigrid level. Each implementation of a multigrid level should inherit from this interface. Use EnableMultigridLevel<ValueType> to implement this interface with composition by default.
Subclassed by
gko::multigrid::EnableMultigridLevel< default_precision >
gko::multigrid::EnableMultigridLevel< ValueType >
Public Functions
-
virtual std::shared_ptr<const LinOp> get_fine_op() const = 0#
Returns the operator on fine level.
- Returns:
the operator on fine level.
-
virtual std::shared_ptr<const LinOp> get_restrict_op() const = 0#
Returns the restrict operator.
- Returns:
the restrict operator.