From b94557d1f7fddd71c1a0a6c348c399fa2966a999 Mon Sep 17 00:00:00 2001
From: Chris Maffeo <cmaffeo2@illinois.edu>
Date: Tue, 3 Sep 2024 14:36:13 -0500
Subject: [PATCH] Fix step counter integer overflow when printing rigid body
 trajectory file

---
 src/RigidBodyController.cu | 6 +++---
 src/RigidBodyController.h  | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/RigidBodyController.cu b/src/RigidBodyController.cu
index b7d1165..6643e55 100644
--- a/src/RigidBodyController.cu
+++ b/src/RigidBodyController.cu
@@ -395,7 +395,7 @@ bool RigidBodyController::load_restart_coordinates(const char* filename) {
 		}
 
 		RigidBody& rb = rigidBodyByType[i][j];
-		printf("Assinging positions %d %d %f\n",i,j, (float) strtod(tokenList[2],NULL));
+		printf("Assigning positions %d %d %f\n",i,j, (float) strtod(tokenList[2],NULL));
 		rb.position = Vector3(
 			(float) strtod(tokenList[2],NULL), (float) strtod(tokenList[3],NULL), (float) strtod(tokenList[4],NULL));
 		rb.orientation = Matrix3(
@@ -940,7 +940,7 @@ void RigidBodyForcePair::processGPUForces(BaseGrid* sys) {
 	// printf("torque: %s\n", t.toString().val());
 }
 
-void RigidBodyController::print(int step) {
+void RigidBodyController::print(long int step) {
 	// modeled after outputExtendedData() in Controller.C
     if (conf.numRigidTypes <= 0) return;
 	if ( step >= 0 ) {
@@ -1023,7 +1023,7 @@ void RigidBodyController::printLegend(std::ofstream &file) {
 		 << " velX  velY  velZ"
 		 << " angVelX angVelY angVelZ" << std::endl;
 }
-void RigidBodyController::printData(int step,std::ofstream &file) {
+void RigidBodyController::printData(long int step, std::ofstream &file) {
 	// tell RBs to integrate
 	for (int i = 0; i < rigidBodyByType.size(); i++) {
 		for (int j = 0; j < rigidBodyByType[i].size(); j++) {
diff --git a/src/RigidBodyController.h b/src/RigidBodyController.h
index fa2fa4e..f1cb6e3 100644
--- a/src/RigidBodyController.h
+++ b/src/RigidBodyController.h
@@ -113,7 +113,7 @@ public:
     void update_attached_particle_positions(Vector3* pos_d, Vector3* force_d, float* energy_d, BaseGrid* sys_d, int num, int num_rb_attached_particles, int numReplicas);
         void clearForceAndTorque(); 
         void KineticEnergy();
-        void print(int step);
+        void print(long int step);
         //void printEnergyData(std::fstream &file);
         float getEnergy(float (RigidBody::*get)());
 private:
@@ -123,7 +123,7 @@ private:
 
 	//void print(int step);
 	void printLegend(std::ofstream &file);
-	void printData(int step, std::ofstream &file);
+	void printData(long int step, std::ofstream &file);
 public:
 	RigidBodyType** rbType_d;
 
-- 
GitLab