diff --git a/src/parallel_io.c b/src/parallel_io.c index 952720c346199d0cf6a823e814a845dcce59f26f..f19c1448ac4ce557069e3231d79331f0765a1e11 100644 --- a/src/parallel_io.c +++ b/src/parallel_io.c @@ -1215,7 +1215,9 @@ void prepare_file(struct engine* e, const char* baseName, long long N_total[6], with_cosmology); num_fields += star_formation_write_particles(parts, xparts, list + num_fields); - num_fields += fof_write_parts(parts, xparts, list + num_fields); + if (with_fof) { + num_fields += fof_write_parts(parts, xparts, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_parts(parts, xparts, list + num_fields); @@ -1224,7 +1226,9 @@ void prepare_file(struct engine* e, const char* baseName, long long N_total[6], case swift_type_dark_matter: darkmatter_write_particles(gparts, list, &num_fields); - num_fields += fof_write_gparts(gparts, list + num_fields); + if (with_fof) { + num_fields += fof_write_gparts(gparts, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_gparts(e->s->gpart_group_data, list + num_fields); @@ -1236,7 +1240,9 @@ void prepare_file(struct engine* e, const char* baseName, long long N_total[6], num_fields += chemistry_write_sparticles(sparts, list + num_fields); num_fields += tracers_write_sparticles(sparts, list + num_fields, with_cosmology); - num_fields += fof_write_sparts(sparts, list + num_fields); + if (with_fof) { + num_fields += fof_write_sparts(sparts, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_sparts(sparts, list + num_fields); } @@ -1245,7 +1251,9 @@ void prepare_file(struct engine* e, const char* baseName, long long N_total[6], case swift_type_black_hole: black_holes_write_particles(bparts, list, &num_fields, with_cosmology); num_fields += chemistry_write_bparticles(bparts, list + num_fields); - num_fields += fof_write_bparts(bparts, list + num_fields); + if (with_fof) { + num_fields += fof_write_bparts(bparts, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_bparts(bparts, list + num_fields); } @@ -1548,7 +1556,9 @@ void write_output_parallel(struct engine* e, const char* baseName, num_fields += cooling_write_particles( parts, xparts, list + num_fields, e->cooling_func); } - num_fields += fof_write_parts(parts, xparts, list + num_fields); + if (with_fof) { + num_fields += fof_write_parts(parts, xparts, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_parts(parts, xparts, list + num_fields); @@ -1587,8 +1597,10 @@ void write_output_parallel(struct engine* e, const char* baseName, cooling_write_particles(parts_written, xparts_written, list + num_fields, e->cooling_func); } - num_fields += - fof_write_parts(parts_written, xparts_written, list + num_fields); + if (with_fof) { + num_fields += fof_write_parts(parts_written, xparts_written, + list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_parts( parts_written, xparts_written, list + num_fields); @@ -1606,7 +1618,9 @@ void write_output_parallel(struct engine* e, const char* baseName, /* This is a DM-only run without inhibited particles */ Nparticles = Ntot; darkmatter_write_particles(gparts, list, &num_fields); - num_fields += fof_write_gparts(gparts, list + num_fields); + if (with_fof) { + num_fields += fof_write_gparts(gparts, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_gparts(e->s->gpart_group_data, list + num_fields); @@ -1639,7 +1653,9 @@ void write_output_parallel(struct engine* e, const char* baseName, /* Select the fields to write */ darkmatter_write_particles(gparts_written, list, &num_fields); - num_fields += fof_write_gparts(gparts_written, list + num_fields); + if (with_fof) { + num_fields += fof_write_gparts(gparts_written, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_gparts(gpart_group_data_written, list + num_fields); @@ -1656,7 +1672,9 @@ void write_output_parallel(struct engine* e, const char* baseName, num_fields += chemistry_write_sparticles(sparts, list + num_fields); num_fields += tracers_write_sparticles(sparts, list + num_fields, with_cosmology); - num_fields += fof_write_sparts(sparts, list + num_fields); + if (with_fof) { + num_fields += fof_write_sparts(sparts, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_sparts(sparts, list + num_fields); } @@ -1681,7 +1699,9 @@ void write_output_parallel(struct engine* e, const char* baseName, num_fields += chemistry_write_sparticles(sparts, list + num_fields); num_fields += tracers_write_sparticles(sparts, list + num_fields, with_cosmology); - num_fields += fof_write_sparts(sparts_written, list + num_fields); + if (with_fof) { + num_fields += fof_write_sparts(sparts_written, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_sparts(sparts_written, list + num_fields); @@ -1697,7 +1717,9 @@ void write_output_parallel(struct engine* e, const char* baseName, black_holes_write_particles(bparts, list, &num_fields, with_cosmology); num_fields += chemistry_write_bparticles(bparts, list + num_fields); - num_fields += fof_write_bparts(bparts, list + num_fields); + if (with_fof) { + num_fields += fof_write_bparts(bparts, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_bparts(bparts, list + num_fields); } @@ -1720,7 +1742,9 @@ void write_output_parallel(struct engine* e, const char* baseName, black_holes_write_particles(bparts_written, list, &num_fields, with_cosmology); num_fields += chemistry_write_bparticles(bparts, list + num_fields); - num_fields += fof_write_bparts(bparts_written, list + num_fields); + if (with_fof) { + num_fields += fof_write_bparts(bparts_written, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_bparts(bparts_written, list + num_fields); diff --git a/src/serial_io.c b/src/serial_io.c index 5cc906cfce9638aca89f6d8fc7439b8caa34291b..bdc16c1af0ce6425b394a2cb40134af56b648f0c 100644 --- a/src/serial_io.c +++ b/src/serial_io.c @@ -846,6 +846,7 @@ void write_output_serial(struct engine* e, const char* baseName, const int with_cosmology = e->policy & engine_policy_cosmology; const int with_cooling = e->policy & engine_policy_cooling; const int with_temperature = e->policy & engine_policy_temperature; + const int with_fof = e->policy & engine_policy_fof; #ifdef HAVE_VELOCIRAPTOR const int with_stf = (e->policy & engine_policy_structure_finding) && (e->s->gpart_group_data != NULL); @@ -1181,7 +1182,9 @@ void write_output_serial(struct engine* e, const char* baseName, num_fields += cooling_write_particles( parts, xparts, list + num_fields, e->cooling_func); } - num_fields += fof_write_parts(parts, xparts, list + num_fields); + if (with_fof) { + num_fields += fof_write_parts(parts, xparts, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_parts(parts, xparts, list + num_fields); @@ -1220,8 +1223,10 @@ void write_output_serial(struct engine* e, const char* baseName, cooling_write_particles(parts_written, xparts_written, list + num_fields, e->cooling_func); } - num_fields += fof_write_parts(parts_written, xparts_written, - list + num_fields); + if (with_fof) { + num_fields += fof_write_parts(parts_written, xparts_written, + list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_parts( parts_written, xparts_written, list + num_fields); @@ -1240,7 +1245,10 @@ void write_output_serial(struct engine* e, const char* baseName, /* This is a DM-only run without inhibited particles */ Nparticles = Ntot; darkmatter_write_particles(gparts, list, &num_fields); - num_fields += fof_write_gparts(gparts_written, list + num_fields); + if (with_fof) { + num_fields += + fof_write_gparts(gparts_written, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_gparts(e->s->gpart_group_data, list + num_fields); @@ -1274,7 +1282,10 @@ void write_output_serial(struct engine* e, const char* baseName, /* Select the fields to write */ darkmatter_write_particles(gparts_written, list, &num_fields); - num_fields += fof_write_gparts(gparts_written, list + num_fields); + if (with_fof) { + num_fields += + fof_write_gparts(gparts_written, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_gparts( gpart_group_data_written, list + num_fields); @@ -1292,7 +1303,9 @@ void write_output_serial(struct engine* e, const char* baseName, chemistry_write_sparticles(sparts, list + num_fields); num_fields += tracers_write_sparticles(sparts, list + num_fields, with_cosmology); - num_fields += fof_write_sparts(sparts, list + num_fields); + if (with_fof) { + num_fields += fof_write_sparts(sparts, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_sparts(sparts, list + num_fields); @@ -1319,7 +1332,10 @@ void write_output_serial(struct engine* e, const char* baseName, chemistry_write_sparticles(sparts_written, list + num_fields); num_fields += tracers_write_sparticles( sparts_written, list + num_fields, with_cosmology); - num_fields += fof_write_sparts(sparts_written, list + num_fields); + if (with_fof) { + num_fields += + fof_write_sparts(sparts_written, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_sparts(sparts_written, list + num_fields); @@ -1336,7 +1352,9 @@ void write_output_serial(struct engine* e, const char* baseName, with_cosmology); num_fields += chemistry_write_bparticles(bparts, list + num_fields); - num_fields += fof_write_bparts(bparts, list + num_fields); + if (with_fof) { + num_fields += fof_write_bparts(bparts, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_bparts(bparts, list + num_fields); @@ -1361,7 +1379,10 @@ void write_output_serial(struct engine* e, const char* baseName, with_cosmology); num_fields += chemistry_write_bparticles(bparts, list + num_fields); - num_fields += fof_write_bparts(bparts_written, list + num_fields); + if (with_fof) { + num_fields += + fof_write_bparts(bparts_written, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_bparts(bparts_written, list + num_fields); diff --git a/src/single_io.c b/src/single_io.c index 85d40ff7b55719f767db1e4c54374031d2cc8612..947bf258f8f7c696e0bf5a9d339b1c98ab52a172 100644 --- a/src/single_io.c +++ b/src/single_io.c @@ -708,6 +708,7 @@ void write_output_single(struct engine* e, const char* baseName, const int with_cosmology = e->policy & engine_policy_cosmology; const int with_cooling = e->policy & engine_policy_cooling; const int with_temperature = e->policy & engine_policy_temperature; + const int with_fof = e->policy & engine_policy_fof; #ifdef HAVE_VELOCIRAPTOR const int with_stf = (e->policy & engine_policy_structure_finding) && (e->s->gpart_group_data != NULL); @@ -980,7 +981,9 @@ void write_output_single(struct engine* e, const char* baseName, num_fields += cooling_write_particles( parts, xparts, list + num_fields, e->cooling_func); } - num_fields += fof_write_parts(parts, xparts, list + num_fields); + if (with_fof) { + num_fields += fof_write_parts(parts, xparts, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_parts(parts, xparts, list + num_fields); @@ -1019,8 +1022,10 @@ void write_output_single(struct engine* e, const char* baseName, cooling_write_particles(parts_written, xparts_written, list + num_fields, e->cooling_func); } - num_fields += - fof_write_parts(parts_written, xparts_written, list + num_fields); + if (with_fof) { + num_fields += fof_write_parts(parts_written, xparts_written, + list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_parts( parts_written, xparts_written, list + num_fields); @@ -1038,7 +1043,9 @@ void write_output_single(struct engine* e, const char* baseName, /* This is a DM-only run without inhibited particles */ N = Ntot; darkmatter_write_particles(gparts, list, &num_fields); - num_fields += fof_write_gparts(gparts, list + num_fields); + if (with_fof) { + num_fields += fof_write_gparts(gparts, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_gparts(e->s->gpart_group_data, list + num_fields); @@ -1071,7 +1078,9 @@ void write_output_single(struct engine* e, const char* baseName, /* Select the fields to write */ darkmatter_write_particles(gparts_written, list, &num_fields); - num_fields += fof_write_gparts(gparts_written, list + num_fields); + if (with_fof) { + num_fields += fof_write_gparts(gparts_written, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_gparts(gpart_group_data_written, list + num_fields); @@ -1088,7 +1097,9 @@ void write_output_single(struct engine* e, const char* baseName, num_fields += chemistry_write_sparticles(sparts, list + num_fields); num_fields += tracers_write_sparticles(sparts, list + num_fields, with_cosmology); - num_fields += fof_write_sparts(sparts, list + num_fields); + if (with_fof) { + num_fields += fof_write_sparts(sparts, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_sparts(sparts, list + num_fields); } @@ -1114,7 +1125,9 @@ void write_output_single(struct engine* e, const char* baseName, chemistry_write_sparticles(sparts_written, list + num_fields); num_fields += tracers_write_sparticles( sparts_written, list + num_fields, with_cosmology); - num_fields += fof_write_sparts(sparts_written, list + num_fields); + if (with_fof) { + num_fields += fof_write_sparts(sparts_written, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_sparts(sparts_written, list + num_fields); @@ -1130,7 +1143,9 @@ void write_output_single(struct engine* e, const char* baseName, black_holes_write_particles(bparts, list, &num_fields, with_cosmology); num_fields += chemistry_write_bparticles(bparts, list + num_fields); - num_fields += fof_write_bparts(bparts, list + num_fields); + if (with_fof) { + num_fields += fof_write_bparts(bparts, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_bparts(bparts, list + num_fields); } @@ -1154,7 +1169,9 @@ void write_output_single(struct engine* e, const char* baseName, with_cosmology); num_fields += chemistry_write_bparticles(bparts_written, list + num_fields); - num_fields += fof_write_bparts(bparts_written, list + num_fields); + if (with_fof) { + num_fields += fof_write_bparts(bparts_written, list + num_fields); + } if (with_stf) { num_fields += velociraptor_write_bparts(bparts_written, list + num_fields);