A second level of introduction of physical properties was proposed by Godunov (1959) [6]. This method and all its generalisations and extensions are sometimes referred as flux-difference splitting methods or Godunov-type methods. At the expenses of increasing the complexity of the scheme and the computational effort required to perform calculation, the exact approximate local properties of basic solutions to the Euler equations can be directly introduced in the discretization strategy. Rather than attempting to follow characteristics backward in time (like in the CIR method), Godunov suggested solving Riemann problems forward in time. The Godunov's scheme can be defined in three main steps:
The update in Godunov-type schemes is done on the cell-averaged conservative variables. The update requires estimation of numerical fluxes at cell-interfaces and a successive integration in time over a time-step. Hence, the first step of the Godunov scheme approximates the point-values of the solution at each interface by a piecewise-constant reconstruction. The values of the conservative variables at a grid point are considered as a piecewise-constant approximation of the true solution over the cell centered at that grid point. The piecewise-constant approximation defined at this step is a cell-average of the solution, so the spatial error is of the same order of the cell size and the scheme is only first-order accurate in space. Several high-order accurate generalizations of this scheme have been proposed based on high-order polynomial reconstructions of pointwise values from cell-averaged values. Let us indicate in the following this step by the application of the operator to the ensemble of the cell-averaged state-values representing the solution at time . Hence, will represent the high-order accurate polynomial approximation inside any cell of the computational domain at time . This reconstruction produces a discontinuity in the state variables at each interface which is taken as initial condition for a particular initial value problem called Riemann problem, where a one-dimensional conservation law or system of conservation laws like
is considered with an initial solution of the type:
The initial data at time is piecewise-constant and is characterized by the two states and respectively on the left () and on the right of the position , where the discontinuity is located.
In the case of Euler equations this problem has always a solution and the algorithm which solves it is called a Riemann solver, see LeVeque (1990) [14]. Let us formally denote this step by the application of the operator (evolution through a time interval ). The solution of the Riemann problem allows us to introduce in a very direct and natural way a knowledge of the propagation and interactions of nonlinear waves, locally described by the Riemann solver. The constant state used as input to the Riemann solver are chosen to represent the domains of dependence for the cell-interface which is swept out during the time-step by the different families of characteristic curves of the Euler equations. The information contained in these domains of dependence is given by the piecewise-polynomial approximation describing the flow distribution inside any cell. The solution can be built as a superposition of the elementary waves locally satisfying the conservation equations, and this estimate gives the cell-interface fluxes, or the numerical fluxes can be directly given by some appropriate linearisation of the Riemann problem. The Riemann solver computes the non-linear interaction of two constant states of the fluid, and which non-linear waves emerge from this interaction providing the numerical discretization with a naturally upwind and non-linear character. Finally, the solution at time is averaged in space to yields the averaged-state variable . We will represent this average by the application of a cell-average operator where is the cell size.