Skip to content
Snippets Groups Projects
Commit 341421c3 authored by Matthieu Schaller's avatar Matthieu Schaller
Browse files

When running with VELOCIraptor, collect the DM particle in group for i/o...

When running with VELOCIraptor, collect the DM particle in group for i/o alongside the regular gpart data.
parent 5726db72
Branches
Tags
2 merge requests!721Velociraptor outputs,!719Velociraptor output strategy
......@@ -1357,10 +1357,12 @@ void io_collect_sparts_to_write(const struct spart* restrict sparts,
* @param Ngparts The total number of #part.
* @param Ngparts_written The total number of #part to write.
*/
void io_collect_gparts_to_write(const struct gpart* restrict gparts,
struct gpart* restrict gparts_written,
const size_t Ngparts,
const size_t Ngparts_written) {
void io_collect_gparts_to_write(
const struct gpart* restrict gparts,
const struct velociraptor_gpart_data* restrict vr_data,
struct gpart* restrict gparts_written,
struct velociraptor_gpart_data* restrict vr_data_written,
const size_t Ngparts, const size_t Ngparts_written, const int with_stf) {
size_t count = 0;
......@@ -1372,6 +1374,8 @@ void io_collect_gparts_to_write(const struct gpart* restrict gparts,
(gparts[i].time_bin != time_bin_not_created) &&
(gparts[i].type == swift_type_dark_matter)) {
if (with_stf) vr_data_written[count] = vr_data[i];
gparts_written[count] = gparts[i];
count++;
}
......@@ -1379,7 +1383,7 @@ void io_collect_gparts_to_write(const struct gpart* restrict gparts,
/* Check that everything is fine */
if (count != Ngparts_written)
error("Collected the wrong number of s-particles (%zu vs. %zu expected)",
error("Collected the wrong number of g-particles (%zu vs. %zu expected)",
count, Ngparts_written);
}
......
......@@ -36,6 +36,7 @@
struct cell;
struct part;
struct gpart;
struct velociraptor_gpart_data;
struct spart;
struct xpart;
struct io_props;
......@@ -113,9 +114,11 @@ void io_collect_sparts_to_write(const struct spart* restrict sparts,
const size_t Nsparts,
const size_t Nsparts_written);
void io_collect_gparts_to_write(const struct gpart* restrict gparts,
const struct velociraptor_gpart_data* vr_data,
struct gpart* restrict gparts_written,
struct velociraptor_gpart_data* vr_data_written,
const size_t Ngparts,
const size_t Ngparts_written);
const size_t Ngparts_written, int with_stf);
void io_prepare_dm_gparts(struct threadpool* tp, struct gpart* const gparts,
size_t Ndm);
void io_duplicate_hydro_gparts(struct threadpool* tp, struct part* const parts,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment