I've inherited a finite volume code that does a second-order discretization of flux terms for a set of mixed parabolic-elliptic equations with discontinuous diffusion coefficients. The impression I get is that Discontinuous Galerkin (DG) methods are preferable for this sort of problem; however, since I have some time constraints, and know more about finite volume methods than any type of finite element methods (or DG), for now, I'm forging ahead with finite volume methods. As a disclaimer, I don't know a lot about the finite volume method, either (I've read up to Chapter 8 in LeVeque's Finite Volume Methods for Hyperbolic Problems on my own), so feel free to correct any misconceptions I have here.

Since my colleagues will be interested in unsteady problems, and results will be compared against previous work in more regular geometries that used the method of lines with high order temporal discretizations, I would like to investigate using higher order spatial discretizations to enable the use of higher order time integrators.

Is there a good textbook-like or tutorial-like source that someone can recommend on ENO/WENO methods that covers limiters in more than one dimension? The internal interfaces between materials will create, in essence, transmission boundary conditions that I don't want to handle explicitly in the code. These interfaces will probably cause oscillations that will need to be addressed by a limiter. The best source I've seen is Essentially Non-oscillatory and Weighted Essentially Non-Oscillatory Schemes for Hyperbolic Conservation Laws by C. W. Shu; the book by LeVeque seems to focus mostly on Lax-Wendroff schemes from a wave propagation standpoint (which isn't being used in the code), and the book by Toro seems to focus on higher order schemes in the one-dimensional case.

As a follow-up question: given that the problem is mainly diffusive, is it particularly important to use an strong stability-preserving (SSP) integrator for this type of problem? I know that for hyperbolic problems employing higher-order discretizations, preserving the total variation diminishing property is important, which is why SSP integrators are used. This problem isn't hyperbolic, so the only place where being total variation bounded might actually matter will be any spurious oscillations that arise as a result of the interfaces between materials of different diffusivities.

  • 1
    $\begingroup$ I'm not quite sure what you mean by "ENO/WENO with limiters". ENO (and subsequently WENO) are designed in a way that do not require any flux limiters as typical MUSCL do. Aside from that, I highly recommond the pdf you've linked. If you are looking for a text book, you can check out chapter 3 of "Level Set Method" book by Osher and Fedkiw, but then again Shu's text i smuch more detailed. $\endgroup$
    – mmirzadeh
    Commented Oct 8, 2013 at 2:25
  • $\begingroup$ Thanks for the comment! Being relatively new to finite volume schemes, I'm learning it on the fly. Everything I know is based on the beginning part of LeVeque's treatment and skimming research papers here and there. $\endgroup$ Commented Oct 8, 2013 at 3:13
  • $\begingroup$ @GeoffOxberry There are really three separate questions here: 1) Should I use WENO for parabolic problems; 2) What is a good reference for WENO implementation; 3) Should I use an SSP integrator for parabolic problems. It might be worthwhile to break the question into three. $\endgroup$ Commented Oct 8, 2013 at 3:47

2 Answers 2


The sources you are looking at are all looking at hyperbolic problems. The issues are different for elliptic problems and "limiters" are generally not the preferred tool. I outlined some of the methods and tradeoffs in this answer.

As for time integration, $L$-stability is the important property to prevent bad overshoots for parabolic systems. Integrators that are not $L$-stable (such as Crank-Nicolson) will show spurious oscillations even on smooth problems, so long as you start with a steep initial value.


As Jed says, limiters are not usually an efficient approach for parabolic/elliptic problems. WENO is much more expensive than simple piecewise-polynomial interpolation, so I would first try vanilla interpolation and see if you actually have oscillations. WENO is really designed for situations in which the solution is discontinuous; yours is not.

In case someone interested in hyperbolic PDEs reads this question, I would say that the report you have linked is the most practical introduction to WENO, and better than Shu's more recent review paper in terms of helping one to implement it. Another useful tool for understanding and implementing WENO is Matthew Emmett's PyWENO code, which can generate routines in other languages.

For a multidimensional finite volume implementation, Shu's report suggests doing expensive multidimensional quadratures, but I would not go that route. The first option is to just implement dimension-by-dimension WENO (as if for a finite difference scheme), which will be formally second order but can still give high-order-like resolution. Better still, there is a new technique for recovering full accuracy without multidimensional quadratures, which is forthcoming work by Christiane Helzel. I will add a link here when it appears.

  • $\begingroup$ I will take a look at traditional interpolation schemes. It's not necessarily true that the solution in this case would be continuous, due to the discontinuous diffusion coefficients. In modeling diffusion of a tracer species in two different thermodynamic phases separated by an interface, there may be a jump in concentration across the interface, and the boundary condition at the interface would relate the diffusive fluxes in each phase at the interface. I am modeling a similar scenario, but nontrivial geometry makes it impractical to implement this boundary condition directly. $\endgroup$ Commented Oct 8, 2013 at 6:38
  • 2
    $\begingroup$ @GeoffOxberry If diffusivity is positive (so the equation is not degenerate) then the solution is continuous. It will have a jump in first derivative, however, such that the flux is continuous. Continuous, but not $C^1$ is also the setting for Hamilton-Jacobi equations, for which WENO methods have been used (Shu has recent papers), but those are still hyperbolic. For diffusion, it is very likely that a (nominally) second order method is what you want, and since the source of oscillations (in some methods) is different, you don't want WENO. Mixed FE and related FV methods make sense. $\endgroup$
    – Jed Brown
    Commented Oct 8, 2013 at 12:24
  • $\begingroup$ @JedBrown: Degeneracy is also an issue in my problem; it happens to be more convenient for bookkeeping to implement a no flux boundary condition in some places by simply setting the diffusivity for one species equal to zero because the geometry is complicated, and a solution to the concentration field is needed everywhere in order to write a reasonable formulation for PDE-constrained optimization. (Here, decision variables modify the diffusivity.) $\endgroup$ Commented Oct 8, 2013 at 17:40
  • $\begingroup$ @GeoffOxberry How will you make the forward model well posed if diffusivity can be zero? I assume you are using a formulation so that negative diffusivity cannot exist. In any case, I still recommend against trying to use WENO for this task. Mixed FE is a robust methodology and you can convert to mimetic FV or FD methods after choice of quadrature. $\endgroup$
    – Jed Brown
    Commented Oct 8, 2013 at 18:24
  • $\begingroup$ Yes, negative diffusivity cannot exist. If I knew how to do mixed (or any kind of) FE, I would do it. The forward model should have a unique solution, but continuity with respect to the shape of the zero-diffusivity domain is suspect. Unfortunately, that is the nature of the problem, and I may need to regularize it in some way once I get to the optimization part. $\endgroup$ Commented Oct 8, 2013 at 19: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.