Numerical Methods for Simulating and Understanding the Universe