I have a Galerkin solution for a heat equation

$$ u_t = \Delta u + f $$

with Dirichlet conditions $$ u=0, \qquad x \in \partial\Omega $$

The time discretization is done using a BDF scheme. How can I accurately and efficiently compute the heat flux on the boundary $$ \sigma = \frac{\partial u}{\partial n}, \qquad x \in \partial\Omega $$ from the Galerkin solution $u_h$.

  • 1
    $\begingroup$ How accurately do you need it? What kind of elements are you using? Do you need values at the nodes, or will values at the cell-faces do? $\endgroup$ – Bill Barth Apr 23 '13 at 17:23
  • $\begingroup$ I am looking at 1-d and 2-d cases. In 1-d I am using linear elements. In 2-d I am using linear elements on triangles. I would like the flux to be also second order accurate like the solution. I have heard of some post-processing techniques but I cannot find this in any of the textbooks and I dont know what are the papers to refer to. I need the flux at the nodes. $\endgroup$ – cfdlab Apr 24 '13 at 4:33

I don't think you can do it to better than first order if you need the heat flux at the boundary. In the interior, you can use "recovery" methods that approximate the gradient of the solution by averaging from the neighboring cells, but at the boundary you do not have enough neighboring cells. I'm afraid the best you can do is actually integrate the normal derivative of the finite element solution.

That said, when integrated over a sufficiently long part of the boundary (in 2d), the approximation should be fairly good. I wouldn't be surprised if you can get it to 1% accurate with a not unreasonable number of cells.

| cite | improve this answer | |
  • $\begingroup$ I agree, but it looks like he wants a point-wise value for the normal derivative. $\endgroup$ – Bill Barth Apr 24 '13 at 12:01
  • $\begingroup$ That may be well defined in 1d, but in 2d the solution is in $H^1$ and the point value of a derivative is not defined. It also wouldn't be a flux (the heat flux through a point is zero). $\endgroup$ – Wolfgang Bangerth Apr 24 '13 at 12:43
  • $\begingroup$ Yes, it's clearly the normal derivative, but lots of people use "flux" as shorthand for that. Also, we often average to the nodes to get a pointwise value (I've done it frequently with L2 projection). $\endgroup$ – Bill Barth Apr 24 '13 at 15:00
  • $\begingroup$ In 1-d I need heat flux at boundary point. In 2-d I would more appropriately need average flux through a small patch on the boundary. This corresponds to physically measuring the heat flux which would not be a pointwise value since any device would have a small size. If I project grad(uh) onto the same FE space as that of uh (but vector version), will that not yield a higher order approximation ? This would not be very efficient since I only need boundary flux. $\endgroup$ – cfdlab Apr 24 '13 at 15:04
  • $\begingroup$ For point values, it won't be higher order, and it will probably oscillate. For point values, I've generally taken the path of L2 projecting the normal derivative down onto one order smaller piecewise polynomials (e.g. from triquadratic bricks to trilinear bricks), but you may have more trouble doing that with linear tets. However, @WolfgangBangerth is right that if you need actually just need the integrated flux, integrating the normal derivative of the finite element representation over element faces on the patch of cells of interest should work just fine. $\endgroup$ – Bill Barth Apr 24 '13 at 16:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.