From cea31ccf4133ea2194a784d9ec86c7ca8f85631e Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Sat, 18 May 2019 08:55:31 -0600 Subject: [PATCH] Update the results section of step-64. --- examples/step-64/doc/results.dox | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/examples/step-64/doc/results.dox b/examples/step-64/doc/results.dox index ca29f9b77b..fbd4a395b3 100644 --- a/examples/step-64/doc/results.dox +++ b/examples/step-64/doc/results.dox @@ -1,7 +1,8 @@

Results

Since the main purpose of this tutorial is to demonstrate how to use the -CUDAWrappers::MatrixFree interface, we just show the expected output here: +CUDAWrappers::MatrixFree interface, not to compute anything useful in +itself, we just show the expected output here: @code Cycle 0 Number of active cells: 8 @@ -28,11 +29,26 @@ Cycle 3 solution norm: 0.0205261 @endcode +One can make two observations here: First, the norm of the numerical solution +converges, presumably to the norm of the exact (but unknown) +solution. And second, the number of iterations roughly doubles with +each refinement of the mesh. (This is in keeping with the expectation +that the number of CG iterations grows with the square root of the +condition number of the matrix; and that we know that the condition +number of the matrix of a second-order differential operation grows +like ${\cal O}(h^{-2})$.) This is of course rather inefficient, as an +optimal solver would have a number of iterations that is independent +of the size of the problem. But having such a solver would require +using a better preconditioner than the identity matrix we have used here. + +

Possible extensions

-Currently, there is no preconditioner used at all. This is mainly since -constructing an efficient matrix-free preconditioner is non-trivial. -However, simple choices just requiring the diagonal of the corresponding matrix -are good candidates. In particular, one could extend the tutorial to use multigrid -with Chebyshev smoothers similar to step-37. +Currently, this program uses no preconditioner at all. This is mainly +since constructing an efficient matrix-free preconditioner is +non-trivial. However, simple choices just requiring the diagonal of +the corresponding matrix are good candidates and these can be computed +in a matrix-free way as well. Alternatively, and maybe even better, +one could extend the tutorial to use multigrid with Chebyshev +smoothers similar to step-37. -- 2.39.5