]> https://gitweb.dealii.org/ - dealii.git/commitdiff
address comments
authorTimo Heister <timo.heister@gmail.com>
Wed, 8 Aug 2018 15:17:29 +0000 (17:17 +0200)
committerTimo Heister <timo.heister@gmail.com>
Wed, 5 Sep 2018 15:00:55 +0000 (11:00 -0400)
examples/step-16/doc/results.dox
examples/step-16/step-16.cc
examples/step-16b/doc/intro.dox
examples/step-16b/doc/results.dox
examples/step-16b/step-16b.cc

index d03a6a0c2a4c79b7d1b2f560cf4f47255631cfc9..31836288ad199b4c56903a5b501636ce18d2fd51 100644 (file)
@@ -13,42 +13,42 @@ the solver performance. Therefore, here is the textual output:
 Cycle 0
    Number of active cells:       80
    Number of degrees of freedom: 89 (by level: 8, 25, 89)
-  Number of CG iterations: 8
+   Number of CG iterations: 8
 
 Cycle 1
    Number of active cells:       158
    Number of degrees of freedom: 183 (by level: 8, 25, 89, 138)
-  Number of CG iterations: 9
+   Number of CG iterations: 9
 
 Cycle 2
    Number of active cells:       302
    Number of degrees of freedom: 352 (by level: 8, 25, 89, 223, 160)
-  Number of CG iterations: 10
+   Number of CG iterations: 10
 
 Cycle 3
    Number of active cells:       578
    Number of degrees of freedom: 649 (by level: 8, 25, 89, 231, 494, 66)
-  Number of CG iterations: 10
+   Number of CG iterations: 10
 
 Cycle 4
    Number of active cells:       1100
    Number of degrees of freedom: 1218 (by level: 8, 25, 89, 274, 764, 417, 126)
-  Number of CG iterations: 10
+   Number of CG iterations: 10
 
 Cycle 5
    Number of active cells:       2096
    Number of degrees of freedom: 2317 (by level: 8, 25, 89, 304, 779, 1214, 817)
-  Number of CG iterations: 11
+   Number of CG iterations: 11
 
 Cycle 6
    Number of active cells:       3986
    Number of degrees of freedom: 4366 (by level: 8, 25, 89, 337, 836, 2270, 897, 1617)
-  Number of CG iterations: 10
+   Number of CG iterations: 10
 
 Cycle 7
    Number of active cells:       7574
    Number of degrees of freedom: 8350 (by level: 8, 25, 89, 337, 1086, 2835, 2268, 1789, 3217)
-  Number of CG iterations: 11
+   Number of CG iterations: 11
 </pre>
 
 That's almost perfect multigrid performance: the linear residual gets reduced by 12 orders of
@@ -60,7 +60,7 @@ it shows the power of multigrid methods.
 <h3> Possible extensions </h3>
 
 
-We encourage you to switch generate timings for the solve() call and compare to
+We encourage you to generate timings for the solve() call and compare to
 step 6. You will see that the multigrid method has quite an overhead
 on coarse meshes, but that it always beats other methods on fine
 meshes because of its optimal complexity.
@@ -78,8 +78,8 @@ preconditioner that uses some sort of multigrid hierarchy for good performance
 but can figure out level matrices and similar things by itself. Algebraic
 multigrid methods do exactly this, and we will use them in step-31 for the
 solution of a Stokes problem and in step-32 and step-40 for a parallel
-variation. That said, a parallel version of this example program with MPI is found
-as step-50.
+variation. That said, a parallel version of this example program with MPI can be
+found in step-50.
 
 Finally, one may want to think how to use geometric multigrid for other kinds of
 problems, specifically @ref vector_valued "vector valued problems". This is the
index f28d688d3c0d0d6eb0d3239cbc7fd2cfd8786f3a..c6cc1c80beda21a1c5eef0b9ff17015a9b61606b 100644 (file)
@@ -84,10 +84,11 @@ namespace Step16
 {
   // @sect3{The Scratch and Copy objects}
   //
-  // We use MeshWorker::mesh_loop() to assemble our matrices. For this, we need
-  // a ScratchData object to store temporary data on each cell (this is just the
-  // FEValues object) and a CopyData object that will contain the output of each
-  // cell assembly.
+  // We use MeshWorker::mesh_loop() to assemble our matrices. For this, we
+  // need a ScratchData object to store temporary data on each cell (this is
+  // just the FEValues object) and a CopyData object that will contain the
+  // output of each cell assembly. For more details about the usage of scratch
+  // and copy objects, see the WorkStream namespace.
   template <int dim>
   struct ScratchData
   {
@@ -424,7 +425,9 @@ namespace Step16
   // us, and thus the difference between this function and the previous lies
   // only in the setup of the assembler and the different iterators in the loop.
   //
-  // We generate an AffineConstraints<> object
+  // We generate an AffineConstraints<> object for each level containing the
+  // boundary and interface dofs as constrained entries. The corresponding
+  // object is then used to generate the level matrices.
   template <int dim>
   void LaplaceProblem<dim>::assemble_multigrid()
   {
@@ -587,7 +590,7 @@ namespace Step16
     solution = 0;
 
     solver.solve(system_matrix, solution, system_rhs, preconditioner);
-    std::cout << "  Number of CG iterations: " << solver_control.last_step()
+    std::cout << "   Number of CG iterations: " << solver_control.last_step()
               << "\n"
               << std::endl;
     constraints.distribute(solution);
index 594e00507dd6d37b11521b00baf03f4855789259..5e4375c42a53f9ff8f0e483d8a5d0dd73d698926 100644 (file)
@@ -9,4 +9,4 @@ of manually assembling the matrices.
 
 <h3>The testcase</h3>
 
-The problem we solve here is similar to step-16.
+The problem we solve here is the same as the one in step-16.
index c7e3f8fb58fd8324be7f9b000a6f58c4840a2f24..4f5baa31f477fece7dc26ceb0b26c3fb5619811f 100644 (file)
@@ -6,7 +6,8 @@ As in step-16, the solution looks like this on the finest mesh:
   <img src="https://www.dealii.org/images/steps/developer/step-16.solution.png" alt="">
 </p>
 
-The output is formatted in a slightly different way compared to step-16:
+The output is formatted in a slightly different way compared to step-16 but is
+functionally the same and shows the same convergence properties:
 <pre>
 DEAL::Cycle 0
 DEAL::   Number of active cells:       20
@@ -49,8 +50,3 @@ DEAL::   Number of degrees of freedom: 2359 (by level: 8, 25, 89, 308, 779, 1262
 DEAL:cg::Starting value 0.141519
 DEAL:cg::Convergence step 10 value 5.74965e-13
 </pre>
-
-
-<h3> Possible extensions </h3>
-
-See step-16.
index 544633329188db68fb4bee2cc56da57decd253df..b35c6d4f558b620bbbe2f0c02f6e9ba8046d6023 100644 (file)
@@ -278,10 +278,9 @@ namespace Step16
     const std::map<types::boundary_id, const Function<dim> *>
       dirichlet_boundary_functions = {
         {types::boundary_id(0), &homogeneous_dirichlet_bc}};
-    VectorTools::interpolate_boundary_values(
-      static_cast<const DoFHandler<dim> &>(dof_handler),
-      dirichlet_boundary_functions,
-      constraints);
+    VectorTools::interpolate_boundary_values(dof_handler,
+                                             dirichlet_boundary_functions,
+                                             constraints);
     constraints.close();
     constraints.condense(dsp);
     sparsity_pattern.copy_from(dsp);

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.