From c707ab6b1792f19f8d62d42b1c29b6dfe17f9d15 Mon Sep 17 00:00:00 2001 From: Matthieu Schaller <matthieu.schaller@durham.ac.uk> Date: Wed, 22 Feb 2017 13:31:43 +0100 Subject: [PATCH] Properties of the self-gravity scheme are now read from the YAML file. They are printed to stdout and to snapshots. --- examples/main.c | 15 +++++++++------ src/engine.c | 2 +- src/parallel_io.c | 12 ++++++------ src/serial_io.c | 8 ++++---- src/single_io.c | 10 +++++----- 5 files changed, 25 insertions(+), 22 deletions(-) diff --git a/examples/main.c b/examples/main.c index f4e6520c80..fb67c1cbc9 100644 --- a/examples/main.c +++ b/examples/main.c @@ -333,10 +333,10 @@ int main(int argc, char *argv[]) { MPI_Bcast(params, sizeof(struct swift_params), MPI_BYTE, 0, MPI_COMM_WORLD); #endif - /* Prepare the domain decomposition scheme */ - enum repartition_type reparttype = REPART_NONE; +/* Prepare the domain decomposition scheme */ #ifdef WITH_MPI struct partition initial_partition; + enum repartition_type reparttype; partition_init(&initial_partition, &reparttype, params, nr_nodes); /* Let's report what we did */ @@ -514,9 +514,8 @@ int main(int argc, char *argv[]) { if (myrank == 0) clocks_gettime(&tic); struct engine e; engine_init(&e, &s, params, nr_nodes, myrank, nr_threads, with_aff, - engine_policies, talking, reparttype, &us, &prog_const, - &hydro_properties, &gravity_properties, &potential, &cooling_func, - &sourceterms); + engine_policies, talking, &us, &prog_const, &hydro_properties, + &gravity_properties, &potential, &cooling_func, &sourceterms); if (myrank == 0) { clocks_gettime(&toc); message("engine_init took %.3f %s.", clocks_diff(&tic, &toc), @@ -590,6 +589,11 @@ int main(int argc, char *argv[]) { /* Main simulation loop */ for (int j = 0; !engine_is_done(&e) && e.step != nsteps; j++) { +/* Repartition the space amongst the nodes? */ +#ifdef WITH_MPI + if (j % 100 == 2) e.forcerepart = reparttype; +#endif + /* Reset timers */ timers_reset(timers_mask_all); @@ -691,7 +695,6 @@ int main(int argc, char *argv[]) { #endif /* Write final output. */ - engine_drift_all(&e); engine_dump_snapshot(&e); #ifdef WITH_MPI diff --git a/src/engine.c b/src/engine.c index 230cfd2163..0b887296d6 100644 --- a/src/engine.c +++ b/src/engine.c @@ -3704,7 +3704,7 @@ void engine_init(struct engine *e, struct space *s, /* Print information about the hydro scheme */ if (e->policy & engine_policy_self_gravity) if (e->nodeID == 0) gravity_props_print(e->gravity_properties); - + /* Check we have sensible time bounds */ if (e->timeBegin >= e->timeEnd) error( diff --git a/src/parallel_io.c b/src/parallel_io.c index 99e2a50029..89945b58d9 100644 --- a/src/parallel_io.c +++ b/src/parallel_io.c @@ -751,19 +751,19 @@ void write_output_parallel(struct engine* e, const char* baseName, io_write_code_description(h_file); /* Print the SPH parameters */ - if(e->policy & engine_policy_hydro){ - h_grp = - H5Gcreate(h_file, "/HydroScheme", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + if (e->policy & engine_policy_hydro) { + h_grp = H5Gcreate(h_file, "/HydroScheme", H5P_DEFAULT, H5P_DEFAULT, + H5P_DEFAULT); if (h_grp < 0) error("Error while creating SPH group"); hydro_props_print_snapshot(h_grp, e->hydro_properties); writeSPHflavour(h_grp); H5Gclose(h_grp); } - + /* Print the gravity parameters */ - if(e->policy & engine_policy_self_gravity) { + if (e->policy & engine_policy_self_gravity) { h_grp = H5Gcreate(h_file, "/GravityScheme", H5P_DEFAULT, H5P_DEFAULT, - H5P_DEFAULT); + H5P_DEFAULT); if (h_grp < 0) error("Error while creating gravity group"); gravity_props_print_snapshot(h_grp, e->gravity_properties); H5Gclose(h_grp); diff --git a/src/serial_io.c b/src/serial_io.c index 3c2619d711..52c52ff24c 100644 --- a/src/serial_io.c +++ b/src/serial_io.c @@ -823,9 +823,9 @@ void write_output_serial(struct engine* e, const char* baseName, io_write_code_description(h_file); /* Print the SPH parameters */ - if(e->policy & engine_policy_hydro) { + if (e->policy & engine_policy_hydro) { h_grp = H5Gcreate(h_file, "/HydroScheme", H5P_DEFAULT, H5P_DEFAULT, - H5P_DEFAULT); + H5P_DEFAULT); if (h_grp < 0) error("Error while creating SPH group"); hydro_props_print_snapshot(h_grp, e->hydro_properties); writeSPHflavour(h_grp); @@ -833,9 +833,9 @@ void write_output_serial(struct engine* e, const char* baseName, } /* Print the gravity parameters */ - if(e->policy & engine_policy_self_gravity) { + if (e->policy & engine_policy_self_gravity) { h_grp = H5Gcreate(h_file, "/GravityScheme", H5P_DEFAULT, H5P_DEFAULT, - H5P_DEFAULT); + H5P_DEFAULT); if (h_grp < 0) error("Error while creating gravity group"); gravity_props_print_snapshot(h_grp, e->gravity_properties); H5Gclose(h_grp); diff --git a/src/single_io.c b/src/single_io.c index 567b1d941b..85c1286f7f 100644 --- a/src/single_io.c +++ b/src/single_io.c @@ -673,9 +673,9 @@ void write_output_single(struct engine* e, const char* baseName, io_write_code_description(h_file); /* Print the SPH parameters */ - if(e->policy & engine_policy_hydro) { - h_grp = - H5Gcreate(h_file, "/HydroScheme", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + if (e->policy & engine_policy_hydro) { + h_grp = H5Gcreate(h_file, "/HydroScheme", H5P_DEFAULT, H5P_DEFAULT, + H5P_DEFAULT); if (h_grp < 0) error("Error while creating SPH group"); hydro_props_print_snapshot(h_grp, e->hydro_properties); writeSPHflavour(h_grp); @@ -683,9 +683,9 @@ void write_output_single(struct engine* e, const char* baseName, } /* Print the gravity parameters */ - if(e->policy & engine_policy_self_gravity) { + if (e->policy & engine_policy_self_gravity) { h_grp = H5Gcreate(h_file, "/GravityScheme", H5P_DEFAULT, H5P_DEFAULT, - H5P_DEFAULT); + H5P_DEFAULT); if (h_grp < 0) error("Error while creating gravity group"); gravity_props_print_snapshot(h_grp, e->gravity_properties); H5Gclose(h_grp); -- GitLab