Skip to content

Commit

Permalink
Discuss the concept of superconvergence better.
Browse files Browse the repository at this point in the history
  • Loading branch information
bangerth committed Sep 15, 2020
1 parent 278543f commit d666c1e
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 9 deletions.
17 changes: 17 additions & 0 deletions doc/doxygen/references.bib
Expand Up @@ -26,6 +26,23 @@ @article{Kel74
pages = {101--129}
}

%-------------------------------------------------------------------------------
% Step 7
%-------------------------------------------------------------------------------
@article{Li2019,
doi = {10.1007/s10915-019-01102-1},
url = {https://doi.org/10.1007/s10915-019-01102-1},
year = {2019},
month = dec,
publisher = {Springer Science and Business Media {LLC}},
volume = {82},
number = {1},
author = {Hao Li and Xiangxiong Zhang},
title = {Superconvergence of $C^0-Q^k$ Finite Element Method for Elliptic Equations with Approximated Coefficients},
journal = {Journal of Scientific Computing}
}

%-------------------------------------------------------------------------------
% Step 14
%-------------------------------------------------------------------------------
Expand Down
33 changes: 24 additions & 9 deletions examples/step-7/step-7.cc
Expand Up @@ -868,15 +868,30 @@ namespace Step7
VectorTools::H1_seminorm);

// Finally, we compute the maximum norm. Of course, we can't actually
// compute the true maximum, but only the maximum at the quadrature
// points. Since this depends quite sensitively on the quadrature rule
// being used, and since we would like to avoid false results due to
// super-convergence effects at some points, we use a special quadrature
// rule that is obtained by iterating the trapezoidal rule by the degree of
// the finite element times two plus one in each space direction.
// Note that the constructor of the QIterated class
// takes a one-dimensional quadrature rule and a number that tells it how
// often it shall use this rule in each space direction.
// compute the true maximum of the error over *all* points in the domain,
// but only the maximum over a finite set of evaluation points that, for
// convenience, we will still call "quadrature points" and represent by
// an object of type Quadrature even though we do not actually perform any
// integration.
//
// There is then the question of what points precisely we want to evaluate
// at. It turns out that the result we get depends quite sensitively on the
// "quadrature" points being used. There is also the issue of
// superconvergence: Finite element solutions are, on some meshes and for
// polynomial degrees $k\ge 2$, particularly accurate at the node points as
// well as at Gauss-Lobatto points, much more accurate than at randomly
// chosen points. (See
// @cite Li2019 and the discussion and references in Section 1.2 for more
// information on this.) In other words, if we are interested in finding
// the largest difference $u(\mathbf x)-u_h(\mathbf x)$, then we ought to
// look at points $\mathbf x$ that are specifically not of this "special"
// kind of points and we should specifically not use
// `QGauss(fe->degree+1)` to define where we evaluate. Rather, we use a
// special quadrature rule that is obtained by iterating the trapezoidal
// rule by the degree of the finite element times two plus one in each space
// direction. Note that the constructor of the QIterated class takes a
// one-dimensional quadrature rule and a number that tells it how often it
// shall repeat this rule in each space direction.
//
// Using this special quadrature rule, we can then try to find the maximal
// error on each cell. Finally, we compute the global L infinity error
Expand Down

0 comments on commit d666c1e

Please sign in to comment.