   }
 
   __syncthreads();
-  // use strid of blockDim.x, which is 64
+  // use strid of blockDim.x, which is 32
   // each thread handles one atom rotation
   for(atomIdx = startIdx + threadIdx.x; atomIdx < endIdx; atomIdx += blockDim.x) {
     double3 coor = make_double3(gpu_x[atomIdx], gpu_y[atomIdx], gpu_z[atomIdx]);

  int molCountInBox = moleculeInvolved.size();
  int *gpu_moleculeInvolved;
  // Each block would handle one molecule
  int threadsPerBlock = 64;
  int blocksPerGrid = molCountInBox;

  CUMALLOC((void **) &gpu_moleculeInvolved, molCountInBox * sizeof(int));

  }

  __syncthreads();
  // use strid of blockDim.x, which is 32
  // each thread handles one atom translation
  for(atomIdx = startIdx + threadIdx.x; atomIdx < endIdx; atomIdx += blockDim.x) {
    double3 coor = make_double3(gpu_x[atomIdx], gpu_y[atomIdx], gpu_z[atomIdx]);
