EDEM API Contact Model | Override particle velocity
Hello,
Is there any way/workaround to override particle velocity (and set to 0) in custom contact model API?
The idea is that when the two interacting particles (with initial attractive force) reach a certain overlap, they should abruptly stop (i.e. their velocities being instantaneously set to 'zero'), rather than applying decelerating/viscous force?
Simply setting contactResults.normalForce = zeroVector only removes acceleration between the particles, but they continue to move and further overlap with inertia (or last velocity).
Thank you.
Best regards,
MQ
Best Answer
-
Hi,
You've probably realised that you can't set the particle velocity directly as it's part of the protected data. The way I've done this in the past is to apply a force in a particle body force plugin that takes the current particle velocity and applies a counteracting force based on that.
results.force -= {
particle.mass* particle.velocity.getX() / timeStepData.timeStep,
particle.mass* particle.velocity.getY() / timeStepData.timeStep,
particle.mass* particle.velocity.getZ() / timeStepData.timeStep};
Simple, but it worked in my case (see attached). Ignore the random velocity directions, that was something unrelated.
Cheers,Richard
3
Answers
-
Hi,
You've probably realised that you can't set the particle velocity directly as it's part of the protected data. The way I've done this in the past is to apply a force in a particle body force plugin that takes the current particle velocity and applies a counteracting force based on that.
results.force -= {
particle.mass* particle.velocity.getX() / timeStepData.timeStep,
particle.mass* particle.velocity.getY() / timeStepData.timeStep,
particle.mass* particle.velocity.getZ() / timeStepData.timeStep};
Simple, but it worked in my case (see attached). Ignore the random velocity directions, that was something unrelated.
Cheers,Richard
3 -
You could probably achieve this by using a particle body force model in conjunction with the contact model. Set a custom property to mark the particles that require a reset in the contact model and then set to zero with the particle body force. Works quite well.
2