In many CFD text books, usually there is a dedicated chapter for advection term discretization. Why discretization of such term in advection-dominated problems and near the discontinuities is challenging? I need some mathematical reasoning And how this is linked to the problem of boundedness and numerical diffusion?

  • $\begingroup$ I think the question needs to be more specific and detailed. Discretization of a simple constant co-efficient advection problem is much easier than a variable coefficient problem which in turn is simpler than a pure non-linear problem. Which one are you referring to. $\endgroup$
    – Vikram
    Commented Apr 14, 2019 at 12:04

1 Answer 1


The difficulty is relative to something, in this case it is relative to diffusion dominated problems.

Diffusion dominated aren't "easy" either, they have their own set of problems.

I'll start with some favorable qualities of diffusion problems, and then mention why they are not present for advection problems:

  1. Discretizations are often symmetric and definite. If they aren't symmetric then they still are usually definite. - this enables use of better linear solvers in some cases.

  2. Smoothness of solutions is often guaranteed under very relaxed assumptions on input data (source term, boundary conditions). This isn't always true, but it often is.

  3. Scale separation: it's often possible to separate small-scale behavior from large-scale behavior. This allows preconditioners/solvers like multigrid where different scales of physics are targeted by different levels of the preconditioner.

Now let's look at advection problems:

  1. Discretizations rarely result in symmetric and definite matrix. Can potentially be indefinite.

  2. Much fewer smoothness guarantees. This is problem dependent.

  3. (almost) impossible to numerically separate scales. Stability requires you always resolve the smallest scale, which is often expressed as a relationship between grid spacing and advection speed. This means classic multigrid strategies won't work because the coarse grid will be aliased. In some cases this isn't strictly true because the "fine grid" may be very over-resolved compared to advection speed because of things like discontinuous coefficients, and in those cases multigrid may work, but only if the coarse grid respects the stability conditions.

But in other respects, advection problems can actually be easier than diffusion problems. It really depends on what you want.

time-dependent Advection problems are usually easier to get time-accurate solutions for than diffusion problems, because they often only involve first derivatives and this results in favorable CFL condition (again, depending only on advection speed). You start to lose this advantage when your discretization has variable order of accuracy, though.

If you use implicit time-stepping then the matrix conditioning is often better than a similarly discretized diffusion problem.

Edit: I should point out that I haven't touched on nonlinear problems here. That creates its own set of unique challenges which I'm not qualified to comment on.

  • 1
    $\begingroup$ Great answer! I wonder if you can provide any good references where the problem of scale separation is discussed in more detail for advection problems? $\endgroup$
    – VorKir
    Commented Apr 14, 2019 at 20:34
  • $\begingroup$ I wish I could come up with a great reference for this but I can't think of one particular reference.. what I said mostly came from synthesizing many different kinds of references that I have read at some point during my career. Having said that though I think an excellent book which gives great intuition on scale separation is John P Boyd's "Chebyshev and Fourier Spectral Methods." Specifically the chapters on aliasing and on "matrix solving methods" give good intuition for this problem, in my opinion. $\endgroup$ Commented Apr 16, 2019 at 18:25

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.