diff --git a/src/cell.c b/src/cell.c index b4716838c646267ddf6d68f7ade22b0ad35762da..79afff700fb6d0a6aa4edc46461f724ba796a652 100644 --- a/src/cell.c +++ b/src/cell.c @@ -568,3 +568,18 @@ void cell_init_parts(struct cell *c, void *data) { c->t_end_min = 0.; } + +/** + * @brief Cleans the links in a given cell. + * + * @param c Cell to act upon + * @param data Unused parameter + */ +void cell_clean_links(struct cell * c, void * data) { + c->density = NULL; + c->nr_density = 0; + + c->force = NULL; + c->nr_force = 0; +} + diff --git a/src/cell.h b/src/cell.h index 107c41d9cb9d9229f58be9fb176a62f0db829de3..a837e782db8dd3ff4acf418e133a235e77e7a207 100644 --- a/src/cell.h +++ b/src/cell.h @@ -178,5 +178,6 @@ int cell_unpack(struct pcell *pc, struct cell *c, struct space *s); int cell_getsize(struct cell *c); int cell_link(struct cell *c, struct part *parts); void cell_init_parts(struct cell *c, void *data); +void cell_clean_links(struct cell * c, void * data); #endif /* SWIFT_CELL_H */ diff --git a/src/space.c b/src/space.c index 0eb114bf92c1c3f59385918c460189a0b9b0ddd7..0f697b46f96ffe6dcd65acb0c035e04edcdac8ac 100644 --- a/src/space.c +++ b/src/space.c @@ -1237,13 +1237,7 @@ void space_init(struct space *s, double dim[3], struct part *parts, int N, */ void space_link_cleanup(struct space *s) { - void cell_clean_links(struct cell * c, void * data) { - c->density = NULL; - c->nr_density = 0; - - c->force = NULL; - c->nr_force = 0; - } - + /* Recursively apply the cell link cleaning routine */ space_map_cells_pre(s, 1, cell_clean_links, NULL); + }