From: Guido Kanschat Date: Tue, 12 May 2009 11:48:11 +0000 (+0000) Subject: description of multilevel classes X-Git-Tag: v8.0.0~7695 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58deaa00b01203a454a3fc72691dd438d5c2bf83;p=dealii.git description of multilevel classes git-svn-id: https://svn.dealii.org/trunk@18837 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/doc/doxygen/headers/mg.h b/deal.II/doc/doxygen/headers/mg.h index 9b04fad62d..836129fdb9 100644 --- a/deal.II/doc/doxygen/headers/mg.h +++ b/deal.II/doc/doxygen/headers/mg.h @@ -2,7 +2,7 @@ // $Id$ // Version: $Name$ // -// Copyright (C) 2003, 2005, 2006 by the deal.II authors +// Copyright (C) 2003, 2005, 2006, 2009 by the deal.II authors // // This file is subject to QPL and may not be distributed // without copyright and license information. Please refer @@ -15,6 +15,29 @@ * @defgroup mg Multilevel support * * Classes that have to do with multigrid algorithms. + * + * The main class with implementation of the multigrid scheme is + * Multigrid with its function Multigrid::cycle(). It uses the + * following abstract classes in order to perform the multigrid cycle: + * + *
    + *
  1. MGMatrixBase contains the level matrices with a fairly general + * implementation in MGMatrix + *
  2. MGCoarseGridBase is the solver on the coarsest level. + *
  3. MGSmootherBase performs smoothing on each level. + *
  4. MGTransferBase organizes the transfer between levels. + *
+ * + * Additionally, there is a class PreconditionMG, which is a wrapper + * around Multigrid with the standard interface of deal.II @ref + * Preconditioners. PreconditionMG also uses the classes inheriting + * from MGTransferBase, for instance MGTransferPrebuilt, where it uses + * MGTransferPrebuilt::copy_to_mg() and + * MGTransferPrebuilt::copy_from_mg_add(), which transfer between the + * global vector and the level vectors. + * + * Finally, we have several auxiliary classes, namely MGLevelObject, + * which stores an object on each level * * See the step-16 example program on how to use this functionality. */ diff --git a/deal.II/doc/doxygen/headers/preconditioners.h b/deal.II/doc/doxygen/headers/preconditioners.h index 02e01e90e7..78f2617fe0 100644 --- a/deal.II/doc/doxygen/headers/preconditioners.h +++ b/deal.II/doc/doxygen/headers/preconditioners.h @@ -2,7 +2,7 @@ // $Id$ // Version: $Name$ // -// Copyright (C) 2003, 2004, 2006, 2007 by the deal.II authors +// Copyright (C) 2003, 2004, 2006, 2007, 2009 by the deal.II authors // // This file is subject to QPL and may not be distributed // without copyright and license information. Please refer @@ -21,13 +21,10 @@ * decompositions (ILU). In addition, sparse direct solvers can be used as * preconditioners when available. * - * In principle, and in the mathematical literature, preconditioners are - * treated as matrices in the sense that one can do a matrix-vector - * multiplication with them. On the other hand, one doesn't usually have an - * element-by-element representation of these matrices, only their action on a - * vector. The preconditioner classes therefore often have a vmult() - * function that symbolizes the ability to perform matrix-vector - * multiplications, just like the real matrix classes. + * In order to be used by deal.II solvers, preconditioners must + * conform to the standard matrix interface. Solvers use the function + * vmult() of the preconditioner. Some solvers may also use + * Tvmult(). * * @ingroup LAC * @ingroup Matrices