Computational methods for turbulent, transonic and viscous flows