diff --git a/src/cell.h b/src/cell.h index fbdaa928bda51aa76c149df1249d982fbeef64c3..7bc88d0f68246094b08f2462b8d28bc7a8301119 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 05b0739c5555a9843f9a72d13b39a7e7831386fa..5b3d5bc758914f880d02eaf332e978fcb7001874 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 01957065cf5b1d89bb839449ac60b9ec965c2c47..8fa69384c3da71d93e8f3f026464640f4939a648 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 2580ef2a94eabda5a34de9d4e4b48227bc0e5146..b281b85ffc7e7eff29361610679d3b65782f4563 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 70249a679edfe72bda97eddfc918a8526659d995..a002b64991ed9a7555d6ce40953f6f6652f6ed3f 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 77153d0608ef086fe592a261e08dd4c701eb3b13..ea647e2369b5cff784bf1ee85a7a0b757736332f 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 7953b33361ca59e51e6e5ea07dde59db016239b0..04d36ac683f3c925d24150f082fdfff302373db1 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 d1d343240b37f5afd5f41fecacf106b0e85f726f..9175e0858033ca0de60df4440721564c1dacebe1 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 267eca1989a43caa53827695df24aa8c8f81db12..005fb07532aafdfdb98069da9fd5209c84099714 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 31c2bfcb3462b9f91547ebd631f645e190c07143..70bfab6577340cfa89c8e3a0628440ac7254a61f 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 25cc886f4b38456a0431fb6c7d0b7b1864053dd9..78d0b4faf00c126fbd09c64f5a31f9cd23ca0265 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 81e5a674eddc3662e8db567ff7fc12302320320f..aba56e42ebb64016a179fb65e5c15d84e74c2018 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 223078ecb637e64d94e37cdf8c0f60a86bdd5ff7..74c151c97d1c6f883a5c0eb0877cd126b42fbc56 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);