From 44805cbc95a8a63a0415d9941711cf28cc743ee3 Mon Sep 17 00:00:00 2001 From: bangerth Date: Thu, 1 Apr 2010 22:21:00 +0000 Subject: [PATCH] Add an entry. git-svn-id: https://svn.dealii.org/trunk@20932 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/doc/doxygen/headers/glossary.h | 60 ++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 4 deletions(-) diff --git a/deal.II/doc/doxygen/headers/glossary.h b/deal.II/doc/doxygen/headers/glossary.h index f0b3430ab0..32dd87491a 100644 --- a/deal.II/doc/doxygen/headers/glossary.h +++ b/deal.II/doc/doxygen/headers/glossary.h @@ -25,11 +25,63 @@ *
@anchor GlossActive Active cells
*
Mesh cells not refined any further in the hierarchy.
* + * + *
@anchor GlossBlockLA Block (linear algebra)
+ + *
It is often convenient to treat a matrix or vector as a collection of + * individual blocks. For example, in step-20 (and other tutorial + * programs), we want to consider the global linear system $Ax=b$ in + * the form + * @f{eqnarray*} + \left(\begin{array}{cc} + M & B^T \\ B & 0 + \end{array}\right) + \left(\begin{array}{cc} + U \\ P + \end{array}\right) + = + \left(\begin{array}{cc} + F \\ G + \end{array}\right), + * @f} + * where $U,P$ are the values of velocity and pressure degrees of freedom, + * respectively, $M$ is the mass matrix on the velocity space, $B$ corresponds to + * the negative divergence operator, and $B^T$ is its transpose and corresponds + * to the negative gradient. + * + * Using such a decomposition into blocks, one can then define + * preconditioners that are based on the individual operators that are + * present in a system of equations (for example the Schur complement, + * in the case of step-20), rather than the entire matrix. In essence, + * blocks are used to reflect the structure of a PDE system in linear + * algebra, in particular allowing for modular solvers for problems + * with multiple solution components. On the other hand, the matrix + * and right hand side vector can also treated as a unit, which is + * convenient for example during assembly of the linear system when + * one may not want to make a distinction between the individual + * components, or for an outer Krylov space solver that doesn't care + * about the block structure (e.g. if only the preconditioner needs + * the block structure). + * + * Splitting matrices and vectors into blocks is supported by the + * BlockSparseMatrix, BlockVector, and related classes. See the + * overview of the various linear algebra classes in the @ref LAC + * module. The objects present two interfaces: one that makes the + * object look like a matrix or vector with global indexing + * operations, and one that makes the object look like a collection of + * sub-blocks that can be individually addressed. Depending on + * context, one may wish to use one or the other interface. + * + * Typically, one defines the sub-structure of a matrix or vector by + * grouping the degrees of freedom that make up groups of physical + * quantities (for example all velocities) into individual blocks of + * the linear system. This is defined in more detail below in the + * glossary entry on @ref GlossBlock "Block (finite element)". + *
+ * + * *
@anchor GlossBlock Block
- *
Blocks were introduced in BlockVector, - * BlockSparseMatrix and related classes. These are used to reflect the - * structure of a PDE system in linear algebra, in particular allowing - * for modular solvers for problems with multiple solution components. + *
* How to implement this is described in more detail in the * documentation of FESystem, the * @ref vector_valued module and the tutorial programs referenced -- 2.39.5