 		//******************** rigid body some initialization
 	thrust::device_vector<int> rigidIdentifierD(0);
 
-	real_ rigid_SPH_mass;
+	real_ rigid_SPH_mass;																					//____________________________> typical mass, save to constant memory
 	int numRigid_SphMarkers = 0;
 	int startRigidMarkers = (referenceArray[1]).y;
 	if (referenceArray.size() > 2) {

	cudaMemcpyToSymbolAsync(numRigid_SphMarkersD, &numRigid_SphMarkers, sizeof(numRigid_SphMarkers)); //can be defined outside of the kernel, and only once

	printf("a7 yoho\n");
	//******************************************************************************
	//******************** flex body some initialization

	int numFlBcRigid = 2 + numRigidBodies;
	int numFlexBodies = ANCF_Beam_Length.size();
//	int totalNumberOfFlexNodes = ANCF_ReferenceArrayNodesOnBeams[ANCF_ReferenceArrayNodesOnBeams.size() - 1].y;
//	int numFlex_SphMarkers = referenceArray[numFlBcRigid + numFlexBodies - 1].y - referenceArray[numFlBcRigid].x;


	int startFlexMarkers = (referenceArray[numFlBcRigid-1]).y;
	cudaMemcpyToSymbolAsync(startFlexMarkersD, &startFlexMarkers, sizeof(startFlexMarkers)); //can be defined outside of the kernel, and only once
	numFlex_SphMarkers = referenceArray[numFlBcRigid + numFlexBodies - 1].y - startRigidMarkers;
	cudaMemcpyToSymbolAsync(numFlex_SphMarkersD, &numFlex_SphMarkers, sizeof(numFlex_SphMarkers)); //can be defined outside of the kernel, and only once
	//******************************************************************************


	thrust::device_vector<real3> rigidSPH_MeshPos_LRF_D(numRigid_SphMarkers);
	uint nBlocks_numRigid_SphMarkers;
	uint nThreads_SphMarkers;

//--------------------------------------------------------------------------------------------------------------------------------
__global__ void CalcTorqueShare(real3* torqueParticlesD, real4* derivVelRhoD, real3* posRadD, int* rigidIdentifierD, real3* posRigidD) {
	uint index = blockIdx.x * blockDim.x + threadIdx.x;
	uint rigidMarkerIndex = index + startRigidMarkersD;
	if (index >= numRigid_SphMarkersD) {
		return;
	}
