yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #25541
[Question #697093]: Problems encountered in using FrictMat for polyhedron.
New question #697093 on Yade:
https://answers.launchpad.net/yade/+question/697093
Dear all,
I want to use polyhedra and spheres to make concrete,see[1].When I create a loose packing with spheres and polyhedrons with FrictMat and then compress them,I found that when I use Ig2_Polyhedra_Polyhedra_ScGeom()、Ip2_FrictMat_FrictMat_FrictPhys()、Law2_ScGeom_FrictPhys_CundallStrack(),when polyhedron contact with polyhedron,it will fly out or directly through the bottom.Here is a MWE,see[2].I think it might be ig2_ Polyhedra_ Polyhedra_ Scgeom() is not working properly.
Thanks in advance.
Jie
[1]https://answers.launchpad.net/yade/+question/692003
[2]MWE:
####################
from yade import polyhedra_utils,pack,utils,qt
import numpy as np
###material
m= FrictMat(density=4800,young=24e9,poisson=0.2,frictionAngle=radians(38.65))
O.materials.append(m)
####Bottom
meanSize = 0.05
wallThickness = 0.5*meanSize
length = 0.150
height=0.6
v1=((-0.5*length,0.5*wallThickness,0.5*length),(0.5*length,0.5*wallThickness,0.5*length),(0.5*length,0.5*wallThickness,-0.5*length),(-0.5*length,0.5*wallThickness,-0.5*length),(-0.5*length,-0.5*wallThickness,0.5*length),(0.5*length,-0.5*wallThickness,0.5*length),(0.5*length,-0.5*wallThickness,-0.5*length),(-0.5*length,-0.5*wallThickness,-0.5*length))
color=[0,0.5,1]
b1 = polyhedra_utils.polyhedra(material=m,v=v1,fixed=True,color=color) # you can set wire at
b1.state.pos = [0,0,0]
O.bodies.append(b1)
###makeCloud
sp=pack.SpherePack()
mn,mx=Vector3(-0.5*(length-1*wallThickness),0.5*meanSize,-0.5*(length-1*wallThickness)),Vector3(0.5*(length-1*wallThickness),0.95*height,0.5*(length-1*wallThickness))
###Generate polyhedron
sp.makeCloud(mn,mx,psdSizes=[0.01,0.01,0.04,0.04],psdCumm=(0,0.9,0.9,1),num=-1,distributeMass=False)
for center,radius in sp:
if radius > 0.015:
t=polyhedra_utils.polyhedra(material=m,size=(0.02,0.02,0.02),color=(0.2,0.3,0.4))
t.state.pos = center # sets polyhedron position according to sphere position
O.bodies.append(t)
###engine
O.engines = [
ForceResetter(),
InsertionSortCollider([Bo1_Polyhedra_Aabb()]),
InteractionLoop(
[Ig2_Polyhedra_Polyhedra_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()],
),
NewtonIntegrator(gravity=(0,-9.81,0)),
]
O.dt=1e-5
from yade import qt
v=qt.View()
v.sceneRadius=3.0
--
You received this question notification because your team yade-users is
an answer contact for Yade.