gko::multigrid#
Building blocks for the algebraic-multigrid hierarchy that
gko::solver::Multigrid drives. A
MultigridLevel represents the (restriction, coarse-operator,
prolongation) triple at one level of the hierarchy, and the concrete
classes here are the level generators: they take a fine-level system
matrix and produce the next coarser level.
For the high-level multigrid picture, see the Multigrid solver concept page; this section covers the per-level interfaces.
The level interface#
MultigridLevel: abstract interface for one level of the hierarchy that exposes the fine operator, the restriction, the coarse operator and the prolongation.
Level generators#
Pgm: Parallel Graph Matching aggregation, the standard algebraic-coarsening choice in Ginkgo. Aggregates fine-level rows based on matrix values (strongest-neighbour pairing).Pmis: classical C/F splitting by a parallel modified independent set, with direct interpolation and \(R = P^T\).Rs: Ruge-Stueben classical coarsening for M-matrices, with greedy C/F splitting by strong-neighbour counts and classical interpolation.UniformCoarsening: index-based coarsening that keeps everycoarse_skip-th row, either aggregating each fine row onto its coarse row or injecting only the selected rows; also accepts distributed matrices.FixedCoarsening: pick coarse-level rows by user-supplied index list, restricting by selection and prolonging by injection. Useful when the application already knows a good coarsening (e.g. from a structured mesh).