Using `timestep_collect` tasks for void cells instead of doing them in `engine_step` collectively
As the title says, voids now get a task_type_collect
task at the top level. This removes the cell_has_task
void-specific logic. Important points:
- The
void->timestep_collect
is unlocked by thezoom->timestep_collect
to ensure everything has been updated at the zoom top level before the void cell tree is traversed. - The
void->timestep_collect
uses its own bespoke runner function that ignores the super check because we want to go the whole way past the super level to the void leaves (top level zoom cells) and ignores thehmax
s. This is because void cells don't have timestep tasks (and don't need to) and they will never need to know about the smoothing lengths respectively. - This has been tested and runs with debugging checks on perfectly happily. It also doesn't appear to introduce any hold up due to the zoom -> void dependency.