]> https://gitweb.dealii.org/ - dealii.git/commitdiff
description of multilevel classes
authorGuido Kanschat <dr.guido.kanschat@gmail.com>
Tue, 12 May 2009 11:48:11 +0000 (11:48 +0000)
committerGuido Kanschat <dr.guido.kanschat@gmail.com>
Tue, 12 May 2009 11:48:11 +0000 (11:48 +0000)
git-svn-id: https://svn.dealii.org/trunk@18837 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/doc/doxygen/headers/mg.h
deal.II/doc/doxygen/headers/preconditioners.h

index 9b04fad62d4d3cd0b19b9b899719611a5d1e8c84..836129fdb9fca706e11766b1b8826d545ec7ae8e 100644 (file)
@@ -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
  * @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:
+ *
+ * <ol>
+ * <li> MGMatrixBase contains the level matrices with a fairly general
+ * implementation in MGMatrix
+ * <li> MGCoarseGridBase is the solver on the coarsest level.
+ * <li> MGSmootherBase performs smoothing on each level.
+ * <li> MGTransferBase organizes the transfer between levels.
+ * </ol>
+ *
+ * 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.
  */
index 02e01e90e75c9dabf52963c0f8d560968951d421..78f2617fe0b8ee2d05363c448b0566fec009d7b9 100644 (file)
@@ -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
  * 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 <tt>vmult()</tt>
- * 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
+ * <tt>vmult()</tt> of the preconditioner. Some solvers may also use
+ * <tt>Tvmult()</tt>.
  *
  * @ingroup LAC
  * @ingroup Matrices

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.