From: Wolfgang Bangerth Date: Fri, 8 May 2015 02:20:21 +0000 (-0500) Subject: Discuss the reason why we even use such a complicated solver. X-Git-Tag: v8.3.0-rc1~187^2~1 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e0ec42a5bfe05782391f64726a45cb997586d236;p=dealii.git Discuss the reason why we even use such a complicated solver. This seems to perpetually unsettle my students as they think that one can only solve coupled systems using block solvers (step-20 is the first coupled problem they encounter). But this is not true -- one can just use a direct solver, for example. --- diff --git a/examples/step-20/doc/intro.dox b/examples/step-20/doc/intro.dox index dbea94c603..b1e3ba846d 100644 --- a/examples/step-20/doc/intro.dox +++ b/examples/step-20/doc/intro.dox @@ -351,7 +351,14 @@ the next problem immediately surfaces: due to the zero block, there are zeros on the diagonal and none of the usual preconditioners (Jacobi, SSOR) will work as they require division by diagonal elements. -In the following, we will introduce some techniques that can be used in cases +For the matrix sizes we expect to run with this program, the by far simplest +approach would be to just use a direct solver (in particular, the +SparseDirectUMFPACK class that is bundled with deal.II). step-29 goes this +route and shows that solving any linear system can be done in just +3 or 4 lines of code. + +But then, this is a tutorial: we teach how to do things. Consequently, +in the following, we will introduce some techniques that can be used in cases like these. Namely, we will consider the linear system as not consisting of one large matrix and vectors, but we will want to decompose matrices into vectors into blocks that correspond to the individual operators that appear in