Godunov Methods: Theory and Applications