Where is the tangentialoverlap in API_v3_1
Hi,
I have looked through the CHertzMindlin_v_3_1.cpp, I just saw the use of tangentialoverlap in some functions, but I didn't found where it come from, it isn't in the contact information.
In my understanding, the tangentialoverlap is CSimple3Dvector(0.0,0.0,0.0) at initial, until the sliding, then the tangentialoverlap decreases or increases with tangential velocity?
Thanks
Answers
-
Tangential overlap is a cumulative value calculated over multiple time-steps. This is unlike Normal Overlap which is calculated instantaneously from the particle positions the Tangential Overlap increases with the sliding velocity.
This can get reset to 0 if slippage occurs or increase depending on the friction values and the forces. In the API 2022.2 or earlier it is the following for CPU:
* @param tangentialPhysicalOverlap (INPUT AND RETURN VALUE), The tangential physical overlap.
The contact model is allowed to change the value of the tangential physical overlap.
Or for GPU
__device__ real3 &
getTangentialOverlap ()
Returns the overlap occurring on a tangent between the contacting elements.
However this was a bit misleading as both were able to get and set the value so now in 2022.3 this is replaced with getTangOverlap() or setTangOverlap()
Regards
Stephen
0 -
Stephen Cole_21117 said:
Tangential overlap is a cumulative value calculated over multiple time-steps. This is unlike Normal Overlap which is calculated instantaneously from the particle positions the Tangential Overlap increases with the sliding velocity.
This can get reset to 0 if slippage occurs or increase depending on the friction values and the forces. In the API 2022.2 or earlier it is the following for CPU:
* @param tangentialPhysicalOverlap (INPUT AND RETURN VALUE), The tangential physical overlap.
The contact model is allowed to change the value of the tangential physical overlap.
Or for GPU
__device__ real3 &
getTangentialOverlap ()
Returns the overlap occurring on a tangent between the contacting elements.
However this was a bit misleading as both were able to get and set the value so now in 2022.3 this is replaced with getTangOverlap() or setTangOverlap()
Regards
Stephen
Thanks Stephen,
So it can be understand that tangntialoverlap is a value from EDEM self-defined, but is different from the value like particle velcoity, uses can change the value of tangential overlap.
In the version 2.4, I saw the tangential overlap changes with the tangential velocity as below,
//Tangential overlap.may also be wrong nOverlap_t -= relVel_t * timestep; //the normal velocity is unaffected, but the tangential one might be different //this approximation assumes the particles are spheres. vel1 += angVel1.cross(unitCPVect*(elem1PhysicalRadius - elem1ContactRadius)); if(true == elem2IsSurf) { vel2 += angVel2.cross(-unitCPVect * (elem2PhysicalRadius - elem2ContactRadius)); } relVel = vel1 - vel2; relVel_n = unitCPVect * unitCPVect.dot( relVel); relVel_t = relVel - relVel_n; nOverlap_t += relVel_t * timestep;
but in the version 3.1, I can't see the overlap changes with relvel_t, only can be seen in the variation with slippage, are they the same thing? Or just because some changings in the code of EDEM. The latest version about HM model in the forum is version 3.1
if (ft2 > fn2) { newF_t = F_t * sqrt(fn2 / ft2); tangentialOverlap = newF_t * (-1.0 / tangentialStiffness); //slippage has occurred so the tangential overlap is reduced a bit //at this point we get energy loss from the sliding! F_td = newF_t; }
Best regards
Raheem
0