How to apply force on a certain area normally and at an angle?

Asked by Hashir Ahmad

I have a rectangular box of particles and I have to apply a certain force on the top on a given area.
I don't know how to do it in the engine loop. This is my code for the geometry:

sp = SpherePack()
pred = pack.inAlignedBox((0,0,0),(3.5,2,2))
sp = pack.randomDensePack(pred, spheresInCell=100, radius=3.5e-2, rRelFuzz=0.5/1.5, returnSpherePack=False)
O.bodies.append(sp)
O.dt=0.0001
O.engines=[

]

Question information

Language:
English Edit question
Status:
Answered
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Jan Stránský (honzik) said :
#1

Hi Hashir,
you have a few options here:
1) create a box and apply force on it
2) apply "distributed force" on individual particles
3) use ServoPIDController
4) for sure something else :-)
The right choice depends on specific purpose, please describe more your expectations if you want a help with choice
cheers
Jan

[1] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.ServoPIDController

Revision history for this message
Hashir Ahmad (hash.ir) said :
#2

Hi Jan

This really helped. I took reference from PIDController.py
How to apply the same force at an angle?

Regards
Hashir

Revision history for this message
Jan Stránský (honzik) said :
#3

with PID Controller, you actually prescribe velocity and force is measured.. have you tried axis parameter [1]?
Jan

[1] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.ServoPIDController.axis

Can you help with this problem?

Provide an answer of your own, or ask Hashir Ahmad for more information if necessary.

To post a message you must log in.