← Back to team overview

yade-users team mailing list archive

[Question #256283]: Problem with Damping, Facets and Contact Model

 

New question #256283 on Yade:
https://answers.launchpad.net/yade/+question/256283

Hi all,

I tested the Hertz Mindlin contact model and noticed that shear and normal viscous damping is not accounted for in a sphere-facet contact. It behaves correctly with a sphere-sphere contact. I have attached a simple script below to illustrate my point. I just wanted to check before I report a bug.

Also, I noticed that a facet is made of two "triangles" and at the junction of the two it appears the sphere is in contact with both surfaces. This increases the normal force and effects shear force and contact moments (shown by setting a=0 in the script below). Is this correct?

I am developing a contact model and  I need some guidance on how to fix it to ensure that the contact model behaves correctly on flat surfaces.

Thanks.

I am running YADE 1.10.

SCRIPT
=======================================================
from yade import utils, plot
import math as m

O.dt = 1.0e-6

r1,rho,v,E,muR,Bn,Bs,fric_ang=0.2,2000,0.35,0.1e9,0.2,0.8,0.8,0.2

a=5*r1

mat1=O.materials.append(FrictMat(poisson=v,density=rho,young=E,frictionAngle=fric_ang,label='fric_mat'))


id11 = O.bodies.append(sphere(center=[a,-a,r1*0.95],radius=r1,material=mat1,fixed=True))

O.bodies.append(utils.geom.facetBox((0.0,0.0,0.0),(2.0,2.0,0),wallMask=31,material=mat1))

O.engines = [
  ForceResetter(),
  InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
  	InteractionLoop(
		[Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
		[Ip2_FrictMat_FrictMat_MindlinPhys(betan=Bn,betas=Bs,ktwist=0.0,eta=muR)],
		[Law2_ScGeom_MindlinPhys_Mindlin(includeMoment=False,includeAdhesion=False,neverErase=False)]
	),
  NewtonIntegrator(damping=0,gravity=[0,0,-10],label="Newton"),
  PyRunner(command='addPlotData()',iterPeriod=50),
  PyRunner(command='sphereVel()',iterPeriod=1),
]

def sphereVel():
	O.bodies[id11].state.vel=[0,5*m.sin(O.time*200),0]


def addPlotData(): 
  f1 = [0,0,0]
  try:
    f1=O.forces.f(id11)
  except:
    f1 = [0,0,0]

  s1 = O.bodies[id11].state.pos[2]
  s2 = O.bodies[id11].state.pos[1]
  plot.addData(Normal=f1[2], Shear=f1[1], y=s2)

plot.plots={'y':('Normal','Shear')}; plot.plot()

from yade import qt
qt.View()

-- 
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.