From c66df98929acfcb4cf3a4ebad101be16cc0bad8d Mon Sep 17 00:00:00 2001
From: "Kurt A. O'Hearn" <ohearnku@msu.edu>
Date: Tue, 10 Aug 2021 12:38:00 -0400
Subject: [PATCH] PG-PuReMD: fix compilation issue with MPI code (from SDSC
 hackathon branch merge).

---
 PG-PuReMD/src/cuda/cuda_copy.cu | 12 ++++++------
 PG-PuReMD/src/cuda/cuda_copy.h  |  4 ++--
 PG-PuReMD/src/puremd.c          |  4 ++--
 PG-PuReMD/src/system_props.c    |  6 +++---
 PG-PuReMD/src/system_props.h    |  3 ++-
 5 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/PG-PuReMD/src/cuda/cuda_copy.cu b/PG-PuReMD/src/cuda/cuda_copy.cu
index 7fa7321e..1163b0e9 100644
--- a/PG-PuReMD/src/cuda/cuda_copy.cu
+++ b/PG-PuReMD/src/cuda/cuda_copy.cu
@@ -116,18 +116,18 @@ extern "C" void Cuda_Copy_Atoms_Device_to_Host( reax_system *system, control_par
 
 
 /* Copy simulation data from device to host */
-extern "C" void Cuda_Copy_Simulation_Data_Device_to_Host( control_params *control,
-        simulation_data *host, simulation_data *dev )
+extern "C" void Cuda_Copy_Simulation_Data_Device_to_Host( control_params const * const control,
+        simulation_data * const data, simulation_data * const d_data )
 {
-    sCudaMemcpyAsync( &host->my_en, &dev->my_en, sizeof(energy_data), 
+    sCudaMemcpyAsync( &data->my_en, &d_data->my_en, sizeof(energy_data), 
             cudaMemcpyDeviceToHost, control->streams[0], __FILE__, __LINE__ );
     if ( control->virial == 1 )
     {
-        sCudaMemcpyAsync( &host->kin_press, &dev->kin_press, sizeof(real), 
+        sCudaMemcpyAsync( &data->kin_press, &d_data->kin_press, sizeof(real), 
                 cudaMemcpyDeviceToHost, control->streams[0], __FILE__, __LINE__ );
-        sCudaMemcpyAsync( host->int_press, dev->int_press, sizeof(rvec), 
+        sCudaMemcpyAsync( data->int_press, d_data->int_press, sizeof(rvec), 
                 cudaMemcpyDeviceToHost, control->streams[0], __FILE__, __LINE__ );
-        sCudaMemcpyAsync( host->ext_press, dev->ext_press, sizeof(rvec), 
+        sCudaMemcpyAsync( data->ext_press, d_data->ext_press, sizeof(rvec), 
                 cudaMemcpyDeviceToHost, control->streams[0], __FILE__, __LINE__ );
     }
 
diff --git a/PG-PuReMD/src/cuda/cuda_copy.h b/PG-PuReMD/src/cuda/cuda_copy.h
index ae06efd8..a5c4eb30 100644
--- a/PG-PuReMD/src/cuda/cuda_copy.h
+++ b/PG-PuReMD/src/cuda/cuda_copy.h
@@ -18,8 +18,8 @@ void Cuda_Copy_List_Device_to_Host( control_params *, reax_list *, reax_list *,
 
 void Cuda_Copy_Atoms_Device_to_Host( reax_system *, control_params * );
 
-void Cuda_Copy_Simulation_Data_Device_to_Host( control_params *, simulation_data *,
-        simulation_data * );
+void Cuda_Copy_Simulation_Data_Device_to_Host( control_params const * const,
+        simulation_data * const, simulation_data * const );
 
 void Cuda_Copy_MPI_Data_Host_to_Device( control_params *, mpi_datatypes * );
 
diff --git a/PG-PuReMD/src/puremd.c b/PG-PuReMD/src/puremd.c
index 0cf04241..df5b867f 100644
--- a/PG-PuReMD/src/puremd.c
+++ b/PG-PuReMD/src/puremd.c
@@ -163,7 +163,7 @@ static void Post_Evolve( reax_system * const system, control_params * const cont
             || (out_control->write_steps > 0
                 && data->step % out_control->write_steps == 0) )
     {
-        Compute_Total_Energy( system, data, MPI_COMM_WORLD );
+        Compute_Total_Energy( system, control, data, MPI_COMM_WORLD );
     }
 }
 #endif
@@ -409,7 +409,7 @@ int simulate( const void * const handle )
 
         Compute_Kinetic_Energy( system, data, mpi_data->comm_mesh3D );
 
-        Compute_Total_Energy( system, data, MPI_COMM_WORLD );
+        Compute_Total_Energy( system, control, data, MPI_COMM_WORLD );
 
         Output_Results( system, control, data, lists, out_control, mpi_data );
 
diff --git a/PG-PuReMD/src/system_props.c b/PG-PuReMD/src/system_props.c
index 7cce1b2d..e5cf396b 100644
--- a/PG-PuReMD/src/system_props.c
+++ b/PG-PuReMD/src/system_props.c
@@ -107,8 +107,8 @@ void Compute_Kinetic_Energy( reax_system* system, simulation_data* data,
 }
 
 
-void Compute_Total_Energy( reax_system *system, control_params *control,
-        simulation_data *data, MPI_Comm comm )
+void Compute_Total_Energy( reax_system const * const system,
+        control_params const * const control, simulation_data * const data, MPI_Comm comm )
 {
     int ret;
     real my_en[14], sys_en[14];
@@ -118,7 +118,7 @@ void Compute_Total_Energy( reax_system *system, control_params *control,
 
 #if defined(HAVE_CUDA)
     Cuda_Copy_Simulation_Data_Device_to_Host( control, data,
-            (simulation_data *)data->d_simulation_data );
+            (simulation_data *) data->d_simulation_data );
 #endif
 
     my_en[0] = data->my_en.e_bond;
diff --git a/PG-PuReMD/src/system_props.h b/PG-PuReMD/src/system_props.h
index b7e028b9..97d11a9e 100644
--- a/PG-PuReMD/src/system_props.h
+++ b/PG-PuReMD/src/system_props.h
@@ -33,7 +33,8 @@ void Temperature_Control( control_params*, simulation_data* );
 
 void Compute_Kinetic_Energy( reax_system*, simulation_data*, MPI_Comm );
 
-void Compute_Total_Energy( reax_system*, control_params *, simulation_data*, MPI_Comm );
+void Compute_Total_Energy( reax_system const * const, control_params const * const,
+        simulation_data * const, MPI_Comm );
 
 void Check_Energy( simulation_data* );
 
-- 
GitLab