This book details a systematic characteristics-based finite element procedure to investigate incompressible, free-surface and compressible flows. Several sections derive the Fluid Dynamics equations from first thermo-mechanics principles and develop this multi-dimensional and infinite-directional upstream procedure by combining a finite element discretization with an implicit non-linearly stable Runge-Kutta time integration for the numerical solution of the Euler and Navier Stokes equations.