Skip to content

Commit

Permalink
Merge pull request #14987 from bangerth/7
Browse files Browse the repository at this point in the history
Leave a hint in step-7.
  • Loading branch information
drwells committed Apr 19, 2023
2 parents 55ce874 + 9a624cf commit 4a804d0
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 8 deletions.
12 changes: 12 additions & 0 deletions doc/doxygen/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,18 @@ @article{Li2019
url = {https://doi.org/10.1007/s10915-019-01102-1}
}

@article{KronbichlerWall2018,
author = {Kronbichler, Martin and Wall, Wolfgang A.},
title = {A Performance Comparison of Continuous and Discontinuous Galerkin Methods with Fast Multigrid Solvers},
journal = {SIAM Journal on Scientific Computing},
year = {2018},
volume = {40},
number = {5},
pages = {A3423--A3448},
url = {https://epubs.siam.org/doi/10.1137/16M110455X},
doi = {10.1137/16M110455X}
}

%-------------------------------------------------------------------------------
% Step 10
%-------------------------------------------------------------------------------
Expand Down
23 changes: 15 additions & 8 deletions examples/step-7/doc/results.dox
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ but it should not be very hard to get the program to work!

<h4> Convergence Comparison </h4>

Is Q1 or Q2 better? What about adaptive versus global refinement? A (somewhat
Is $Q_1$ or $Q_2$ better? What about adaptive versus global refinement? A (somewhat
unfair but typical) metric to compare them, is to look at the error as a
function of the number of unknowns.

Expand All @@ -288,10 +288,17 @@ work than if we used global refinement. This is not a particularly
surprising conclusion, but it's worth checking these sorts of
assumptions in practice.

Of course, a fairer comparison would be to plot runtime (switch to release
mode first!) instead of number of unknowns on the $x$ axis. If you
plotted run time against the number of unknowns by timing each
refinement step (e.g., using the Timer class), you will notice that
the linear solver is not perfect -- its run time grows faster than
proportional to the linear system size -- and picking a better
linear solver might be appropriate for this kind of comparison.
Of course, a fairer comparison would be to plot runtime (switch to
release mode first!) instead of number of unknowns on the $x$ axis. If
you plotted run time (check out the Timer class!) against the number
of unknowns by timing each refinement step, you will notice that the
linear system solver we use in this program is not perfect -- its run
time grows faster than proportional to the linear system size -- and
picking a better linear solver might be appropriate for this kind of
comparison.

To see how a comparison of this kind could work, take a look at
@cite KronbichlerWall2018 , and specifically Figure 5
that illustrates the error as a function of compute time for
a number of polynomial degrees (as well as a number of different ways
to discretize the equation used there).

0 comments on commit 4a804d0

Please sign in to comment.