From 8e1c982d09847bd9f28151e70a09d8fd2a2dce94 Mon Sep 17 00:00:00 2001
From: James Willis <james.s.willis@durham.ac.uk>
Date: Fri, 13 Apr 2018 13:35:49 +0800
Subject: [PATCH] VELOCIraptor init and invoke functions now return 1 or 0
 depending on if an error occurred.

---
 src/velociraptor_interface.c | 4 ++--
 src/velociraptor_interface.h | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/velociraptor_interface.c b/src/velociraptor_interface.c
index 77eb9fa9dc..218beb1976 100644
--- a/src/velociraptor_interface.c
+++ b/src/velociraptor_interface.c
@@ -135,7 +135,7 @@ void velociraptor_init(struct engine *e) {
     message("No. of top-level cells: %d", sim_info.numcells);
     message("Top-level cell locations range: (%e,%e,%e) -> (%e,%e,%e)", sim_info.cellloc[0].loc[0], sim_info.cellloc[0].loc[1], sim_info.cellloc[0].loc[2], sim_info.cellloc[sim_info.numcells - 1].loc[0], sim_info.cellloc[sim_info.numcells - 1].loc[1], sim_info.cellloc[sim_info.numcells - 1].loc[2]);
 
-    InitVelociraptor(configfilename, outputFileName, cosmo_info, unit_info, sim_info);
+    if(!InitVelociraptor(configfilename, outputFileName, cosmo_info, unit_info, sim_info)) error("Exiting. VELOCIraptor initialisation failed.");
 
     /* Free cell locations after VELOCIraptor has copied them. */
     //free(sim_info.cellloc);
@@ -194,7 +194,7 @@ void velociraptor_invoke(struct engine *e) {
              e->time);
     }
 
-    InvokeVelociraptor(nr_gparts, nr_hydro_parts, gparts, cell_node_ids, outputFileName);
+    if(!InvokeVelociraptor(nr_gparts, nr_hydro_parts, gparts, cell_node_ids, outputFileName)) error("Exiting. Call to VELOCIraptor failed.");
     
     /* Reset the pthread affinity mask after VELOCIraptor returns. */
     pthread_setaffinity_np(thread, sizeof(cpu_set_t), engine_entry_affinity());
diff --git a/src/velociraptor_interface.h b/src/velociraptor_interface.h
index 4ae0e713af..cc4002dbdc 100644
--- a/src/velociraptor_interface.h
+++ b/src/velociraptor_interface.h
@@ -68,8 +68,8 @@ struct siminfo {
 };
 
 /* VELOCIraptor interface. */
-void InitVelociraptor(char* config_name, char* output_name, struct cosmoinfo cosmo_info, struct unitinfo unit_info, struct siminfo sim_info);
-void InvokeVelociraptor(const int num_gravity_parts, const int num_hydro_parts, struct gpart *gravity_parts, const int *cell_node_ids, char* output_name);
+int InitVelociraptor(char* config_name, char* output_name, struct cosmoinfo cosmo_info, struct unitinfo unit_info, struct siminfo sim_info);
+int InvokeVelociraptor(const int num_gravity_parts, const int num_hydro_parts, struct gpart *gravity_parts, const int *cell_node_ids, char* output_name);
 
 /* VELOCIraptor wrapper functions. */
 void velociraptor_init(struct engine *e);
-- 
GitLab