diff --git a/src/engine.c b/src/engine.c index 9e8ae1104cbdeef9ded2bc5aa31e377db0c8a709..a61d16c640b7676eb61ccff665881ab3dc418468 100644 --- a/src/engine.c +++ b/src/engine.c @@ -3404,6 +3404,12 @@ void engine_launch(struct engine *e) { /* Sit back and wait for the runners to come home. */ swift_barrier_wait(&e->wait_barrier); + + ///### + const size_t N_tot = e->s->nr_gparts - e->s->nr_inhibited_gparts; + const size_t N_gas = e->s->nr_gparts - e->s->nr_inhibited_gparts; + if(N_tot != N_gas) + error("Incompatible counts of particles!"); if (e->verbose) message("took %.3f %s.", clocks_from_ticks(getticks() - tic), diff --git a/src/single_io.c b/src/single_io.c index 7a7856d29ce35435f750f2f71d66e0269d114261..54bca31f58ef7b3fb6c586a9d49c3ccf7f1ca7ff 100644 --- a/src/single_io.c +++ b/src/single_io.c @@ -728,6 +728,20 @@ void write_output_single(struct engine* e, const char* baseName, const size_t Ndm_written = Ntot_written > 0 ? Ntot_written - Nbaryons_written : 0; + ///### + message("Ntot_written = %zd", Ntot_written); + message("Ngas_written = %zd", Ngas_written); + message("Nstars_written = %zd", Nstars_written); + message("Nblackholes_written = %zd", Nblackholes_written); + message("Nbaryons_written = %zd", Nbaryons_written); + message("Ndm_written = %zd", Ndm_written); + message("e->s->nr_gparts = %lu", e->s->nr_gparts); + message("e->s->nr_inhibited_gparts = %lu", e->s->nr_inhibited_gparts); + message("e->s->nr_extra_gparts = %lu", e->s->nr_extra_gparts); + message("e->s->nr_parts = %lu", e->s->nr_parts); + message("e->s->nr_inhibited_parts = %lu", e->s->nr_inhibited_parts); + message("e->s->nr_extra_parts = %lu", e->s->nr_extra_parts); + /* Format things in a Gadget-friendly array */ long long N_total[swift_type_count] = { (long long)Ngas_written, (long long)Ndm_written, 0, 0, diff --git a/src/space.c b/src/space.c index f7c3b7f77953a87985692f4c1a03cfaf97b93a5e..a19524ed0953afde02122079c16e78d6978f638e 100644 --- a/src/space.c +++ b/src/space.c @@ -1307,7 +1307,7 @@ void space_rebuild(struct space *s, int repartitioned, int verbose) { } } -#ifdef SWIFT_DEBUG_CHECKS +///### #ifdef SWIFT_DEBUG_CHECKS /* Check that all parts are in the correct places. */ size_t check_count_inhibited_part = 0; for (size_t k = 0; k < nr_parts; k++) { @@ -1323,7 +1323,7 @@ void space_rebuild(struct space *s, int repartitioned, int verbose) { } if (check_count_inhibited_part != count_inhibited_parts) error("Counts of inhibited particles do not match!"); -#endif /* SWIFT_DEBUG_CHECKS */ +///### #endif /* SWIFT_DEBUG_CHECKS */ /* Move non-local sparts and inhibited sparts to the end of the list. */ if (!repartitioned && (s->e->nr_nodes > 1 || count_inhibited_sparts > 0)) { @@ -1465,7 +1465,7 @@ void space_rebuild(struct space *s, int repartitioned, int verbose) { } } -#ifdef SWIFT_DEBUG_CHECKS +///### #ifdef SWIFT_DEBUG_CHECKS /* Check that all gparts are in the correct place. */ size_t check_count_inhibited_gpart = 0; for (size_t k = 0; k < nr_gparts; k++) { @@ -1481,7 +1481,7 @@ void space_rebuild(struct space *s, int repartitioned, int verbose) { } if (check_count_inhibited_gpart != count_inhibited_gparts) error("Counts of inhibited g-particles do not match!"); -#endif /* SWIFT_DEBUG_CHECKS */ +///### #endif /* SWIFT_DEBUG_CHECKS */ #ifdef WITH_MPI @@ -1619,7 +1619,7 @@ void space_rebuild(struct space *s, int repartitioned, int verbose) { space_parts_sort(s->parts, s->xparts, h_index, cell_part_counts, s->nr_cells, 0); -#ifdef SWIFT_DEBUG_CHECKS +///### #ifdef SWIFT_DEBUG_CHECKS /* Verify that the part have been sorted correctly. */ for (size_t k = 0; k < nr_parts; k++) { const struct part *p = &s->parts[k]; @@ -1643,7 +1643,7 @@ void space_rebuild(struct space *s, int repartitioned, int verbose) { p->x[2] < c->loc[2] || p->x[2] > c->loc[2] + c->width[2]) error("part not sorted into the right top-level cell!"); } -#endif /* SWIFT_DEBUG_CHECKS */ +///### #endif /* SWIFT_DEBUG_CHECKS */ /* Sort the sparts according to their cells. */ if (nr_sparts > 0) @@ -1794,7 +1794,7 @@ void space_rebuild(struct space *s, int repartitioned, int verbose) { space_gparts_sort(s->gparts, s->parts, s->sparts, s->bparts, g_index, cell_gpart_counts, s->nr_cells); -#ifdef SWIFT_DEBUG_CHECKS +///### #ifdef SWIFT_DEBUG_CHECKS /* Verify that the gpart have been sorted correctly. */ for (size_t k = 0; k < nr_gparts; k++) { const struct gpart *gp = &s->gparts[k]; @@ -1818,7 +1818,7 @@ void space_rebuild(struct space *s, int repartitioned, int verbose) { gp->x[2] < c->loc[2] || gp->x[2] > c->loc[2] + c->width[2]) error("gpart not sorted into the right top-level cell!"); } -#endif /* SWIFT_DEBUG_CHECKS */ +///### #endif /* SWIFT_DEBUG_CHECKS */ /* Extract the cell counts from the sorted indices. Deduct the extra * particles. */