← Back to team overview

yade-users team mailing list archive

Re: [Question #684181]: Spheres are passing through in a new model when they interact

 

Question #684181 on Yade changed:
https://answers.launchpad.net/yade/+question/684181

Description changed to:
Hi all,

I'm trying to implement a new  contact model in Yade referring to
following paper,

https://www.dropbox.com/sh/xf5j80hke2s4gd5/AAAoiDIrGHk4YMp0nOe60QQca?dl=0

Initially, I tried to develop tension damage only.But after compiling
the code I ran a simple simulation with 2 spheres and when I see the
simulation, one sphere is passing through remaining sphere and  it did
not give any normal or shear force.

The .hpp file and  .cpp file regarding the model can be found in
following link,

https://www.dropbox.com/sh/50mzxm4s8yrsff9/AAASIoCvDHnKRbCl4M-
56A9Sa?dl=0


Could you please help me on this problem?

A minimum working example as follows,

Thanks
Chanaka

MWE-----

from yade import plot,qt
nh=O.materials.append(NhuMat(young=1e6,poisson=.25,frictionAngle=30,TensileStrength=1e5,Cohesion=1e5,DilatancyAngle=3,NormalSoftening=0.1,ShearSoftening=0.1,density=3000))

s1=utils.sphere((0,0,0),radius=1,color=[1,0,0],material=nh,fixed=True)
s2=utils.sphere((0,0,2),radius=1,color=[0,1,0],material=nh)

O.bodies.append(s1)
O.bodies.append(s2)

Gl1_Sphere.quality=3
# engines definition
O.engines=[
    ForceResetter(),
    InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=1.3,label='bo1s')]),
    InteractionLoop(
        [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=1.3,label='ig2ss')],
        [Ip2_NhuMat_NhuMat_NhuPhys()],
        [Law2_ScGeom_NhuPhys_Nhumodel()]
    ),
    TranslationEngine(ids=[s2.id],translationAxis=[0,0,-1],velocity=.001), #z direction movement
    NewtonIntegrator(damping=0.4),
    PyRunner(iterPeriod=1,command='addPlotData()',label='plotData'),
]
O.dt=0.4*PWaveTimeStep()
O.step()
bo1s.aabbEnlargeFactor=ig2ss.interactionDetectionFactor=1.
def addPlotData():
    plot.addData(i=O.iter,
                 displacement_n=O.bodies[1].state.refPos[2]-O.bodies[1].state.pos[2],
                 NF=O.interactions[0,1].phys.normalForce.norm(),
                 SF=O.interactions[0,1].phys.shearForce.norm(),
                 )

plot.plots={'i':('NF'),
           'displacement_n ':('NF'),
	   'i  ':('SF'),
	  }
plot.plot()
O.run()

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.