Commit f3cffb3a authored by Matthieu Schaller's avatar Matthieu Schaller
Browse files

Avoid recursion in the tasks if no particle is active.

parent 3a199fe2
......@@ -113,8 +113,12 @@ void runner_do_grav_external(struct runner *r, struct cell *c, int timer) {
const struct external_potential *potential = r->e->external_potential;
const struct phys_const *constants = r->e->physical_constants;
const double time = r->e->time;
TIMER_TIC;
/* Anything to do here? */
if (c->ti_end_min > ti_current) return;
/* Recurse? */
if (c->split) {
for (int k = 0; k < 8; k++)
......@@ -391,6 +395,9 @@ void runner_do_init(struct runner *r, struct cell *c, int timer) {
TIMER_TIC;
/* Anything to do here? */
if (c->ti_end_min > ti_current) return;
/* Recurse? */
if (c->split) {
for (int k = 0; k < 8; k++)
......@@ -443,6 +450,9 @@ void runner_do_extra_ghost(struct runner *r, struct cell *c) {
const int count = c->count;
const int ti_current = r->e->ti_current;
/* Anything to do here? */
if (c->ti_end_min > ti_current) return;
/* Recurse? */
if (c->split) {
for (int k = 0; k < 8; k++)
......@@ -493,6 +503,9 @@ void runner_do_ghost(struct runner *r, struct cell *c) {
TIMER_TIC;
/* Anything to do here? */
if (c->ti_end_min > ti_current) return;
/* Recurse? */
if (c->split) {
for (int k = 0; k < 8; k++)
......@@ -928,15 +941,22 @@ void runner_do_kick(struct runner *r, struct cell *c, int timer) {
struct gpart *restrict gparts = c->gparts;
const double const_G = r->e->physical_constants->const_newton_G;
int updated = 0, g_updated = 0;
int ti_end_min = max_nr_timesteps, ti_end_max = 0;
TIMER_TIC;
TIMER_TIC
/* Anything to do here? */
if (c->ti_end_min > ti_current) {
c->updated = 0;
c->g_updated = 0;
return;
}
#ifdef TASK_VERBOSE
OUT;
#endif
int updated = 0, g_updated = 0;
int ti_end_min = max_nr_timesteps, ti_end_max = 0;
/* No children? */
if (!c->split) {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment