wiki:u/erica/MusclHancock

Version 12 (modified by Erica Kaminski, 11 years ago) ( diff )

Introduction

The Muscl-Hancock scheme is a 2nd order numerical method. The higher the order of accuracy, the more convergent is the scheme. For instance, here is a plot of the Godunov 1st order upwind scheme (aka CIR scheme, 1st order monotone, what I have been using), the Lax Friedrichs scheme (1st order monotone), Lax Wendroff scheme (2nd order, non-monotone), and Warming-Beam (2nd order, non-monotone).

As you can see, the 1st order monotone schemes are more 'diffusive' than the higher order schemes, i.e. they clip extreme values of the solution. By the 1250 time steps, this effect is highly exaggerated:

On the other hand, the higher order schemes are 'dispersive'. That is, they suffer from slight sign errors in the position of the wave, with the numerical solution either lagging behind or ahead of the true solution.

The above plots show that 2nd order schemes largely perform better than 1st order schemes in regions of 'smooth flow'. However, it is well known that these same higher order accurate schemes can produce spurious oscillations near large gradients. This is due to the higher order schemes no longer being monotone (i.e. having strictly non-negative coefficients in their conservation update formula). Here is a plot showing the same 4 schemes listed above, but for a step function initial condition:

Note the ugly, spurious oscillations near the large gradients of the step function. Unfortunately, all monotone schemes (those that do not contain artificial oscillations) are 1st order at best. Thus, the challenge is to reduce these oscillations in regions of discontinuous flow while maximizing accuracy in regions of smooth flow. One such class of schemes are known as 'Total Variation Diminishing' (TVD). These schemes implicitly add artificial viscosity, resulting in smoother flows near large gradients. Such a scheme is the Muscl-Hancock scheme.

Steps in the Muscl Hancock (MH) Scheme

To produce 2nd-order accuracy, an outline of the MH scheme is as follows.

At this point, we are left with a higher order accurate code, but not one that is free of spurious oscillations near large gradients. To circumvent this, we need to add a TVD measure.

Algorithm Outline

Results

Attachments (11)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.