diff --git a/src/engine.c b/src/engine.c index d0668fa3c33f2a17ae112216d3b33d031376277e..9d5ae94f045b8a174bc7b486fbd9788170d81b6e 100644 --- a/src/engine.c +++ b/src/engine.c @@ -2746,6 +2746,9 @@ void engine_link_gravity_tasks(struct engine *e) { /* Get a pointer to the task. */ struct task *t = &sched->tasks[k]; + if(t->type == task_type_none) + continue; + /* Get the cells we act on */ struct cell *ci = t->ci; struct cell *cj = t->cj; diff --git a/src/multipole.h b/src/multipole.h index b9407d7698146520fed8331697fd539df5a0780a..c05aa36890313ea22f725ee272746bdf63f597ea 100644 --- a/src/multipole.h +++ b/src/multipole.h @@ -240,17 +240,17 @@ INLINE static void gravity_drift(struct gravity_tensors *m, double dt) { m->CoM[2] += dz; #ifdef SWIFT_DEBUG_CHECKS - if (m->m_pole.vel[0] > m->m_pole.max_delta_vel[0]) + if (m->m_pole.vel[0] > m->m_pole.max_delta_vel[0] * 1.1) error("Invalid maximal velocity"); - if (m->m_pole.vel[0] < m->m_pole.min_delta_vel[0]) + if (m->m_pole.vel[0] < m->m_pole.min_delta_vel[0] * 1.1) error("Invalid minimal velocity"); - if (m->m_pole.vel[1] > m->m_pole.max_delta_vel[1]) + if (m->m_pole.vel[1] > m->m_pole.max_delta_vel[1] * 1.1) error("Invalid maximal velocity"); - if (m->m_pole.vel[1] < m->m_pole.min_delta_vel[1]) + if (m->m_pole.vel[1] < m->m_pole.min_delta_vel[1] * 1.1) error("Invalid minimal velocity"); - if (m->m_pole.vel[2] > m->m_pole.max_delta_vel[2]) + if (m->m_pole.vel[2] > m->m_pole.max_delta_vel[2] * 1.1) error("Invalid maximal velocity"); - if (m->m_pole.vel[2] < m->m_pole.min_delta_vel[2]) + if (m->m_pole.vel[2] < m->m_pole.min_delta_vel[2] * 1.1) error("Invalid minimal velocity"); #endif diff --git a/src/runner_doiact_grav.h b/src/runner_doiact_grav.h index dcc3265f34e405a1a414085851ce8d30b9cd3d3d..812a6e3850fa66f614326c872511c36ba91b5635 100644 --- a/src/runner_doiact_grav.h +++ b/src/runner_doiact_grav.h @@ -1529,7 +1529,6 @@ static INLINE void runner_do_grav_long_range(struct runner *r, struct cell *ci, /* Flag that contributions will be recieved */ struct gravity_tensors *const multi_i = ci->multipole; - multi_i->pot.interacted = 1; /* Recover the top-level multipole (for distance checks) */ struct gravity_tensors *const multi_top = top->multipole; @@ -1585,6 +1584,9 @@ static INLINE void runner_do_grav_long_range(struct runner *r, struct cell *ci, runner_dopair_grav_mm(r, ci, cj); // runner_dopair_recursive_grav_pm(r, ci, cj); + /* Record that this multipole received a contribution */ + multi_i->pot.interacted = 1; + } /* We are in charge of this pair */ } /* Loop over top-level cells */