From 878e477127fa22ad86d6e9c2785cfb95e9173fcc Mon Sep 17 00:00:00 2001 From: John Regan <john.a.regan@durham.ac.uk> Date: Mon, 2 May 2016 16:09:56 +0100 Subject: [PATCH] Removing 'ghost' references and replacing where appropriate with 'hierarchy' --- src/cell.h | 4 ++-- src/engine.c | 38 ++++++++++++++++++---------------- src/hydro/Minimal/hydro.h | 2 +- src/hydro/Minimal/hydro_part.h | 6 +++--- src/partition.c | 4 ++-- src/runner.c | 10 ++++----- src/runner.h | 2 +- src/scheduler.c | 4 ++-- src/space.c | 2 +- src/task.c | 2 +- src/task.h | 2 +- src/timers.h | 2 +- tests/testSPHStep.c | 2 +- 13 files changed, 41 insertions(+), 39 deletions(-) diff --git a/src/cell.h b/src/cell.h index fbdaa928bd..7bc88d0f68 100644 --- a/src/cell.h +++ b/src/cell.h @@ -117,8 +117,8 @@ struct cell { struct link *density, *force, *grav; int nr_density, nr_force, nr_grav; - /* The ghost task to link density to interactions. */ - struct task *ghost, *init, *drift, *kick; + /* The hierarchy task to link density to interactions. */ + struct task *hierarchy, *init, *drift, *kick; /* Task receiving data. */ struct task *recv_xv, *recv_rho; diff --git a/src/engine.c b/src/engine.c index 05b0739c55..5b3d5bc758 100644 --- a/src/engine.c +++ b/src/engine.c @@ -95,8 +95,10 @@ struct link *engine_addlink(struct engine *e, struct link *l, struct task *t) { } /** - * @brief Generate the ghosts all the O(Npart) tasks for a hierarchy of cells. + * @brief Generate the hierarchical tasks for a hierarchy of cells - all the O(Npart) tasks. * + * Previously this was called the ghost task but has since been renamed to reflect + * it's new more general usage. * Tasks are only created here. The dependencies will be added later on. * * @param e The #engine. @@ -104,7 +106,7 @@ struct link *engine_addlink(struct engine *e, struct link *l, struct task *t) { * @param super The super #cell. */ -void engine_make_ghost_tasks(struct engine *e, struct cell *c, +void engine_make_hierarchical_tasks(struct engine *e, struct cell *c, struct cell *super) { struct scheduler *s = &e->sched; @@ -135,8 +137,8 @@ void engine_make_ghost_tasks(struct engine *e, struct cell *c, if (c->count > 0) { - /* Generate the ghost task. */ - c->ghost = scheduler_addtask(s, task_type_ghost, task_subtype_none, 0, + /* Generate the hierarchy task i.e. ghost task. */ + c->hierarchy = scheduler_addtask(s, task_type_hierarchy, task_subtype_none, 0, 0, c, NULL, 0); } @@ -157,7 +159,7 @@ void engine_make_ghost_tasks(struct engine *e, struct cell *c, if (c->split) for (int k = 0; k < 8; k++) if (c->progeny[k] != NULL) - engine_make_ghost_tasks(e, c->progeny[k], super); + engine_make_hierarchical_tasks(e, c->progeny[k], super); } /** @@ -615,14 +617,14 @@ void engine_addtasks_send(struct engine *e, struct cell *ci, struct cell *cj) { struct task *t_rho = scheduler_addtask(s, task_type_send, task_subtype_none, 2 * ci->tag + 1, 0, ci, cj, 0); - /* The send_rho task depends on the cell's ghost task. */ - scheduler_addunlock(s, ci->super->ghost, t_rho); + /* The send_rho task depends on the cell's hierarchy task. */ + scheduler_addunlock(s, ci->super->hierarchy, t_rho); /* The send_rho task should unlock the super-cell's kick task. */ scheduler_addunlock(s, t_rho, ci->super->kick); - /* The send_xv task should unlock the super-cell's ghost task. */ - scheduler_addunlock(s, t_xv, ci->super->ghost); + /* The send_xv task should unlock the super-cell's hierarchy task. */ + scheduler_addunlock(s, t_xv, ci->super->hierarchy); } @@ -1220,10 +1222,10 @@ static inline void engine_make_hydro_loops_dependencies(struct scheduler *sched, struct task *force, struct cell *c) { - /* init --> density loop --> ghost --> force loop --> kick */ + /* init --> density loop --> hierarchy (ghost) --> force loop --> kick */ scheduler_addunlock(sched, c->super->init, density); - scheduler_addunlock(sched, density, c->super->ghost); - scheduler_addunlock(sched, c->super->ghost, force); + scheduler_addunlock(sched, density, c->super->hierarchy); + scheduler_addunlock(sched, c->super->hierarchy, force); scheduler_addunlock(sched, force, c->super->kick); } @@ -1452,13 +1454,13 @@ void engine_maketasks(struct engine *e) { depend on the sorts of its progeny. */ engine_count_and_link_tasks(e); - /* Append a ghost task to each cell, and add kick tasks to the + /* Append a hierarchical task to each cell, and add kick tasks to the super cells. */ for (int k = 0; k < nr_cells; k++) - engine_make_ghost_tasks(e, &cells[k], NULL); + engine_make_hierarchical_tasks(e, &cells[k], NULL); /* Run through the tasks and make force tasks for each density task. - Each force task depends on the cell ghosts and unlocks the kick task + Each force task depends on the cell hierarchy tasks and unlocks the kick task of its super-cell. */ engine_make_extra_hydroloop_tasks(e); @@ -1569,7 +1571,7 @@ int engine_marktasks(struct engine *e) { } /* Single-cell task? */ - else if (t->type == task_type_self || t->type == task_type_ghost || + else if (t->type == task_type_self || t->type == task_type_hierarchy || (t->type == task_type_sub && t->cj == NULL)) { /* Set this task's skip. */ @@ -1933,7 +1935,7 @@ void engine_init_particles(struct engine *e) { mask |= 1 << task_type_self; mask |= 1 << task_type_pair; mask |= 1 << task_type_sub; - mask |= 1 << task_type_ghost; + mask |= 1 << task_type_hierarchy; submask |= 1 << task_subtype_density; } @@ -2113,7 +2115,7 @@ void engine_step(struct engine *e) { mask |= 1 << task_type_self; mask |= 1 << task_type_pair; mask |= 1 << task_type_sub; - mask |= 1 << task_type_ghost; + mask |= 1 << task_type_hierarchy; submask |= 1 << task_subtype_density; submask |= 1 << task_subtype_force; diff --git a/src/hydro/Minimal/hydro.h b/src/hydro/Minimal/hydro.h index 01957065cf..8fa69384c3 100644 --- a/src/hydro/Minimal/hydro.h +++ b/src/hydro/Minimal/hydro.h @@ -117,7 +117,7 @@ __attribute__((always_inline)) /** * @brief Prepare a particle for the force calculation. * - * This function is called in the ghost task to convert some quantities coming + * This function is called in the hierarchy task to convert some quantities coming * from the density loop over neighbours into quantities ready to be used in the * force loop over neighbours. Quantities are typically read from the density * sub-structure and written to the force sub-structure. diff --git a/src/hydro/Minimal/hydro_part.h b/src/hydro/Minimal/hydro_part.h index 2580ef2a94..b281b85ffc 100644 --- a/src/hydro/Minimal/hydro_part.h +++ b/src/hydro/Minimal/hydro_part.h @@ -22,7 +22,7 @@ * * This structure contains the particle fields that are not used in the * density or force loops. Quantities should be used in the kick, drift and - * potentially ghost tasks only. + * potentially hierarchical tasks only. */ struct xpart { @@ -76,7 +76,7 @@ struct part { * neighbours. * * Quantities in this sub-structure should only be accessed in the density - * loop over neighbours and the ghost task. + * loop over neighbours and the hierarchy task. */ struct { @@ -91,7 +91,7 @@ struct part { * neighbours. * * Quantities in this sub-structure should only be accessed in the force - * loop over neighbours and the ghost and kick tasks. + * loop over neighbours and the hierarchy and kick tasks. */ struct { diff --git a/src/partition.c b/src/partition.c index 70249a679e..a002b64991 100644 --- a/src/partition.c +++ b/src/partition.c @@ -454,7 +454,7 @@ static void repart_edge_metis(int partweights, int bothweights, int nodeID, /* Skip un-interesting tasks. */ if (t->type != task_type_self && t->type != task_type_pair && - t->type != task_type_sub && t->type != task_type_ghost && + t->type != task_type_sub && t->type != task_type_hierarchy && t->type != task_type_drift && t->type != task_type_kick && t->type != task_type_init) continue; @@ -488,7 +488,7 @@ static void repart_edge_metis(int partweights, int bothweights, int nodeID, int cid = ci - cells; /* Different weights for different tasks. */ - if (t->type == task_type_ghost || t->type == task_type_drift || + if (t->type == task_type_hierarchy || t->type == task_type_drift || t->type == task_type_kick) { /* Particle updates add only to vertex weight. */ if (taskvweights) weights_v[cid] += w; diff --git a/src/runner.c b/src/runner.c index 77153d0608..ea647e2369 100644 --- a/src/runner.c +++ b/src/runner.c @@ -629,7 +629,7 @@ void runner_doinit(struct runner *r, struct cell *c, int timer) { * @param c The cell. */ -void runner_doghost(struct runner *r, struct cell *c) { +void runner_do_cellhierarchy(struct runner *r, struct cell *c) { struct part *p, *parts = c->parts; struct xpart *xp, *xparts = c->xparts; @@ -652,7 +652,7 @@ void runner_doghost(struct runner *r, struct cell *c) { /* Recurse? */ if (c->split) { for (int k = 0; k < 8; k++) - if (c->progeny[k] != NULL) runner_doghost(r, c->progeny[k]); + if (c->progeny[k] != NULL) runner_do_cellhierarchy(r, c->progeny[k]); return; } @@ -774,7 +774,7 @@ void runner_doghost(struct runner *r, struct cell *c) { if (count) message("Smoothing length failed to converge on %i particles.", count); - TIMER_TOC(timer_doghost); + TIMER_TOC(timer_do_cellhierarchy); } /** @@ -1348,8 +1348,8 @@ void *runner_main(void *data) { case task_type_init: runner_doinit(r, ci, 1); break; - case task_type_ghost: - runner_doghost(r, ci); + case task_type_hierarchy: + runner_do_cellhierarchy(r, ci); break; case task_type_drift: runner_dodrift(r, ci, 1); diff --git a/src/runner.h b/src/runner.h index 7953b33361..04d36ac683 100644 --- a/src/runner.h +++ b/src/runner.h @@ -47,7 +47,7 @@ struct runner { }; /* Function prototypes. */ -void runner_doghost(struct runner *r, struct cell *c); +void runner_do_cellhierarchy(struct runner *r, struct cell *c); void runner_dosort(struct runner *r, struct cell *c, int flag, int clock); void runner_dogsort(struct runner *r, struct cell *c, int flag, int clock); void runner_dokick(struct runner *r, struct cell *c, int timer); diff --git a/src/scheduler.c b/src/scheduler.c index d1d343240b..9175e08580 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -916,7 +916,7 @@ void scheduler_reweight(struct scheduler *s) { } else t->weight += 1 * wscale * t->ci->count * t->ci->count; break; - case task_type_ghost: + case task_type_hierarchy: if (t->ci == t->ci->super) t->weight += wscale * t->ci->count; break; case task_type_kick: @@ -1082,7 +1082,7 @@ void scheduler_enqueue(struct scheduler *s, struct task *t) { switch (t->type) { case task_type_self: case task_type_sort: - case task_type_ghost: + case task_type_hierarchy: case task_type_kick: case task_type_drift: case task_type_init: diff --git a/src/space.c b/src/space.c index 267eca1989..005fb07532 100644 --- a/src/space.c +++ b/src/space.c @@ -350,7 +350,7 @@ void space_regrid(struct space *s, double cell_max, int verbose) { s->cells[k].count = 0; s->cells[k].gcount = 0; s->cells[k].init = NULL; - s->cells[k].ghost = NULL; + s->cells[k].hierarchy = NULL; s->cells[k].drift = NULL; s->cells[k].kick = NULL; s->cells[k].super = &s->cells[k]; diff --git a/src/task.c b/src/task.c index 31c2bfcb34..70bfab6577 100644 --- a/src/task.c +++ b/src/task.c @@ -48,7 +48,7 @@ /* Task type names. */ const char *taskID_names[task_type_count] = { "none", "sort", "self", "pair", "sub", - "init", "ghost", "drift", "kick", "send", + "init", "hierarchy", "drift", "kick", "send", "recv", "grav_pp", "grav_mm", "grav_up", "grav_down", "grav_external", "part_sort", "gpart_sort", "split_cell", "rewait"}; diff --git a/src/task.h b/src/task.h index 25cc886f4b..78d0b4faf0 100644 --- a/src/task.h +++ b/src/task.h @@ -39,7 +39,7 @@ enum task_types { task_type_pair, task_type_sub, task_type_init, - task_type_ghost, + task_type_hierarchy, task_type_drift, task_type_kick, task_type_send, diff --git a/src/timers.h b/src/timers.h index 81e5a674ed..aba56e42eb 100644 --- a/src/timers.h +++ b/src/timers.h @@ -45,7 +45,7 @@ enum { timer_dosub_force, timer_dosub_grav, timer_dopair_subset, - timer_doghost, + timer_do_cellhierarchy, timer_dorecv_cell, timer_gettask, timer_qget, diff --git a/tests/testSPHStep.c b/tests/testSPHStep.c index 223078ecb6..74c151c97d 100644 --- a/tests/testSPHStep.c +++ b/tests/testSPHStep.c @@ -141,7 +141,7 @@ int main() { /* Compute density */ runner_doself1_density(&r, ci); - runner_doghost(&r, ci); + runner_do_cellhierarchy(&r, ci); message("h=%f rho=%f N_ngb=%f", p->h, p->rho, p->density.wcount); message("c=%f", p->force.c); -- GitLab