Essential computational fluid dynamics