2
$\begingroup$

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$.

$\endgroup$
2
  • 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, 2013 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, 2013 at 4:33

1 Answer 1

3
$\begingroup$

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.

$\endgroup$
5
  • $\begingroup$ I agree, but it looks like he wants a point-wise value for the normal derivative. $\endgroup$
    – Bill Barth
    Apr 24, 2013 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$ Apr 24, 2013 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, 2013 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, 2013 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, 2013 at 16:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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