an O(N log N) N-Body simulation using the Barnes-Hut algorithm