Is there any way in EDEM to move particles in a selected region?
Answers
-
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.
Richard0 -
Richard Wood_20774 said:
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.
RichardHi,
I mean remove them from the simulation, just like I want to remove particles in a domain inside the bulk, like a tunnel.
Raheem
0 -
Raheem Sterling_22160 said:
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
0 -
Richard Wood_20774 said:
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
0 -
Raheem Sterling_22160 said:
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); }
0