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