In addition what Wolfgang said:

1. It would be indeed interesting to
    see whether neglecting z_h really yields
    the same error, the same effectivity indices,
    and/or the same mesh.

2. Going back to your initial questions:
    Inserting z_h is the key when classical
    a posteriori bounds in terms of the mesh size h
    are of interest.

    The final goal is usually to obtain an error estimate
    in terms of the mesh size h in order to
    quantify the order of convergence of your scheme.

    For this reason you need to insert z_h such that

    || z - z_h||

    to apply interpolation estimates that give you
    some h^{a} on the right hand side:

    || z-z_h || = O(h^a)

    with the order a.

3. In practice you have indeed different choices
    how to evaluate J(u) - J(u_h).

    Also some people do not integrate back
    into the strong form and work
    with a weak form of the error estimator, which
    has the advantage that no second-order operators
    and partial integration needs to be applied.

    From this point of view, it may be that neglecting
    z_h could work in practice. But as said above,
    a careful study for some model problems
    would be useful.

Best Thomas W.

Prof. Dr. Thomas Wick
Institut für Angewandte Mathematik (IfAM)
Leibniz Universität Hannover
Welfengarten 1
30167 Hannover, Germany

Tel.:   +49 511 762 3360

On 03/10/2018 11:03 AM, Wolfgang Bangerth wrote:
On 03/06/2018 08:40 AM, 曾元圆 wrote:

Now I understand why we need to rewrite the error formula on a cell as residual times dual weight. But I'm still a little confused with the reason why we must introduce z_h. Just as you mentioned, if we introduce z_h, then z-z_h is a quantity that is only large where the dual solution is rough. But why do we need to care about the accuracy of z here? I think the only thing we need to care about is the value of z on that cell, because z is a quantity that represents how important the residual on that cell is.

No. z tells you how important the *locally generated error is for the global error functional*. (That is because z is the Green's function associated with your error functional.) But you don't have the local error. All you have is the local residual.

My understanding is: now the dual_weight z-z_h does not only represent how important the residual on a certain cell is, but also tells us some information about how good the dual solution on that cell is. But another problem is, does z-z_h still has the same tendency as z?

Almost. Think of it as z-phi_h where you can choose phi_h as you want. For example, on each cell you can think of choosing phi_h so that it cancels the constant and linear term of the Taylor expansion of z. Then z-z_h would contain the quadratic and higher order Taylor terms, i.e. something like z''*(x-x0)^2 where x0 can be chosen as a point on the cell.

If not, how z-z_h can represent the importance of a certan cell as z can? I'm not sure if my understanding is correct. I tried to run the code using only z as dual_weights, and I found the result almost the same as that using z-z_h.

Nice idea to try this out. Do you get "almost the same" overall error estimate, or "almost the same" mesh?

I think all of these are good questions to ask. Although I have worked on this for a long time, I can not actually give you a particularly good answer for all of this. I am sure others who are more versed in the theory of errors, residuals, etc could tell you the precise reason for why it is in fact necessary to subtract z_h. The best I can say is that that's the way I've always seen it done, and while I have a vague idea why that is so (see above), I can't say that I can describe it well enough to explain it.

Finally, I am certainly glad to submit patches to deal.II and make my own contribution. But I didn't fork deal.ii on my github account yet, and this is relatively a small issue, so I will be glad if you can do it for the moment.

OK, I will take care of this then.


The deal.II project is located at
For mailing list/forum options, see
--- You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
For more options, visit

Reply via email to