Question about damping force and damping torque?

Raheem Sterling_22160
Raheem Sterling_22160 Altair Community Member
edited July 2023 in Community Q&A

Hi

(1)In order to reach the quasi-static quickly, I want to introduce the damping force and torque into the contact model, according to the Cbonded.cpp, the F_bond_n_damp was added to the contactResults.normalForce, and rolling friction was added to the contactResults.additionalTorque1 and contactResults.usadditionalTorque1 together, I know the  usadditionalTorque1 can be used for the energy loss, does it mean that any torque I want to used for the energy loss can be added to the usadditionalTorque1 which has no influence on the motion of particle?

(2)In HM model and bondv2 model, the normal direction was calculted by the code as below:

// relative velocity of both surfaces at contact point     CSimple3DVector relVel = element1.velocityAtContactPoint - element2.velocityAtContactPoint;     CSimple3DVector unitCPVect = contact.contactPoint - element1.position;     unitCPVect.normalise();      //I'm going to assume that the physical and contact radius are the same for this model.     CSimple3DVector relVel_n = unitCPVect * unitCPVect.dot(relVel);     CSimple3DVector relVel_t = relVel - relVel_n;

but in my model, the direction of normal bond force was not consistent with "relVel_n", so should I return the normalForce in the direction with my own direction or as the same as the HM or bondv2?

Thanks for help.

Regards!

Tagged:

Best Answer

  • Stephen Cole
    Stephen Cole
    Altair Employee
    edited July 2023 Answer ✓

    Hi Raheem,

    If you want to actually damp the torques I'd add it to additionalTorque1 and additionalTorque2, the usadditionalTorque is more for the post-processing of the energy losses.

     

    For the normal forces it would be unusual for them not to be opposing the velocity direction however you can apply them in any direction.  In the code you describe the unitCPVect is calculated to obtain a normal and tangential direction which has X,Y,Z components in global space.  This then allows the normal force to be applied in the global space but with with normal vector.  For the customisation you can apply the force in any direction.


    Regards

    Stephen 

Answers

  • Stephen Cole
    Stephen Cole
    Altair Employee
    edited July 2023 Answer ✓

    Hi Raheem,

    If you want to actually damp the torques I'd add it to additionalTorque1 and additionalTorque2, the usadditionalTorque is more for the post-processing of the energy losses.

     

    For the normal forces it would be unusual for them not to be opposing the velocity direction however you can apply them in any direction.  In the code you describe the unitCPVect is calculated to obtain a normal and tangential direction which has X,Y,Z components in global space.  This then allows the normal force to be applied in the global space but with with normal vector.  For the customisation you can apply the force in any direction.


    Regards

    Stephen 

  • Raheem Sterling_22160
    Raheem Sterling_22160 Altair Community Member
    edited July 2023

    Hi Raheem,

    If you want to actually damp the torques I'd add it to additionalTorque1 and additionalTorque2, the usadditionalTorque is more for the post-processing of the energy losses.

     

    For the normal forces it would be unusual for them not to be opposing the velocity direction however you can apply them in any direction.  In the code you describe the unitCPVect is calculated to obtain a normal and tangential direction which has X,Y,Z components in global space.  This then allows the normal force to be applied in the global space but with with normal vector.  For the customisation you can apply the force in any direction.


    Regards

    Stephen 

    Thanks Stephen,

    it really helps a lot, by the way, what's the meaning of orientation of sphere particles, I want to know the position of point in the surface of sphere particle at the current timestep, I did it with element1.angvel*timestep in the API, but it will not work if other contact force added, so the safe way is to establish the ralationship between this with orientation.

    Regards!

    Raheem

  • Stephen Cole
    Stephen Cole
    Altair Employee
    edited July 2023

    Thanks Stephen,

    it really helps a lot, by the way, what's the meaning of orientation of sphere particles, I want to know the position of point in the surface of sphere particle at the current timestep, I did it with element1.angvel*timestep in the API, but it will not work if other contact force added, so the safe way is to establish the ralationship between this with orientation.

    Regards!

    Raheem

    Hi Raheem,

    The orientation of the particle is a 3x3 matrix required to rotate the particle from it's current orientation in the simulation to the orientation specified in the Creator > Bulk Material tab, so all the orientations of the particles in the simulation are all relative to the prototype particle in the Creator.


    There is further discussion on orientation here:

    Particle Orientation matrix

    Regards

    Stephen