From b525c5668ebd29f7369a047ea112bc4711432eb3 Mon Sep 17 00:00:00 2001 From: Matthieu Schaller <schaller@strw.leidenuniv.nl> Date: Thu, 2 Jul 2020 17:37:32 +0200 Subject: [PATCH] Move the time-step task back to the super level --- src/cell.c | 3 ++- src/engine.c | 8 ++++---- src/engine_maketasks.c | 12 ++++++++---- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/cell.c b/src/cell.c index b7c6cd9e33..cbf93a694b 100644 --- a/src/cell.c +++ b/src/cell.c @@ -2680,7 +2680,7 @@ void cell_recursively_activate_kicks(struct cell *c, struct scheduler *s, if (c->kick1 != NULL) { scheduler_activate(s, c->kick1); scheduler_activate(s, c->kick2); - scheduler_activate(s, c->timestep); + // scheduler_activate(s, c->timestep); } else { #ifdef SWIFT_DEBUG_CHECKS @@ -2710,6 +2710,7 @@ void cell_activate_kicks(struct cell *c, struct scheduler *s, scheduler_activate(s, c->kick2_out); scheduler_activate(s, c->timestep_in); scheduler_activate(s, c->timestep_out); + scheduler_activate(s, c->timestep); cell_recursively_activate_kicks(c, s, e); } diff --git a/src/engine.c b/src/engine.c index d2d2d844bc..fe8f1fcff0 100644 --- a/src/engine.c +++ b/src/engine.c @@ -2043,14 +2043,14 @@ void engine_skip_force_and_kick(struct engine *e) { if (t->type == task_type_drift_part || t->type == task_type_drift_gpart || t->type == task_type_drift_spart || t->type == task_type_drift_bpart || t->type == task_type_kick1 || t->type == task_type_kick2 || - t->type == task_type_kick1_in || t->type == task_type_kick2_in || - t->type == task_type_kick1_out || t->type == task_type_kick2_out || + t->type == task_type_kick1_in || t->type == task_type_kick2_in || + t->type == task_type_kick1_out || t->type == task_type_kick2_out || t->type == task_type_timestep || t->type == task_type_timestep_in || - t->type == task_type_timestep_out || + t->type == task_type_timestep_out || t->type == task_type_timestep_limiter || t->type == task_type_timestep_sync || t->type == task_type_end_hydro_force || t->type == task_type_cooling || - t->type == task_type_cooling_in || t->type == task_type_cooling_out || + t->type == task_type_cooling_in || t->type == task_type_cooling_out || t->type == task_type_stars_in || t->type == task_type_stars_out || t->type == task_type_star_formation || t->type == task_type_stars_resort || t->type == task_type_extra_ghost || diff --git a/src/engine_maketasks.c b/src/engine_maketasks.c index 409548bb38..9e0412336d 100644 --- a/src/engine_maketasks.c +++ b/src/engine_maketasks.c @@ -843,10 +843,8 @@ void engine_add_kicks(struct engine *e, struct cell *c, struct task *kick1_in, scheduler_addunlock(s, kick2_in, c->kick2); scheduler_addunlock(s, c->kick2, kick2_out); - c->timestep = scheduler_addtask(s, task_type_timestep, task_subtype_none, 0, - 0, c, NULL); - scheduler_addunlock(s, timestep_in, c->timestep); - scheduler_addunlock(s, c->timestep, timestep_out); + // scheduler_addunlock(s, timestep_in, c->timestep); + // scheduler_addunlock(s, c->timestep, timestep_out); } else { /* Keep recursing */ @@ -921,6 +919,12 @@ void engine_make_hierarchical_tasks_common(struct engine *e, struct cell *c) { scheduler_addtask(s, task_type_timestep_out, task_subtype_none, 0, /*implicit=*/1, c, NULL); + c->timestep = scheduler_addtask(s, task_type_timestep, task_subtype_none, + 0, 0, c, NULL); + + scheduler_addunlock(s, c->timestep_in, c->timestep); + scheduler_addunlock(s, c->timestep, c->timestep_out); + /* Add the real tasks */ engine_add_kicks(e, c, c->kick1_in, c->kick1_out, c->kick2_in, c->kick2_out, c->timestep_in, c->timestep_out); -- GitLab