🎉Community Raffle - Win $25

An exclusive raffle opportunity for active members like you! Complete your profile, answer questions and get your first accepted badge to enter the raffle.
Join and Win

Where is the tangentialoverlap in API_v3_1

User: "Raheem Sterling_22160"
Altair Community Member
Updated by Raheem Sterling_22160

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

Find more posts tagged with

Sort by:
1 - 2 of 21
    User: "Stephen Cole"
    Altair Employee
    Updated by Stephen Cole

    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

    User: "Raheem Sterling_22160"
    Altair Community Member
    OP
    Updated by Raheem Sterling_22160

    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