Is there any way in EDEM to move particles in a selected region?

Raheem Sterling_22160
Raheem Sterling_22160 Altair Community Member
edited November 2022 in Community Q&A

Hi,

As title said, I want to move particles in a selected region like excavation? Is there a method in EDEM to accomplish it?

Raheem

Tagged:

Answers

  • RWood
    RWood
    Altair Employee
    edited November 2022

    Hi,

    Do you mean remove from the simulation or just move them by a force? Either way the approach is essentially the same. In a PBF specify a volume and only apply a force / remove particles within it by checking against the particle x,y,z.

    There's also the dynamic domain if you want to focus on a particular volume of the simulation at a time.

    Richard

  • Raheem Sterling_22160
    Raheem Sterling_22160 Altair Community Member
    edited November 2022

    Hi,

    Do you mean remove from the simulation or just move them by a force? Either way the approach is essentially the same. In a PBF specify a volume and only apply a force / remove particles within it by checking against the particle x,y,z.

    There's also the dynamic domain if you want to focus on a particular volume of the simulation at a time.

    Richard

    Hi,

    I mean remove them from the simulation, just like I want to remove particles in a domain inside the bulk, like a tunnel.

    Raheem

  • RWood
    RWood
    Altair Employee
    edited November 2022

    Hi,

    I mean remove them from the simulation, just like I want to remove particles in a domain inside the bulk, like a tunnel.

    Raheem

    In that case you'd probably be best defining the region by x,y,z limits and then calling the particleManager->markForRemoval( ) function.

    You could also customise a contact model such that when particles touch a specific geometry they are also removed. Both can achieve the same thing, it just depends how complex the region is.

    Richard

  • Raheem Sterling_22160
    Raheem Sterling_22160 Altair Community Member
    edited November 2022

    In that case you'd probably be best defining the region by x,y,z limits and then calling the particleManager->markForRemoval( ) function.

    You could also customise a contact model such that when particles touch a specific geometry they are also removed. Both can achieve the same thing, it just depends how complex the region is.

    Richard

    I have tried with particleManager->markForRemoval( ) function in a new contact model, but it seems that some particle in my region were not disappear as figure shows.Here I only want to remove the particles with Z>0.

    double minX = -60, maxX = 60;     double minY = -60, maxY = 60;     double minZ = 0, maxZ = 60;     if (element1.position.getZ() > minZ) {         m_particleMngr->markForRemoval(element1.ID);     }

    Thanks.

    Raheem

  • Raheem Sterling_22160
    Raheem Sterling_22160 Altair Community Member
    edited November 2022

    I have tried with particleManager->markForRemoval( ) function in a new contact model, but it seems that some particle in my region were not disappear as figure shows.Here I only want to remove the particles with Z>0.

    double minX = -60, maxX = 60;     double minY = -60, maxY = 60;     double minZ = 0, maxZ = 60;     if (element1.position.getZ() > minZ) {         m_particleMngr->markForRemoval(element1.ID);     }

    Thanks.

    Raheem

    I think I found the way to solve, that is in contact model, I should consider element1 and element2 at the same time, when I changed the code as below, it works.

    if (element1.position.getZ() > minZ && element2.position.getZ()) {         m_particleMngr->markForRemoval(element1.ID);         m_particleMngr->markForRemoval(element2.ID);     }