 //--------------------------------------------------------------------------------------------------------------------------------
 // collide a particle against all other particles in a given cell
 __device__ void calcOnCartesianShare(Real3& v_share, Real4& rp_share,
-		int3 gridPos, Real4 gridNodePos4, Real3* sortedPosRad,
+		int3 gridPos, Real3 gridNodePos3, Real3* sortedPosRad,
 		Real3* sortedVelMas, Real4* sortedRhoPreMu, uint* cellStart,
 		uint* cellEnd) {
 

			Real3 posRadB = FETCH(sortedPosRad, j);
			Real3 velMasB = FETCH(sortedVelMas, j);
			Real4 rhoPreMuB = FETCH(sortedRhoPreMu, j);
			Real3 dist3 = Distance(gridNodePos4, posRadB);
			Real d = length(dist3);
			Real mult = paramsD.markerMass / rhoPreMuB.x * W3(d);
			v_share += mult * velMasB;  // optimize it ?$

			for (int x = -1; x <= 1; x++) {
				int3 neighbourPos = gridPos + mI3(x, y, z);
				calcOnCartesianShare(vel_share, rho_pres_share, neighbourPos,
				gridNodePos3, sortedPosRad, sortedVelMas, sortedRhoPreMu,
						cellStart, cellEnd);
			}
		}
