I'll try to read replies first, next time, to avoid replying when Mr. 
Vaçlav already did.

Again Marco, you need to be more precise when commenting what happens in 
the simulations.
By doing so, you will find the cause of most problems on your own, actually.

Why is the box falling? What is the total force on it? Is it an upward 
force? So you discovered a terrible bug in Yade.
Is it a downward force? So there is nothing wrong here, you need to look 
elsewhere.

About this :

"if you
want strain-controlled test; it is suitable for sphere packings. For
stress-control, you are on your own probably. Vaclav"

I think Mohammad Islam is working on this at the moment and should be 
quite advanced on this point (just browse the mailing list archives). So 
you are perhaps not totally alone on the matter.

Bruno


MarcoDottor a écrit :
> Hello,
>
> I followed the advices that Mr Vaclav gave me and the code is below, but
> my box is still falling with spheres, there is again something wrong? It
> seems that only gravity is affecting bodyes.
> Another point is that if I activate the snapshot engine it results in
> blank images, there's a reason or a wrong setting?
>
> Thank you
>
>
> #!/usr/local/bin/yade-trunk -x
> # -*- encoding=utf-8 -*-
>
> from yade import utils
> from math import *
> from numpy import arange
> import random
>
> ## Paametri fisici geometrie importate
> Young = 15e6
> Poisson = 0.2
>
> #Parametri cilindro
> rCyl=40   ##Raggio superiore tronco cono
> rCyl2=40  ##Raggio inferiore tronco cono
> hCyl=39   ##altezza base inferiore cono
> hCyl2=10 ##altezza base superiore cono
> nPoly=20  ##Poligoni di cui è composto il contenitore
> hBox=hCyl/5
> phiStep=2*pi/nPoly
>
> #tolleranza contatti
> toll = 0.005
>
> ## Omega
> o=Omega()
>
> ## Importa geometria testa
> head =
> utils.import_stl_geometry('TC3T4.stl',young=Young,poisson=Poisson,
> color=[0,1,0],wire=True)
>
> for n in range(nPoly):
>         phi1,phi2=n*phiStep,(n+1)*phiStep
>         def pt(angle,radius,z):
>                 return radius*sin(angle),radius*cos(angle),z
> a,b,c,d=pt(phi1,rCyl,hCyl2),pt(phi2,rCyl,hCyl2),pt(phi1,rCyl2,hCyl),pt(phi2,rCyl2,hCyl)
>         o.bodies.append([
>                 utils.facet([a,b,c]),
>                 utils.facet([b,c,d])])
>
> for b in o.bodies: b['isDynamic']=False
>
> box =
> utils.box([0,0,hCyl+hBox/2],[rCyl,rCyl,hBox/2],density=200,wire=True)
> boxId=o.bodies.append(box)
>
> #for b in o.bodies: b['isDynamic']=False
>
> ## Sfere
> sphereRadius = 0.6
> nbSpheres = (10,10,3)
> for i in xrange(nbSpheres[0]):
>    for j in xrange(nbSpheres[1]):
>         for k in xrange(nbSpheres[2]):
>             x = (i*2 - nbSpheres[0])*sphereRadius*1.2
>             y = (j*2 - nbSpheres[1])*sphereRadius*1.2
>             z = 31 + (k*2 - nbSpheres[2])*sphereRadius*1.2
> o.bodies.append(utils.sphere([x,y,z],sphereRadius*(1-.3*(random.random())),young=Young,poisson=Poisson,density=2400))
> utils.randomizeColors(onlyDynamic=True)
>
> ## Timestep
> o.dt=utils.PWaveTimeStep()
>
> ## Initializers
> o.initializers=[
>         ## Create and reset to zero container of all PhysicalActions
> that will be used
>         StandAloneEngine('PhysicalActionContainerInitializer'),
>         ## Create bounding boxes. They are needed to zoom the 3d view
> properly before we start the simulation.
> MetaEngine('BoundingVolumeMetaEngine',[EngineUnit('InteractingSphere2AABB'),EngineUnit('InteractingFacet2AABB'),EngineUnit('InteractingBox2AABB'),EngineUnit('MetaInteractingGeometry2AABB')])
> ]
>
>
> ## Engines
> o.engines=[
>
>         ## Resets forces and momenta the act on bodies
>         StandAloneEngine('PhysicalActionContainerReseter'),
>
>         ## Associates bounding volume to each body.
>         MetaEngine('BoundingVolumeMetaEngine',[
>                 EngineUnit('InteractingSphere2AABB'),
>                 EngineUnit('InteractingFacet2AABB'),
>                 EngineUnit('InteractingBox2AABB'),
>                 EngineUnit('MetaInteractingGeometry2AABB')
>         ]),
>         ## Using bounding boxes find possible body collisions.
>         ##StandAloneEngine('SpatialQuickSortCollider'),
>         StandAloneEngine('SAPCollider'),
>         ## Create geometry information about each potential collision.
>         MetaEngine('InteractionGeometryMetaEngine',[
> EngineUnit('InteractingSphere2InteractingSphere4SpheresContactGeometry'),
> EngineUnit('InteractingFacet2InteractingSphere4SpheresContactGeometry',{'shrinkFactor':toll}),
> EngineUnit('InteractingBox2InteractingSphere4SpheresContactGeometry')
>         ]),
>         ## Crea informazioni fisiche sui contatti.
> MetaEngine('InteractionPhysicsMetaEngine',[EngineUnit('MacroMicroElasticRelationships')]),
>         ## "Solver" of the contact
>         StandAloneEngine('ElasticContactLaw'),
>
>         ## Applica forza alla base
>         DeusExMachina('ForceEngine',{'subscribedBodies':[boxId],
> 'force':[0,0,-100]}),
>         ## Sostituisce i motori di applicazione forze ai corpi,
> smorzamento ed integrazione temporale
>         DeusExMachina('NewtonsDampedLaw',{'damping':0.3}),
>
>
>         ## Applica rotazione alla testa 1 giro/min = 0,1047 rad/s
>         DeusExMachina('RotationEngine',{'subscribedBodies':head,
> 'rotationAxis':[0,0,1],'rotateAroundZero':True,'angularVelocity':0.1047}),
>
> #StandAloneEngine('SnapshotEngine',{'virtPeriod':1,'fileBase':'aaa','viewNo':0,'ignoreErrors':True})
>
> ]
>
> ## Salva la scena da simulare
> o.save('/tmp/a.xml');
>   


-- 
 
_______________
Chareyre Bruno
Maitre de conference

Grenoble INP
Laboratoire 3SR - bureau E145
BP 53 - 38041, Grenoble cedex 9 - France
Tél : 33 4 56 52 86 21
Fax : 33 4 76 82 70 43
________________


_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp
_______________________________________________
yade-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/yade-users

Reply via email to