diff --git a/src/cell.c b/src/cell.c index 8c25b17f9996027e383ceeba16ae8451c34b1c7b..427dee32a3a9b43514e66985dbd361363b791e08 100644 --- a/src/cell.c +++ b/src/cell.c @@ -2127,9 +2127,8 @@ void cell_clean(struct cell *c) { * @brief Clear the drift flags on the given cell. */ void cell_clear_drift_flags(struct cell *c, void *data) { - cell_clear_flag(c, cell_flag_do_hydro_drift & cell_flag_do_hydro_sub_drift); - c->grav.do_drift = 0; - c->grav.do_sub_drift = 0; + cell_clear_flag(c, cell_flag_do_hydro_drift & cell_flag_do_hydro_sub_drift & + cell_flag_do_grav_drift & cell_flag_do_grav_sub_drift); c->stars.do_drift = 0; c->stars.do_sub_drift = 0; } @@ -2213,10 +2212,10 @@ void cell_activate_drift_part(struct cell *c, struct scheduler *s) { void cell_activate_drift_gpart(struct cell *c, struct scheduler *s) { /* If this cell is already marked for drift, quit early. */ - if (c->grav.do_drift) return; + if (cell_get_flag(c, cell_flag_do_grav_drift)) return; /* Mark this cell for drifting. */ - c->grav.do_drift = 1; + cell_set_flag(c, cell_flag_do_grav_drift); if (c->grav.drift_out != NULL) scheduler_activate(s, c->grav.drift_out); @@ -2230,9 +2229,9 @@ void cell_activate_drift_gpart(struct cell *c, struct scheduler *s) { scheduler_activate(s, c->grav.drift); } else { for (struct cell *parent = c->parent; - parent != NULL && !parent->grav.do_sub_drift; + parent != NULL && !cell_get_flag(parent, cell_flag_do_grav_sub_drift); parent = parent->parent) { - parent->grav.do_sub_drift = 1; + cell_set_flag(parent, cell_flag_do_grav_sub_drift); if (parent->grav.drift_out) { scheduler_activate(s, parent->grav.drift_out); @@ -4279,7 +4278,7 @@ void cell_drift_gpart(struct cell *c, const struct engine *e, int force) { struct gpart *const gparts = c->grav.parts; /* Drift irrespective of cell flags? */ - force |= c->grav.do_drift; + force |= cell_get_flag(c, cell_flag_do_grav_drift); #ifdef SWIFT_DEBUG_CHECKS /* Check that we only drift local cells. */ @@ -4293,8 +4292,7 @@ void cell_drift_gpart(struct cell *c, const struct engine *e, int force) { if (c->grav.count == 0) { /* Clear the drift flags. */ - c->grav.do_drift = 0; - c->grav.do_sub_drift = 0; + cell_clear_flag(c, cell_flag_do_grav_drift & cell_flag_do_grav_sub_drift); /* Update the time of the last drift */ c->grav.ti_old_part = ti_current; @@ -4305,7 +4303,7 @@ void cell_drift_gpart(struct cell *c, const struct engine *e, int force) { /* Ok, we have some particles somewhere in the hierarchy to drift */ /* Are we not in a leaf ? */ - if (c->split && (force || c->grav.do_sub_drift)) { + if (c->split && (force || cell_get_flag(c, cell_flag_do_grav_sub_drift))) { /* Loop over the progeny and collect their data. */ for (int k = 0; k < 8; k++) { @@ -4379,8 +4377,7 @@ void cell_drift_gpart(struct cell *c, const struct engine *e, int force) { } /* Clear the drift flags. */ - c->grav.do_drift = 0; - c->grav.do_sub_drift = 0; + cell_clear_flag(c, cell_flag_do_grav_drift & cell_flag_do_grav_sub_drift); } /** diff --git a/src/cell.h b/src/cell.h index b31a229dcc89870204c5450377931729fa88dd38..7e2abf253cafb7001022b63befb69951a794b18d 100644 --- a/src/cell.h +++ b/src/cell.h @@ -481,12 +481,6 @@ struct cell { /*! Number of M-M tasks that are associated with this cell. */ short int nr_mm_tasks; - /*! Does this cell need to be drifted (gravity)? */ - char do_drift; - - /*! Do any of this cell's sub-cells need to be drifted (gravity)? */ - char do_sub_drift; - } grav; /*! Stars variables */ diff --git a/src/space.c b/src/space.c index 5dfbab9acddfaf5fa2e2b5a0bd376d1e40391b34..5904208fe54132c89dd7cd99df8bb26a2f1410f7 100644 --- a/src/space.c +++ b/src/space.c @@ -259,7 +259,6 @@ void space_rebuild_recycle_mapper(void *map_data, int num_elements, c->black_holes.parts = NULL; c->stars.do_sub_sort = 0; c->flags = 0; - c->grav.do_sub_drift = 0; c->stars.do_sub_drift = 0; c->black_holes.do_sub_drift = 0; c->hydro.ti_end_min = -1; @@ -3321,7 +3320,6 @@ void space_split_recursive(struct space *s, struct cell *c, cp->hydro.super = NULL; cp->grav.super = NULL; cp->stars.do_sub_sort = 0; - cp->grav.do_sub_drift = 0; cp->flags = 0; cp->stars.do_sub_drift = 0; cp->black_holes.do_sub_drift = 0;