yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #16980
Re: [Question #665675]: Facet mesh
Question #665675 on Yade changed:
https://answers.launchpad.net/yade/+question/665675
Status: Answered => Open
Nishant is still having a problem:
Dear Jérôme,
Thank you for the reply.
I understand your point on number of contacts -- this can be resolved in the post-processing stage if sphere interacts with ANY member of the facetbox, count just one interaction. My issue is the force acting on the sphere.
But about the force acting on the sphere is the problem.
Consider this example:
#--------------------------------------------------
from yade import pack, qt, export
import numpy as np
#-----
##Defining Box
O.periodic=False
# No side boundaries this time, just a plane!
O.bodies.append(geom.facetBox(center=(0.5,0.5,0.5),extents = (0.5,0.5,0.5), wallMask= 16)) # Facetbox except the base
#-----
O.bodies.append([sphere((0.7,0.5,0.2001),radius=0.2)]) # add a sphere # Other case
#O.bodies.append([sphere((0.5,0.5,0.2001),radius=0.2)]) # add a sphere
#-----
##Engine Definition
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()],allowBiggerThanPeriod=True),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
PyRunner(command = 'output()', iterPeriod = 1, label = "checker"),
NewtonIntegrator(gravity=(0,0,-9.81),damping=0.0)
]
#-----
def output():
if (O.iter < 20):
count_intrs = 0.0
for i in O.interactions:
if i.isReal:
count_intrs += 1.0
print "time:", O.time, "Sphere position", (O.bodies[-1].state.pos[2]), "contacts", count_intrs, "force", O.forces.f(O.bodies[-1].id)[2]
else:
print "done"
O.pause()
#-----
O.dt = 5e-1*PWaveTimeStep()
O.run()
#--------------------------------------------------
#--------------------------------------------------
When sphere is at (0.7,0.5,0.2001), it interacts with just one facet and this one spring (equivalent to sphere-plane interaction) - consistent with what we expect.
When it is at (0.5,0.5,0.2001), there are two springs from two facets.
So what you say is correct: different springs acting on sphere and thus
different forces and different time of contact!
Do you have idea how can we resolve this issue, so that the force on
sphere with time is same for the two cases?
Thanks
PS: I expect this is more complicated when a sphere just falls at the
base joint made of two different materials
--
You received this question notification because your team yade-users is
an answer contact for Yade.