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); } }