From an historical point of view, shock-capturing methods can be classified into two general categories: namely, classical and modern shock capturing methods, see Yee (1989) [18]. A stable calculation in presence of shock waves requires a certain amount of numerical dissipation, in order to avoid the formation of spurious numerical oscillations, which could limit accuracy and prevent convergence towards steady solutions. In the case of classical shock-capturing methods, numerical dissipation terms are usually linear and the same amount is applied at all grid points. Classical shock-capturing methods only exhibit accurate results in the case of smooth and weak-shock solution, but when strong shock waves are present in the solution, non-linear instabilities and oscillations can arise across discontinuities. Modern shock-capturing methods have, however, a non-linear numerical dissipation, with an automatic feedback mechanism which adjusts the amount of dissipation in any cell of the mesh, in accord to the actual solution. These schemes have proven to be stable and accurate even for problems containing strong shock waves. The schemes proposed by Jameson and Baker (1983) [13], where linear numerical dissipation terms depend on non-linear switch functions, fall in between the classical and modern shock-capturing methods.
Modern shock-capturing methods are generally based on ``upwind-differencies'', in opposition to classical symmetric or central discretizations. Upwind-differencing attempt to discretize hyperbolic partial differential equations by using differencing biased in the direction determined by the sign of the characteristic speeds. On the other hand, symmetric or central schemes do not consider any information about the wave propagation in the discretization.
Historically, the origin of upwind methods may be taken back to the work made by Courant, Isaacson and Reeves [3], who proposed to solve certain equations along the characteristics going back from any point of the grid at the time step to the time step (CIR method). The crucial point of upwind differencing is in the introduction of some knowledge about the physical properties of the flow equations into the discretization. The hope is that taking into account in a more or less direct way the non-linear propagation properties of the waves can prevent the appearence of unwanted numerical effects like oscillations near discontinuities.