diff --git a/src/engine.c b/src/engine.c index f74ebba0ed4e56250af0af484b39c18398c4eee8..1526718b031415961ce78e8e25a4da5a17ce1b95 100644 --- a/src/engine.c +++ b/src/engine.c @@ -209,7 +209,17 @@ void engine_make_hierarchical_tasks_common(struct engine *e, struct cell *c) { c->end_force = scheduler_addtask(s, task_type_end_force, task_subtype_none, 0, 0, c, NULL); - if (!is_with_cooling) scheduler_addunlock(s, c->end_force, c->kick2); + if (is_with_cooling) { + + c->cooling = scheduler_addtask(s, task_type_cooling, task_subtype_none, + 0, 0, c, NULL); + + scheduler_addunlock(s, c->end_force, c->cooling); + scheduler_addunlock(s, c->cooling, c->kick2); + + } else { + scheduler_addunlock(s, c->end_force, c->kick2); + } scheduler_addunlock(s, c->kick2, c->timestep); scheduler_addunlock(s, c->timestep, c->kick1); } @@ -239,7 +249,6 @@ void engine_make_hierarchical_tasks_common(struct engine *e, struct cell *c) { void engine_make_hierarchical_tasks_hydro(struct engine *e, struct cell *c) { struct scheduler *s = &e->sched; - const int is_with_cooling = (e->policy & engine_policy_cooling); const int is_with_sourceterms = (e->policy & engine_policy_sourceterms); /* Are we in a super-cell ? */ @@ -271,15 +280,6 @@ void engine_make_hierarchical_tasks_hydro(struct engine *e, struct cell *c) { task_subtype_none, 0, 0, c, NULL); #endif - /* Cooling task */ - if (is_with_cooling) { - c->cooling = scheduler_addtask(s, task_type_cooling, task_subtype_none, - 0, 0, c, NULL); - - scheduler_addunlock(s, c->super->end_force, c->cooling); - scheduler_addunlock(s, c->cooling, c->super->kick2); - } - /* add source terms */ if (is_with_sourceterms) { c->sourceterms = scheduler_addtask(s, task_type_sourceterms,