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 every coarse_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).