Fix super pointer
Updated the logic setting the super
pointer and creating the "hierarchical" tasks (i.e. init, kick, ghost, etc.). Changes involve:
- Getting rid of the
g_super
pointer. We have only onesuper
cell per hierarchy. - Set the
super
pointer in a new routine. - Have only one routine to construct the hierarchical task to avoid overwriting things.
- Moved the external gravity task to be a self with a new kind of sub-type.
The last item is necessary for the following reason. If we want to run with only external gravity (no hydro, no normal gravity), which is useful to test this aspect individually, we need to create the tasks. Now, we only create the init/kick tasks for super cells, i.e. cells that have at least one self or pair. So I promoted the external_gravity task to be a self with a new sub_type.
IMO that's more clean now. What do you think ?
Fix #215 (closed).