yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #06679
[Question #214773]: Question about "ScGeom"
New question #214773 on Yade:
https://answers.launchpad.net/yade/+question/214773
Hi,
i am a little bit confused about, how yade calculate the motion. Therefore i did 2 short tests.
test (Cundall & Strack):
from yade import plot, geom, utils
#parameters:
r1 = 0.003
r2 = 0.003
E1 = 210e9
E2 = 90e9
poisson1 = 0.3
poisson2 = 0.14
frictionAngle = 0.07
density1 = 7900
density2 = 2500
g = 9.81
h = 0.1
O.materials.append(FrictMat(young=E1,poisson=poisson1,frictionAngle=frictionAngle,density=density1, label='mat_ground'))
O.materials.append(FrictMat(young=E2,poisson=poisson2,frictionAngle=frictionAngle,density=density2, label='mat_spheres'))
O.bodies.append(utils.sphere([0.01,0.01,0.1],0.003,color=[1,1,0], material='mat_spheres'))
sphere=O.bodies[0]
print O.time,sphere.state.vel[2],sphere.state.pos[2]
pot=O.bodies.append(utils.geom.facetCylinder((0,0,.04),.054,.08,orientation=Quaternion((0, 0, 0),0),segmentsNumber=20,wallMask=2, color=(0,1,0), fixed=True, material='mat_ground'))
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.2, gravity=(0,0,-9.81)),
PyRunner(iterPeriod=1,command="myAddPlotData()"),
PyRunner(iterPeriod=100000,command="addData()")
]
O.dt=1*utils.PWaveTimeStep()
def myAddPlotData():
force=plot.addData(t=O.time,F=O.forces.f(0).norm())
def addData():
print O.time,sphere.state.vel[2],sphere.state.pos[2]
plot.plots={'t':('F')}
plot.plot()
from yade import qt
v=qt.View()
Test (Hertz):
from yade import plot, geom, utils
#parameters:
r1 = 0.003
r2 = 0.003
E1 = 210e9
E2 = 90e9
poisson1 = 0.3
poisson2 = 0.14
frictionAngle = 0.07
density1 = 7900
density2 = 2500
g = 9.81
h = 0.1
O.materials.append(FrictMat(young=E1,poisson=poisson1,frictionAngle=frictionAngle,density=density1, label='mat_ground'))
O.materials.append(FrictMat(young=E2,poisson=poisson2,frictionAngle=frictionAngle,density=density2, label='mat_spheres'))
O.bodies.append(utils.sphere([0.01,0.01,0.1],0.003,color=[1,1,0], material='mat_spheres'))
sphere=O.bodies[0]
print O.time,sphere.state.vel[2],sphere.state.pos[2]
pot=O.bodies.append(utils.geom.facetCylinder((0,0,.04),.054,.08,orientation=Quaternion((0, 0, 0),0),segmentsNumber=20,wallMask=2, color=(0,1,0), fixed=True, material='mat_ground'))
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_MindlinPhys()],
[Law2_ScGeom_MindlinPhys_HertzWithLinearShear()]
),
NewtonIntegrator(damping=0.2, gravity=(0,0,-9.81)),
PyRunner(iterPeriod=1,command="myAddPlotData()"),
PyRunner(iterPeriod=100000,command="addData()")
]
O.dt=1*utils.PWaveTimeStep()
def myAddPlotData():
force=plot.addData(t=O.time,F=O.forces.f(0).norm())
def addData():
print O.time,sphere.state.vel[2],sphere.state.pos[2]
plot.plots={'t':('F')}
plot.plot()
from yade import qt
v=qt.View()
and this are my results:
http://s14.directupload.net/file/d/3080/9ui6zesh_pdf.htm
It is shown that i got 2 different forces. But the velocity and the position are nearly the same.
So i took a look into the yade-code and i found out that that both contact laws (Law2_ScGeom_FrictPhys_CundallStrack, Law2_ScGeom_MindlinPhys_HertzWithLinearShear) need the penetrationDepth to calculate the normalForce.
Now my question:
Does yade calculate the motion independently from the force? Because the algorithm of the scGeom doesn't need any force:
https://www.yade-dem.org/doc/yade.wrapper.html?highlight=scgeom#yade.wrapper.ScGeom
Furthermore i'm interested in how yade calculate the velocity and position if there isn't a contact anymore? Is the NewtonIntegrator also independently from the forces of the contact law? It isn't that easy to find in the yade-cade.
--
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.