WENO reconstruction of flux involving derivative terms

I have a set of modified compressible Euler equations that I would like to solve using a WENO method. The issue is that the modified flux function involves derivative and filtering terms and I'm not sure how to compute the derivative terms in a consistent manner within the WENO scheme. For simplicity, the key aspects of the problem can be illustrated with the modified 1D Burgers equation

$$u_t + \left( \dfrac{1}{2}u^2+\dfrac{3}{2}\alpha^2\overline{(u_x)^2} \right)_x = 0$$

where the overbar denotes a filtering operation using the Helmholtz filter $\overline{f} = g^\alpha*f$ and

$$g^\alpha(x) = \dfrac{1}{2\alpha}e^{-|x/\alpha|}$$

If $\alpha$ is on the scale of the grid spacing, this PDE produces near discontinuities at the scale of the grid spacing so I would like to use a WENO method for simulations.

My question: given the values of $u$ at the grid points, how should I compute $u_x$ at the grid points so that I can reconstruct the flux function in a WENO fashion since there may be near-discontinuities in $u$.

Alternatively, would it be easier/more sensible to reconstruct $u$ and $u_x$ at half-grid points and then compute the flux function from those reconstructed values? If so, how should I compute $u_x$ at the half grid points?

Caveat: I haven't personally implemented WENO before, so take this with a grain of salt.

Alternatively, would it be easier/more sensible to reconstruct $u$ and $u_x$ at half-grid points and then compute the flux function from those reconstructed values?

I think generally you want to reconstruct $u$ first. The fundamental notion in WENO is to select the best reconstruction of $u$ given a set of nodal values. That reconstruction gives you a $unique$ polynomial. Since that polynomial is unique (and non-oscillatory), you also have a unique value for $u_x$ which is then easily computed directly from that polynomial. It seems to me that if you tried to independently reconstruct both $u$ and $u_x$ from nodal values something would be inconsistent.

• I was thinking the same thing, and I have started implementing this to see for sure. It's obviously simple to compute $u_x$ from the ENO polynomials for $u$. Any insight into whether I would lose an order of accuracy when computing $u_x$ this way (i.e. $u=O(\Delta x^5)$, but $u_x=O(\Delta x^4)$)? – Doug Lipinski Apr 11 '14 at 17:10
• Yes, you would lose that order of accuracy in the derivative, but that's common to almost any scheme that boils down to a Taylor series. – Aurelius Apr 11 '14 at 17:19
• Thanks, I'd like to see if anyone else has useful suggestions before accepting this answer. – Doug Lipinski Apr 11 '14 at 17:30
• Of course. Or you could just email Chi-Wang Shu ;) – Aurelius Apr 11 '14 at 17:33

Here's what I ended up doing for Burger's equation.

At each grid point:

1. Compute the ENO polynomials of the desired order for $u$ and use these to compute $u_x$ at the grid points $x_j$, upwind based on local characteristic speed $u$.
2. Use the appropriate smoothness measures (i.e. those in Jiang and Shu, 2005 [PDF link]) to form the (WENO) weighted approximation of $u_x$
3. Compute the flux function at the grid points using the now known values of $u$ and $u_x$
4. Perform WENO reconstruction of the primitive function for the fluxes at half grid points.

So far, this seems to be working very well.