How to calculate particle-particle long-range force in EDEM custom model?

fyw
fyw Altair Community Member
edited June 3 in Community Q&A

Hi,

I want to calculate particle-particle long-range force in EDEM custom model, like particle-particle electric force. How can I achieve that?

Regards

Fang yanwei

2024.03.22

Tagged:

Best Answer

  • Stephen Cole
    Stephen Cole
    Altair Employee
    edited March 24 Answer ✓

    Hi Fang,

    EDEM is really designed for short range forces only, in a particle-particle contact model we can only apply forces to particles in contact.

    There is a 'workaround' for this in that you can set the particle radius and also set the particle contact radius, with the contact radius larger than the physical radius.  In this case the contact model is called when the contact radii overlap and most base models only apply a force when the Physical radii overlap.

    However the larger the contact radius the more contacts are detected per particle per time-step (at a rate of r^3) and consequently this can significantly slow the solver.  

    The particle body force model gives you access to every particle (including it's position) at every time-step so theoretically you can create your own list of particles and determine distance between them without requiring a contact radius and apply a force based on this, however it can also be difficult to code and computationally expensive.

    The contact radii method is usually the best, with the radius set to be the 'cut off' limit at which the forces are no longer applied.

     

    Regards

    Stephen

     

     

     

     

Answers

  • Stephen Cole
    Stephen Cole
    Altair Employee
    edited March 24 Answer ✓

    Hi Fang,

    EDEM is really designed for short range forces only, in a particle-particle contact model we can only apply forces to particles in contact.

    There is a 'workaround' for this in that you can set the particle radius and also set the particle contact radius, with the contact radius larger than the physical radius.  In this case the contact model is called when the contact radii overlap and most base models only apply a force when the Physical radii overlap.

    However the larger the contact radius the more contacts are detected per particle per time-step (at a rate of r^3) and consequently this can significantly slow the solver.  

    The particle body force model gives you access to every particle (including it's position) at every time-step so theoretically you can create your own list of particles and determine distance between them without requiring a contact radius and apply a force based on this, however it can also be difficult to code and computationally expensive.

    The contact radii method is usually the best, with the radius set to be the 'cut off' limit at which the forces are no longer applied.

     

    Regards

    Stephen

     

     

     

     

  • fyw
    fyw Altair Community Member
    edited June 2

    Hi Fang,

    EDEM is really designed for short range forces only, in a particle-particle contact model we can only apply forces to particles in contact.

    There is a 'workaround' for this in that you can set the particle radius and also set the particle contact radius, with the contact radius larger than the physical radius.  In this case the contact model is called when the contact radii overlap and most base models only apply a force when the Physical radii overlap.

    However the larger the contact radius the more contacts are detected per particle per time-step (at a rate of r^3) and consequently this can significantly slow the solver.  

    The particle body force model gives you access to every particle (including it's position) at every time-step so theoretically you can create your own list of particles and determine distance between them without requiring a contact radius and apply a force based on this, however it can also be difficult to code and computationally expensive.

    The contact radii method is usually the best, with the radius set to be the 'cut off' limit at which the forces are no longer applied.

     

    Regards

    Stephen

     

     

     

     

    Hi Stephen,

    I tried to access other particle in particle body force model. But I didn't find the correct way to do it. Should I use this function?

    virtual void     processParticleOfInterest (int threadID, int particleOfInterestId)

    But this function didn't give const NExternalForceTypesV3_4_0::SParticle &particle of another particle.

     

    Regards

    Fang yanwei

  • Stephen Cole
    Stephen Cole
    Altair Employee
    edited June 3

    Hi Stephen,

    I tried to access other particle in particle body force model. But I didn't find the correct way to do it. Should I use this function?

    virtual void     processParticleOfInterest (int threadID, int particleOfInterestId)

    But this function didn't give const NExternalForceTypesV3_4_0::SParticle &particle of another particle.

     

    Regards

    Fang yanwei

    Hi Fang,

    The body force cycles through each particle in the simulation, so it only gives you the details of one particle at a time, however this is run once for every particle every timestep.

    You would have to have a model which takes each particles position at time t s and write this to user defined memory.  Then at t+1 you would have access to the memory including all the positions (at the last time-step), however I think this would be a computationally very expensive approach and quite hard to write an efficient code for.

    Regards

    Stephen