← Back to team overview

yade-users team mailing list archive

Re: About adding a surcharge (either box or force) during simulation

 

Hi, Vaclav,
 
Sorry, I didn't know that, I thought the threads are just identified by their title:-|.
Thanks for your reply, since I need to do a lot of "dynamic" things like add or remove an object during the simulation, always writing a new engine and adjust those parameters might be very inefficient.
do you know how can I start the python interface for YADE, is there any sample code already in the package? It looks a very efficient way of doing "dynamic" operations.

________________________________

From: yade-users-bounces@xxxxxxxxxxxxxxxx on behalf of Václav S(milauer
Sent: Fri 5/16/2008 11:29 AM
To: yade-users@xxxxxxxxxxxxxxxx
Subject: Re: [Yade-users] About adding a surcharge (either box or force) during simulation



Feng, please can you NOT reply to mails on the list if you change
subject? That makes threading broken; please write new message to
yade-users@xxxxxxxxxxxxxxxx from scratch. Thanks :-)
> I have an assembly of particles which needs to consolidate first, then
> I need to apply a surcharge on top of them. I thought of two ways:
> (1) apply a box on top of the assembly. But my question is how to add
> a box (dynamic = true) after a certain steps, for example, first
> iterate 5k steps then activate the top box?
> (2) Apply a force on top of the load, adding another "Engine", count
> the iteration number "Niter", after "Niter", add the load on top of
> the particle assembly.
In any case you will have to write engine that will check iteration
number and if the condition is met, do some action. in (1), it would
create the box body, add ForceEngine to engines and subscribe the box to
the engine. (2) seems quite complicated, since loading the particle
assembly without the wall, you have to say which elements are on the
boundary, if I understand what you mean in (2).

---

In Python you could do it like this:

[create simulation]
o=Omega()
o.run(5000) # run 5000 iterations
boxId=o.bodies.append(yade.utils.box([cx,cy,cz],[extx,exty,extz],density=...,...))
# create box, add it to bodies, save body id
# put ForceEngine after the 5th engine (for example)
o.engines=o.engines[:5]+DeusExMachina("ForceEngine",{'force'=[0,0,-100],'subscribedBodies':[boxId]})+o.engines[5:]
o.run() #continue simulation

But currently there is no 3d view in PythonUI, which is a considerable
problem :-|. You could overcome this by calling yade.utils.runInQtGui()
one the engine is added (instead of o.run()). That saves simulation to
file and loads it in the GUI.

Regards, Vaclav
_______________________________________________
Yade-users mailing list
Yade-users@xxxxxxxxxxxxxxxx
https://lists.berlios.de/mailman/listinfo/yade-users


_______________________________________________
Yade-users mailing list
Yade-users@xxxxxxxxxxxxxxxx
https://lists.berlios.de/mailman/listinfo/yade-users

Follow ups

References