Computational Hydraulics: An Introduction