Tests for the method that invokes Grackle. These tests set up a cooling test without hydrodynamics to run many one-zone models in Grackle, fully sampling the density, temperature, and metallicity parameter space over which the chemistry and cooling/heating tables are valid.
This test compares the summary statistics computed for several grackle fields after a certain period of time to previously archived values.
The simulation timesteps are much larger that the cooling/heating. This makes it more likely that separate processing elements will execute grackle routines at the same time (thus increasing the chances of exposing hypothetical problems related to Grackle & SMP mode).
This test is somewhat fragile given that upgrading Grackle versions could conceivably alter the field values. In the future it would be better to replace this with a test that:
checks out and builds a previous commit of Enzo-E
runs the simulation and saves the exact field values after running the simulations
checks out and builds a newer commit of Enzo-E (while leaving the build of Grackle unchanged)
runs the simulation and confirms that the Grackle related field values are identical to the field values from the earlier simulation.
This test runs Grackle for a fixed number of cycles, and compares the final simulation time to a reference value. Each simulation timestep is set fraction of the minimum magnitude of the cooling/heating timestep.