 					 thrust::device_vector<float4> & velMasD,
 					 thrust::device_vector<float4> & posRadRigidD,
 					 thrust::device_vector<float4> & velMassRigidD,
+					 thrust::device_vector<float4> & qD,
 					 thrust::device_vector<float3> & AD1,
 					 thrust::device_vector<float3> & AD2,
 					 thrust::device_vector<float3> & AD3,

		UpdateFluid(posRadD, velMasD, vel_XSPH_D, rhoPresMuD, derivVelRhoD, referenceArray, delT);
		//UpdateBoundary(posRadD, velMasD, rhoPresMuD, derivVelRhoD, referenceArray, delT);
		UpdateRigidBody(posRadD, velMasD,
				posRadRigidD, velMassRigidD, AD1, AD2, AD3, omegaLRF_D,
				derivVelRhoD, rigidIdentifierD, rigidSPH_MeshPos_LRF_D, referenceArray, jD1, jD2, jInvD1, jInvD2, paramsH, delT);
		ApplyBoundary(posRadD, rhoPresMuD, mNSpheres, posRadRigidD, velMassRigidD, numRigidBodies);


	CUT_CHECK_ERROR("Kernel execution failed: UpdateKernelRigid");
}
////--------------------------------------------------------------------------------------------------------------------------------
//##############################################################################################################################################
// the main function, which updates the particles and implements BC
void cudaCollisions(thrust::host_vector<float4> & mPosRad, 
