Following the classical
finite volume method framework, we seek to track a finite set of discrete unknowns, Q^{n}_i = \frac{1}{\Delta x} \int_{x_{i-1/2}} ^ { x_{i+1/2} } q(t^n, x)\, dx where the x_{i-1/2} = x_{\text{low}} + \left( i - 1/2 \right) \Delta x and t^n = n \Delta t form a discrete set of points for the hyperbolic problem: q_t + ( f( q ) )_x = 0, where the indices t and x indicate the derivatives in time and space, respectively. If we integrate the
hyperbolic problem over a control volume [x_{i-1/2}, x_{i+1/2}], we obtain a
method of lines (MOL) formulation for the spatial cell averages: \frac{\partial}{\partial t} Q_i( t ) = -\frac{1}{\Delta x} \left( f( q( t, x_{i+1/2} ) ) - f( q( t, x_{i-1/2} ) ) \right), which is a classical description of the first order, upwinded finite volume method. Exact time integration of the above formula from time t = t^n to time t = t^{n+1} yields the exact update formula: Q^{n+1}_i = Q^n_i - \frac{1}{\Delta x } \int_{ t^n }^{t^{n+1} } \left( f( q( t, x_{i+1/2} ) ) - f( q( t, x_{i-1/2} ) ) \right)\, dt. Godunov's method replaces the time integral of each \int_{t^n}^{t^{n+1} } f( q( t, x_{i-1/2} ) )\, dt with a forward
Euler method which yields a fully discrete update formula for each of the unknowns Q^n_i . That is, we approximate the integrals with \int_{t^n}^{t^{n+1} } f( q( t, x_{i-1/2} ) )\, dt \approx \Delta t f^\downarrow\left( Q^n_{i-1}, Q^n_i \right), where f^\downarrow\left( q_l, q_r \right) is an approximation to the exact solution of the Riemann problem. For consistency, one assumes that f^\downarrow( q_l , q_r ) = f( q_l ) \quad \text{ if } \quad q_l = q_r, and that f^\downarrow is increasing in the first argument, and decreasing in the second argument. For scalar problems where f'( q ) > 0 , one can use the simple
Upwind scheme, which defines f^\downarrow( q_l, q_r ) = f( q_l ) . The full Godunov scheme requires the definition of an approximate, or an exact
Riemann solver, but in its most basic form, is given by: Q^{n+1}_i = Q^n_i - \lambda \left( \hat{f}^n_{i+1/2} - \hat{f}^n_{i-1/2} \right), \quad \lambda = \frac{\Delta t}{\Delta x}, \quad \hat{f}^n_{i-1/2} = f^\downarrow\left( Q^n_{i-1}, Q^n_i \right) ==Linear problem==