@@ -45,11 +45,13 @@ namespace multigrid {
4545/* *
4646 * cycle defines which kind of multigrid cycle can be used.
4747 * It contains V, W, and F cycle.
48- * - V, W cycle uses the algorithm according to Briggs, Henson, and McCormick: A
49- * multigrid tutorial 2nd Edition.
50- * - F cycle uses the algorithm according to Trottenberg, Oosterlee, and
51- * Schuller: Multigrid 1st Edition. F cycle first uses the recursive call but
52- * second uses the V-cycle call such that F-cycle is between V and W cycle.
48+ * - V, W cycles use the algorithm from Briggs–Henson–McCormick
49+ * (*A Multigrid Tutorial*, 2nd ed., SIAM 2000).
50+ * - F cycle uses the algorithm from Trottenberg–Oosterlee–Schüller
51+ * (*Multigrid*, 1st ed., Academic Press 2001); F-cycle first does the
52+ * recursive call then a V-cycle call, sitting between V and W in cost.
53+ *
54+ * See the @ref Multigrid class for the full reference list with DOIs.
5355 */
5456enum class cycle { v, f, w };
5557
@@ -82,11 +84,17 @@ class MultigridState;
8284
8385
8486/* *
85- * Multigrid methods have a hierarchy of many levels, whose corase level is a
86- * subset of the fine level, of the problem. The coarse level solves the system
87- * on the residual of fine level and fine level will use the coarse solution to
88- * correct its own result. Multigrid solves the problem by relatively cheap step
89- * in each level and refining the result when prolongating back.
87+ * Multigrid solves a linear system by combining cheap iterative sweeps
88+ * (smoothers) on a hierarchy of progressively coarser representations of
89+ * the operator with corrections transferred between adjacent levels. A
90+ * smoother on the fine level removes the high-frequency components of the
91+ * error quickly; the remaining low-frequency error is well-resolved on a
92+ * coarser space, where it is computed by a cheaper solve — or, recursively,
93+ * by another multigrid call. The correction is prolongated back to the
94+ * fine level and a second smoothing sweep removes any high-frequency error
95+ * introduced by the transfer. Because each coarser level holds only a
96+ * fraction of the unknowns of the next, the total work per cycle stays
97+ * close to that of a single fine-level matrix-vector apply.
9098 *
9199 * Each level \f$ \ell \f$ holds a system matrix \f$ A_\ell \f$, a smoother
92100 * \f$ S_\ell \f$, a restriction operator
@@ -121,6 +129,13 @@ class MultigridState;
121129 * the coarsest level (the coarsest solver), and its level counts is N (N
122130 * multigrid level generation).
123131 *
132+ * @par References
133+ * - Briggs, W. L., Henson, V. E., McCormick, S. F.
134+ * *A %Multigrid Tutorial.* 2nd ed. SIAM, 2000.
135+ * <https://doi.org/10.1137/1.9780898719505>
136+ * - Trottenberg, U., Oosterlee, C. W., Schüller, A.
137+ * *%Multigrid.* 1st ed. Academic Press, 2001. ISBN 978-0-12-701070-0.
138+ *
124139 * @ingroup Multigrid
125140 * @ingroup solvers
126141 * @ingroup LinOp
0 commit comments