The History class currently uses an array of length num_timesteps in its time dimension which will not scale for exceptionally long simulations. This should probably be reworked to use a circular buffer so that new timesteps overwrite old ones and the array does not grow inordinately. The circular buffer will have to be at least as long as the maximum number of timesteps required for a signal to traverse the system, however (r_max / (c * delta_t)).