An introduction to computational fluid mechanics