From e48aa70dc05d3e21c684cc8fea8031db75e7be79 Mon Sep 17 00:00:00 2001 From: Matthieu Schaller <matthieu.schaller@durham.ac.uk> Date: Wed, 16 Mar 2016 12:08:40 +0000 Subject: [PATCH] Implemented serial i/o reads --- examples/main.c | 2 +- src/common_io.h | 3 +++ src/serial_io.c | 5 ++++- src/serial_io.h | 3 ++- src/single_io.c | 3 --- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/examples/main.c b/examples/main.c index c88f92a07a..f747b6cb76 100644 --- a/examples/main.c +++ b/examples/main.c @@ -359,7 +359,7 @@ int main(int argc, char *argv[]) { read_ic_parallel(ICfileName, dim, &parts, &Ngas, &periodic, myrank, nr_nodes, MPI_COMM_WORLD, MPI_INFO_NULL); #else - read_ic_serial(ICfileName, dim, &parts, &Ngas, &periodic, myrank, nr_nodes, + read_ic_serial(ICfileName, dim, &parts, &gparts, &Ngas, &Ngpart, &periodic, myrank, nr_nodes, MPI_COMM_WORLD, MPI_INFO_NULL); #endif #else diff --git a/src/common_io.h b/src/common_io.h index 2623a03f9a..426fa6a01e 100644 --- a/src/common_io.h +++ b/src/common_io.h @@ -70,6 +70,9 @@ enum PARTICLE_TYPE { NUM_PARTICLE_TYPES }; +#define FILENAME_BUFFER_SIZE 150 +#define PARTICLE_GROUP_BUFFER_SIZE 20 + hid_t hdf5Type(enum DATA_TYPE type); size_t sizeOfType(enum DATA_TYPE type); diff --git a/src/serial_io.c b/src/serial_io.c index 8068d02db0..0d64db482a 100644 --- a/src/serial_io.c +++ b/src/serial_io.c @@ -390,6 +390,9 @@ void writeArrayBackEnd(hid_t grp, char* fileName, FILE* xmfFile, char* name, /* Import the right hydro definition */ #include "hydro_io.h" +/* Import the right gravity definition */ +#include "gravity_io.h" + /** * @brief Reads an HDF5 initial condition file (GADGET-3 type) @@ -499,7 +502,7 @@ void read_ic_serial(char* fileName, double dim[3], struct part** parts, bzero(*parts, *Ngas * sizeof(struct part)); /* Allocate memory to store all particles */ - Ndm = N[1]; + const size_t Ndm = N[1]; *Ngparts = N[1] + N[0]; if (posix_memalign((void*)gparts, gpart_align, *Ngparts * sizeof(struct gpart)) != 0) error("Error while allocating memory for gravity particles"); diff --git a/src/serial_io.h b/src/serial_io.h index 95f09f5977..6cb48d26db 100644 --- a/src/serial_io.h +++ b/src/serial_io.h @@ -32,7 +32,8 @@ #if defined(HAVE_HDF5) && defined(WITH_MPI) && !defined(HAVE_PARALLEL_HDF5) void read_ic_serial(char* fileName, double dim[3], struct part** parts, - size_t* N, int* periodic, int mpi_rank, int mpi_size, + struct gpart** gparts, size_t* Ngas, size_t* Ngparts, + int* periodic, int mpi_rank, int mpi_size, MPI_Comm comm, MPI_Info info); void write_output_serial(struct engine* e, struct UnitSystem* us, int mpi_rank, diff --git a/src/single_io.c b/src/single_io.c index 32a4b374a7..373d685174 100644 --- a/src/single_io.c +++ b/src/single_io.c @@ -39,9 +39,6 @@ #include "common_io.h" #include "error.h" -#define FILENAME_BUFFER_SIZE 150 -#define PARTICLE_GROUP_BUFFER_SIZE 20 - /*----------------------------------------------------------------------------- * Routines reading an IC file *-----------------------------------------------------------------------------*/ -- GitLab