For the compressible Euler equations one requires some sort of dissipation mechanism to get stable numerical solutions. Without dissipation you are limited to solving useless and uninteresting problems. For almost any choice of initial data, shocks will automatically form, and dissipation must arise. This is the “regularized” in a singularity of this blog’s title. The original dissipation is the Richtmyer-Von Neumann artificial viscosity.

A few years later (1951-1952) Lax recognized the sensibility of using the conservation form of the equations to compute shocks. This was the “Lax-Friedrich’s” method written as a finite difference scheme, but in fact was a finite volume method (with a sneaky Riemann solver hidden underneath, but no one really realized this for a long time). Lax’s method was first-order accurate and very dissipative (in fact one can show that it is the most dissipative stable method!). It is notable that Lax did his original work in Los Alamos, which is the same place where the Richtmyer-Von Neumann method arose.

Around the same time in Russia, Sergei Godunov was working on his PhD thesis. He was asked to develop a method to demonstrate a real computer that his institute would soon install by solving the Euler equations. Finding methods provided to him unworkable and unstable, he developed something new. This became Godunov’s method, which is distinguished by using a Riemann solver to evolve the solution in time. The Riemann solution was developed in Germany in 1859 as the solution of an idealized initial value problem, the evolution of two semi-infinite discontinuous states. Godunov realized it could be used as for a finite period of time (a time step size) as a semi-analytical portion of a numerical solution.

Things percolated along for a decade or so. Artificial viscosity became the workhorse method across the World at nuclear weapons’ Labs. The basic method developed relatively little save a handful of improvements in the early 50’s in Los Alamos, and extensions to two dimensions (this is almost certainly an overly harsh assessment). Lax worked with Wendroff to introduce a second-order method that improved on Lax-Friedrichs, but gave oscillations too. Lax also sorted through a general theory on the mathematics of hyperbolic conservation laws. This work formed much of the basis for his being awarded the Abel prize. Godunov, on the other hand, received little support and eventually quit working on fluid dynamics, and moved into numerical linear algebra while moving to Siberia in 1969.

Then everything changed. At virtually the same time Godunov gave up the importance of Godunov’s work was rediscovered by two young researchers in the West. In fact it was never lost as noted by the coverage of Godunov’s method in Richtmyer and Morton’s book, “Finite Difference Methods for Initial Value Problems”. He really was ignored in the Soviet Union. First, Jay Boris overcame Godunov’s barrier theorem with flux corrected transport, then by Bram Van Leer who did the same while embracing Godunov’s method as a framework as well. Actually, Boris’ papers don’t mention Godunov, but upon reflection it is clear that he was aware of Godunov’s work and its importance. Finally Kolgan did little appreciated work that also extended Godunov’s work directly, but went largely unnoticed until Van Leer’s recent work to bring his work to the attention of the International community. Unfortunately Kolgan died before his work was discovered or completed. Boris’ work was popular in the (plasma) physics community, while Van Leer’s approach had more traction with astrophysicists and aerospace engineers. With Van Leer’s work, Riemann solvers became an important part of numerical methods and spawned what James Quirk described as a “cottage industry” in the creation of them.

Artificial viscosity kept on advancing at the Labs. Moving to three dimensions and incorporating innovations from other fields such as the limiters that Boris and Van Leer used to overcome Godunov’s barrier theorem. Even more recently a couple of brilliant French researchers (Bruno Depres and Pierre-Henri Maire) have brought Riemann solvers to multidimensional Lagrangian codes, basically allowing Godunov’s method to improve upon the methods evolved from Richtmyer and Von Neumann’s original efforts.

It is largely a matter of philosophy and the same results can be achieved via either approach. Nonetheless, the philosophy for developing a method can greatly influence the method developed and the results achieved. Think about the relative success for finite volume and finite element methods in inventing new approaches for compressible flows. The finite volume philosophy has been far more successful even though finite element aficionados would claim that they can be completely equivalent. The same applies here, philosophy matters.

So what methodology is better? Neither, but I do favor on balance Riemann solvers. Why? Here are 12 reasons:

- Riemann solvers force you analyze the equations deeply; this is a good thing, right? The better your analysis, the better your Riemann solver and the better your method will be.
- Riemann solvers have exact solutions, and a sequence of well-controlled approximations
- Riemann solvers allow one to control the dissipation quite well using your deep knowledge of mathematics and the physics.
- Riemann solvers have a deep level of nonlinearity
- Some of the approximations are really cool. The paper by Harten, Lax and Van Leer (HLL, SIAM Review 1983) is wonderful and the solvers derived from that work have a wonderful form.
- Multi-dimensional approaches are around the corner courtesy of the French work mentioned at the end of the narrative
- They can use results from artificial viscosity to make your Riemann solver better especially in the case of strong shocks (see my Computers & Fluids paper from 1999)
- You can design your level of detail, and dissipation wave-by-wave with enormous flexibility meaning you can ignore details, but in a mindful planned manner.
- The Riemann solver is abstracted from the details of the mesh (they are mesh independent). This is a huge problem for artificial viscosity where most forms have an explicit choice regarding length scales.

10. All first-order monotone schemes can be placed into a single unified framework. Godunov’s method is the least dissipative one, and Lax-Friedrich’s is the most dissipative one.

11. Riemann solvers work well in both physics and engineering settings.

12. Riemann solvers naturally work with the thermodynamics of real materials while artificial viscosity appears to have arbitrary coefficients that can be tuned by uses (not a good thing!). Riemann solver work can provide a clear story about the true non-arbitrary nature of these coefficients (ironically recognized for the first time by another Soviet scientist, Kurapatenko).

Artificial viscosity has advantages too; here is my list of these:

- The nonlinearity of the dissipation for shocks is clear from the get-go, with the quadratic viscosity arising from an analysis of the Riemann solution by Richtmyer. He didn’t recognize this, but it is true.
- The method extends to multiple dimensions sensibly
- They perform well with multiple physical effects
- They have a low computational overhead
- They can use results from Riemann solvers to make themselves better (point 12 above).
- They are robust
- They have a direct analogy to physical dissipation and you have control over the magnitude of dissipation directly through the coefficients.
- The basic concepts can be extended to hyperviscosity, which is a viscosity consistent with a higher-order solver.
- Artificial viscosity was one of the first turbulence models!

In the final analysis you should probably use a combination. My preferred mode of operation is to make the Riemann solver primary and use artificial viscosity to clean up loose ends.

Darnell

said:Nice weblog here! Also your site lots up fast!

What web host are you the use of? Can I get your associate link on your

host? I want my web site loaded up as quickly as yours lol

Bill Rider

said:Its just a free blog with WordPress, really easy