diff --git a/src/ComputeGridGrid.cu b/src/ComputeGridGrid.cu
index 7da368796cd66a0300a246d5407882b252a50a7a..ff2b7a410c42cd6002e6263a72519ed95a379bb4 100644
--- a/src/ComputeGridGrid.cu
+++ b/src/ComputeGridGrid.cu
@@ -76,7 +76,7 @@ __global__
 void computePartGridForce(const Vector3* __restrict__ pos, Vector3* particleForce,
 				const int num, const int* __restrict__ particleIds, 
 				const RigidBodyGrid* __restrict__ u,
-				const Matrix3 basis_u_inv, const Vector3 origin_u,
+				const Matrix3 basis_u_inv, const Vector3 center_u, const Vector3 origin_u,
 				ForceEnergy* __restrict__ retForceTorque, float* __restrict__ energy, bool get_energy, int scheme, BaseGrid* sys_d) {
 
 	extern __shared__ ForceEnergy s[];
@@ -90,9 +90,7 @@ void computePartGridForce(const Vector3* __restrict__ pos, Vector3* particleForc
 	torque[tid] = ForceEnergy(0.f,0.f);
 	if (i < num) {
 		const int id = particleIds[i];
-		//Vector3 p = pos[id] - origin_u;
-		Vector3 p = sys_d->wrapDiff(pos[id]-origin_u); /* TODO: wrap about RB center, not origin */
-		// TODO: wrap to center of u
+		Vector3 p = sys_d->wrapDiff(pos[id]-center_u) + center_u - origin_u
 		const Vector3 u_ijk_float = basis_u_inv.transform( p );
 
                 ForceEnergy fe;
diff --git a/src/ComputeGridGrid.cuh b/src/ComputeGridGrid.cuh
index ee25c89fd90a849b5af29ebdf82a253f7471f573..f2b7baa536c205d4e2987b35769df805ae3f25d2 100644
--- a/src/ComputeGridGrid.cuh
+++ b/src/ComputeGridGrid.cuh
@@ -17,7 +17,7 @@ extern __global__
 void computePartGridForce(const Vector3* __restrict__ pos, Vector3* particleForce,
 				const int num, const int* __restrict__ particleIds,
 				const RigidBodyGrid* __restrict__ u,
-				const Matrix3 basis_u_inv, const Vector3 origin_u,
+				const Matrix3 basis_u_inv, const Vector3 center_u, const Vector3 origin_u,
 				ForceEnergy* __restrict__ retForceTorque, float* energy, bool get_energy, int scheme, BaseGrid* sys_d);
 
 extern __global__
diff --git a/src/RigidBody.cu b/src/RigidBody.cu
index df68abf8a45c5ca340343015e8ea7ed9b34bb59a..92ebcbd2f96dd79a5bb83b48020722917b534c2b 100644
--- a/src/RigidBody.cu
+++ b/src/RigidBody.cu
@@ -184,7 +184,7 @@ void RigidBody::callGridParticleForceKernel(Vector3* pos_d, Vector3* force_d, in
 		computePartGridForce<<< nb, NUMTHREADS, NUMTHREADS*2*sizeof(ForceEnergy), stream >>>(
 			pos_d, force_d, numParticles[i], particles_d[i],
 			t->RBC->grids_d+idx,
-			B, c, forcestorques_d+forcestorques_offset[fto_idx++], energy, get_energy, scheme, sys_d);
+			B, getPosition(), c, forcestorques_d+forcestorques_offset[fto_idx++], energy, get_energy, scheme, sys_d);
 	}
 }