From: bangerth Date: Mon, 28 Jan 2008 04:07:14 +0000 (+0000) Subject: Structure documentation. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=54af7e74ca33cc9fea6932e15e33e7f521ad6ae6;p=dealii-svn.git Structure documentation. git-svn-id: https://svn.dealii.org/trunk@15693 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/examples/step-31/doc/intro.dox b/deal.II/examples/step-31/doc/intro.dox index 7cc421d805..b6908126a2 100644 --- a/deal.II/examples/step-31/doc/intro.dox +++ b/deal.II/examples/step-31/doc/intro.dox @@ -2,7 +2,7 @@

Introduction

-

Linear solver

+

Linear solver and preconditioning issues

For this program, we have to solve the following system resulting from discretization of the Stokes equations: @@ -22,36 +22,46 @@ Like in @ref step_20 "step-20" and @ref step_21 "step-21", we will solve this system of equations by forming the Schur complement, i.e. we will first find the solution $P$ of @f{eqnarray*} - BA^{-1}B^T P &=& BM^{-1} F - G, \\ + BA^{-1}B^T P &=& BA^{-1} F - G, \\ @f} and then @f{eqnarray*} - MU &=& F - B^TP. + AU &=& F - B^TP. @f} The way we do this is pretty much exactly like we did in these previous tutorial programs, i.e. we use the same classes SchurComplement -and InverseMatrix again. There are slight differences, +and InverseMatrix again. There are two significant differences, however: +
    +
  1. First, in the mixed Laplace equation we had to deal with the question of how to precondition the Schur complement $B^TM^{-1}B$, which was spectrally equivalent to the Laplace operator on the pressure space (because $B$ represents the gradient operator, $B^T$ its adjoint $-\textrm{div}$, and $M$ the identity (up to the material parameter $K^{-1}$), so $B^TM^{-1}B$ is -something like $-\textrm{div} 1 \nabla = -\Delta$) and consequently badly -conditioned for small mesh sizes. To this end, we had to come up with an -elaborate preconditioning scheme for the Schur complement. +something like $-\textrm{div} 1 \nabla = -\Delta$). Consequently, the matrix +is badly conditioned for small mesh sizes and we had to come up with +an elaborate preconditioning scheme for the Schur complement. +
  2. Second, every time we multiplied with $B^TM^{-1}B$ we had to solve with the mass matrix $M$. This wasn't particularly difficult, however, since the mass matrix is always well conditioned and so simple to invert using CG and a little bit of preconditioning. +
+In other words, preconditioning the inner solver for $M$ was simple whereas +preconditioning the outer solver for $B^TM^{-1}B$ was complicated. Here, the situation is pretty much exactly the opposite. The difference stems from the fact that the matrix at the heart of the Schur complement does not stem from the identity operator but from a variant of the Laplace operator, $-\textrm{div} \eta \nabla^s$ (where $\nabla^s$ is the symmetric gradient) -acting on a vector field. This makes the outer preconditioner simple: the +acting on a vector field. This has two consequences: + +
    +
  1. +First, it makes the outer preconditioner simple: the Schur complement corresponds to the operator $-\textrm{div} (-\textrm{div} \eta \nabla^s)^{-1} \nabla$ on the pressure space; forgetting about the viscosity $\eta$ and ignoring the fact that we deal with symmetric gradients @@ -73,5 +83,7 @@ system matrix is empty because the weak form of the equations have no term that would couple the pressure variable to the pressure test functions. ... +
  2. Inner preconditioner. +