spherepack not under gravity and stays on the bed/base

Asked by Defri on 2020-11-26

Dear all,

I am trying to drop the big sphere into the spherepack, but I have a condition that I cannot solve:

1.How to make the spherepack is not under the gravity? so it remains not moving, but when the big sphere has dropped, the spherepack will move/be scattered because of big sphere's weight.

2. Can we make the spherepack stays on the base of facet? because my model is like floating, I already tried to make really really small for the distance from spherepack to base of facet and it does not work.

##SCRIPT

##Define Geometry
O.bodies.append([utils.sphere(center=(.35,-.35,3),radius=.4)])

##Sphere pack in box shape
from yade import pack, timing
O.bodies.append(geom.facetBox((.35,-.35,1.5),(.499,-.499,1.5),wallMask=31))
sp=pack.SpherePack()
sp.makeCloud((-.1,.1,-.009),(.8,-.8,.5),rMean=.03,rRelFuzz=.2,num=2000)
sp.toSimulation()

##Engines and Constitutive Law
O.engines=[ForceResetter(),InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
 InteractionLoop([Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],[Ip2_FrictMat_FrictMat_FrictPhys()],
 [Law2_ScGeom_FrictPhys_CundallStrack()]),
 NewtonIntegrator(damping=0.01,gravity=[0,0,-9.81])]

O.dt=PWaveTimeStep()

####################################

What should i do? Thank you for your any suggestions.

Cheers!

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Defri
Solved:
2020-11-28
Last query:
2020-11-28
Last reply:
2020-11-26

Hi,
NewtonIntegrator(gravity=[0,0,0])] and add weight as a single external force on the big one?
Bruno

Defri (daredefri) said : #2

Thank you Bruno for the help, but I cannot modify it well, could you help me which part?
I did like this, but the spherepack is going up pushing the big sphere.

And actually can we put the spherepack on the bottom of facet? not floating.

##SCRIPT

##Define Geometry
weight=100
O.bodies.append([utils.sphere(center=(.35,-.35,3),radius=.4)])

##Sphere pack in box shape
from yade import pack, timing
O.bodies.append(geom.facetBox((.35,-.35,1.5),(.499,-.499,1.5),wallMask=31))
sp=pack.SpherePack()
sp.makeCloud((-.1,.1,-.009),(.8,-.8,.5),rMean=.03,rRelFuzz=.2,num=2000)
sp.toSimulation()

##Engines and Constitutive Law
O.engines=[ForceResetter(),InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
 InteractionLoop([Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],[Ip2_FrictMat_FrictMat_FrictPhys()],
 [Law2_ScGeom_FrictPhys_CundallStrack()]),
 NewtonIntegrator(damping=0.01,gravity=[0,0,0])]

O.dt=PWaveTimeStep()

O.save('/tmp/d.xml.bz2')

Oh. You mean that you want gravity to actually deposit the spheres? Then what you need is time iterations to let them deposit: "O.run()".
When you have a deposit you can throw a sphere at it.
B

Defri (daredefri) said : #4

Actually what I need, the big sphere has gravity (-9.81) and the sphere pack will be scattered because effect of big sphere dropped...and the sphere pack is stay on the base of facet box (Z Y view), not dropping like I did in my script..
I know it seems easy but I am sorry I really cannot solve this, and keep asking..

Defri (daredefri) said : #5

Thank God..
I have founded the solution..
I consider the spherepack cannot stay statically from the beginning, so I made the spherepack moves first until it settled/static, staying on the base of facet till on certain iter...then the big sphere moves after that...

Thank you.

Cheers.

The self answer in #5 is the long version of #3. Sorry it it was too short and congrats. :)
Cheers