CohFrictMat engine

Asked by yakir on 2014-09-30

Hello all,

I'm trying to create a pack of high adhesion balls. so i created a simple script to test the CohFrictMat engine but somehow the blue ball refuse to stick.
what do i need to do?

#simple script

from yade import ymport, pack, plot
import operator
rMean=0.0025

O.materials.append(FrictMat(young=210e10,poisson=.7,frictionAngle=.1,label="steel")) # material for the box and the wedge

O.materials.append(CohFrictMat(
young=50000,poisson=1,density=1074,frictionAngle=radians(0),
isCohesive=True,normalCohesion=10000000,shearCohesion=10000000,
etaRoll=0.1,momentRotationLaw=True,alphaKr=0.1,alphaKtw=0.1,label="sphereMat"))

O.bodies.append(utils.sphere(center=(2e-2,4e-2+(2*rMean),0e-2),radius=rMean,material="sphereMat",fixed=False,color=(1,0,0)))
O.bodies.append(utils.sphere(center=(2e-2-(2*rMean),4e-2,0e-2),radius=rMean,material="sphereMat",fixed=False,color=(0,0,1)))
O.bodies.append(utils.sphere(center=(2e-2,4e-2,0e-2),radius=rMean,material="sphereMat",fixed=True,color=(0,1,0)))

O.engines=[
   ForceResetter(),
   InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
   InteractionLoop(
   [Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Facet_Sphere_ScGeom()],
   [Ip2_FrictMat_FrictMat_FrictPhys(),
   Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,label="cohesiveIp")],
   [Law2_ScGeom_FrictPhys_CundallStrack(),
   Law2_ScGeom6D_CohFrictPhys_CohesionMoment(useIncrementalForm=True,label='cohesiveLaw')]
   ),
   NewtonIntegrator(damping=0.8,gravity=[0,0,-9.81]),
]
O.dt=.0005*utils.PWaveTimeStep()

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Klaus Thoeni
Solved:
2014-10-01
Last query:
2014-10-01
Last reply:
2014-09-30
Best Klaus Thoeni (klaus.thoeni) said : #1

Hi,

if you check the iteractions after the first timestep you will see that there is no interaction between the blue and the green particle. Basically, this means there is no contact and no cohesive link can be created. You can use the Inspector to check this.

Either create a manual interaction or use aabbEnlargeFactor [1] and interactionDetectionFactor [2]. You can reset the latter after the link is created.

HTH Klaus

[1] https://yade-dem.org/doc/yade.wrapper.html?highlight=aabbenlargefactor#yade.wrapper.Bo1_Sphere_Aabb.aabbEnlargeFactor
[2] https://yade-dem.org/doc/yade.wrapper.html?highlight=interactiondetectionfactor#yade.wrapper.Ig2_Sphere_ChainedCylinder_CylScGeom6D.interactionDetectionFactor

yakir (yakirnagar22) said : #2

Thank you very much. its help me alot !
I set the interactionDetectionFactor=1.2 in Ig2_Sphere_Sphere_ScGeom6D()
and i use setCohesionOnNewContacts=True in Ip2_CohFrictMat_CohFrictMat_CohFrictPhys() also :)

Christian Jakob (jakob-ifgt) said : #4

hi,

afaik you have set both factors to 1.2 (aabbEnlargeFactor and interactionDetectionFactor) for correct implementation.

christian

On 01/10/14 09:31, Christian Jakob wrote:
> afaik you have set both factors to 1.2 (aabbEnlargeFactor and
> interactionDetectionFactor) for correct implementation.
Correct.

B