spheres pass through cylinder

Asked by hafsa on 2019-02-18

hi every one ,
i have two questions :
1_ i wrote a script of falling spheres into cylinder , the problem is that the spheres pass through it (like it doesn't exist )
why it doesn't work ?
2_ there's command in yade to make spheres semi-transparent ?

the script is :
from yade import pack

density=2500
young=70000
r=.5
constant_damping=0.01

#material of cylinder
Mat1 = O.materials.append(ViscElMat(kn=10.0e4,ks=10.0e4,frictionAngle=0.455,density=2650.0))

#material of spheres
Mat2 = O.materials.append(CohFrictMat(poisson=.22,young=young,density=density))

# create sphere packing
sp=pack.SpherePack()
sp.makeCloud((-7.2,-7.2,18.),(7.2,7.2,82.9),rMean=r,rRelFuzz=0,num=6000,seed=1)
sp.toSimulation(color=(0,1,0),material=Mat2)

# create Cylinder
Cylinder=O.bodies.append(geom.facetCylinder((0,0,30.),10.0,height=60.0,wallMask=6,segmentsNumber=64,material=Mat1))

# interactions
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(gravity=(0,0,-9.81),damping=constant_damping),

 ]
O.dt=PwaveTimeStep()

thanks in advance

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Jan Stránský
Solved:
2019-02-20
Last query:
2019-02-20
Last reply:
2019-02-19
Luc Scholtès (luc) said : #1

Hi,

It seems that you append 2 materials (ViscElMat and CohFrictMat) and then you define interaction physics with Ip2_FrictMat_FrictMat_FrictPhys which is related to another material (FrictMat). Then, you want to use the Law2_ScGeom_FrictPhys_CundallStrack which is related to Ip2_FrictMat_FrictMat_FrictPhys and FrictMat.

My suggestion for your 1st question: define appropriate material (FrictMat: https://yade-dev.gitlab.io/trunk/yade.wrapper.html?highlight=frictmat#yade.wrapper.FrictMat) for both spheres and cylinder and keep the InteractionLoop as it is right now.

Regarding your second question, sorry, I don't understand what you want to achieve since you can visualize your simulation in YADE GUI or in Paraview. In YADE GUI, if you go to the display panel, there is an option "wire" which makes the particles "semi-transparent".

Luc

hafsa (sebbah.hafsa) said : #2

Hi Luc ,
hanks for answer me , now i change the interaction and material of cylinder but the spheres pass through the cylinder again .

#material of cylinder
Mat1 = O.materials.append(FrictMat(young=20*young,frictionAngle=0.455,density=20*density))

#material of spheres
Mat2 = O.materials.append(FrictMat(poisson=.22,young=young,density=density))

#interactions

[Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
        [Ip2_FrictMat_FrictMat_MindlinPhys()],
        [Law2_ScGeom_MindlinPhys_HertzWithLinearShear()]

hafsa (sebbah.hafsa) said : #3

i want to create glass spheres that's why i changed the material of the cylinder

Jan Stránský (honzik) said : #4

Just proceed step-by-step, i.e. follow Luc's suggestion to first try with one material. If everything works in the simple configuration (no spheres pass through cylinder), then you can play with materials.

One reason could be that the stiffness is too low and interaction forces are not high enough to prevent spheres passing through the cylinder. Try to increase the stiffness (young parameter)

cheers
Jan

hafsa (sebbah.hafsa) said : #5

thanks Luc and Jan my first question was solved ( young=7e6) .
for the second question i want to make some particles semi-transparent to see how they interact inside the cylinder.

Best Jan Stránský (honzik) said : #6

You can set transparency easily in Paraview [1]. I don't use much the native Yade GUI, so I have no idea if it is possible there..
Jan

[1] https://yade-dev.gitlab.io/trunk/user.html#id3

hafsa (sebbah.hafsa) said : #7

Thanks Jan Stránský, that solved my question.