Why are no bonds formed by this script if aabbEnlargeFactor & interactionDetectionFactor are high enough?

Asked by Christopher Stanbridge

Hello all,

The Yade script I've posted below should, according to the aabbEnlargeFactor and interactionDetectionFactor values, generate bonds between adjacent spheres. However, it doesn't -- the number of contacts formed by it is zero. Does anyone here know why this might be? All help is appreciated.

- Christopher Stanbridge

import sys, time, random, os, gts, math
from yade import ymport
from yade import pack
from yade import qt
from yade import export

mat1=O.materials.append(CohFrictMat(young=1e8, poisson=1/0.25, density=2000, frictionAngle=radians(30), alphaKr=0.89, alphaKtw=0.67, etaRoll=-1, isCohesive=True, momentRotationLaw=True,normalCohesion=20000,shearCohesion=30000))
sphereIce=O.materials[mat1]

mat2=O.materials.append(CohFrictMat(young=1e8, poisson=1/0.25, density=2000, frictionAngle=radians(30), alphaKr=0.89, alphaKtw=0.67, etaRoll=-1, isCohesive=False, momentRotationLaw=True,normalCohesion=0,shearCohesion=0))
wallIce=O.materials[mat2]

O.bodies.append([
 utils.wall(-1,0,material=wallIce,color=(0.8,0.8,0.8)),
 utils.wall(1,0,material=wallIce,color=(0.8,0.8,0.8)),
 utils.wall(-1,1,material=wallIce,color=(0.8,0.8,0.8)),
 utils.wall(1,1,material=wallIce,color=(0.8,0.8,0.8)),
 utils.wall(-1,2,material=wallIce,color=(0.8,0.8,0.8)),
 utils.wall(1,2,material=wallIce,color=(0.8,0.8,0.8))
])

for x in range(-9, 9):
 for y in range(-9, 9):
  for z in range(-9, 9):
   r = 0.05
   if (x + y + z) % 2 == 1:
    r = 0.045
   O.bodies.append(utils.sphere(center=(x/10.0,y/10.0,z/10.0),radius=r,material=sphereIce,color=(0.8,0.2,0.2),fixed=False))

O.engines=[
 ForceResetter(),
 InsertionSortCollider([ Bo1_Sphere_Aabb(aabbEnlargeFactor=1.3), Bo1_Wall_Aabb()]),
 InteractionLoop([Ig2_Sphere_Sphere_ScGeom6D(interactionDetectionFactor=1.3), Ig2_Wall_Sphere_L3Geom()],
  [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False)],
  [Law2_ScGeom6D_CohFrictPhys_CohesionMoment(always_use_moment_law=False, creep_viscosity=1, neverErase=False,shear_creep=False,twist_creep=False,useIncrementalForm=False)]
 ),

 NewtonIntegrator(damping=0.2, gravity=[0, 0, 0], label='integrator')
]

Question information

Language:
English Edit question
Status:
Expired
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:

This question was reopened

Revision history for this message
Anton Gladky (gladky-anton) said :
#1

Hi Christopher,

did you execute at least one step to
give a chance Yade to detect contacts?

Anton

2015-08-13 18:46 GMT+02:00 Christopher Stanbridge
<email address hidden>:
> New question #270352 on Yade:
> https://answers.launchpad.net/yade/+question/270352
>
> Hello all,
>
> The Yade script I've posted below should, according to the aabbEnlargeFactor and interactionDetectionFactor values, generate bonds between adjacent spheres. However, it doesn't -- the number of contacts formed by it is zero. Does anyone here know why this might be? All help is appreciated.
>
> - Christopher Stanbridge
>
> import sys, time, random, os, gts, math
> from yade import ymport
> from yade import pack
> from yade import qt
> from yade import export
>
> mat1=O.materials.append(CohFrictMat(young=1e8, poisson=1/0.25, density=2000, frictionAngle=radians(30), alphaKr=0.89, alphaKtw=0.67, etaRoll=-1, isCohesive=True, momentRotationLaw=True,normalCohesion=20000,shearCohesion=30000))
> sphereIce=O.materials[mat1]
>
> mat2=O.materials.append(CohFrictMat(young=1e8, poisson=1/0.25, density=2000, frictionAngle=radians(30), alphaKr=0.89, alphaKtw=0.67, etaRoll=-1, isCohesive=False, momentRotationLaw=True,normalCohesion=0,shearCohesion=0))
> wallIce=O.materials[mat2]
>
> O.bodies.append([
> utils.wall(-1,0,material=wallIce,color=(0.8,0.8,0.8)),
> utils.wall(1,0,material=wallIce,color=(0.8,0.8,0.8)),
> utils.wall(-1,1,material=wallIce,color=(0.8,0.8,0.8)),
> utils.wall(1,1,material=wallIce,color=(0.8,0.8,0.8)),
> utils.wall(-1,2,material=wallIce,color=(0.8,0.8,0.8)),
> utils.wall(1,2,material=wallIce,color=(0.8,0.8,0.8))
> ])
>
> for x in range(-9, 9):
> for y in range(-9, 9):
> for z in range(-9, 9):
> r = 0.05
> if (x + y + z) % 2 == 1:
> r = 0.045
> O.bodies.append(utils.sphere(center=(x/10.0,y/10.0,z/10.0),radius=r,material=sphereIce,color=(0.8,0.2,0.2),fixed=False))
>
>
> O.engines=[
> ForceResetter(),
> InsertionSortCollider([ Bo1_Sphere_Aabb(aabbEnlargeFactor=1.3), Bo1_Wall_Aabb()]),
> InteractionLoop([Ig2_Sphere_Sphere_ScGeom6D(interactionDetectionFactor=1.3), Ig2_Wall_Sphere_L3Geom()],
> [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False)],
> [Law2_ScGeom6D_CohFrictPhys_CohesionMoment(always_use_moment_law=False, creep_viscosity=1, neverErase=False,shear_creep=False,twist_creep=False,useIncrementalForm=False)]
> ),
>
> NewtonIntegrator(damping=0.2, gravity=[0, 0, 0], label='integrator')
> ]
>
>
>
> --
> You received this question notification because you are a member of
> yade-users, which is an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~yade-users
> More help : https://help.launchpad.net/ListHelp

Revision history for this message
Christopher Stanbridge (stanbridge3) said :
#3

Hi Anton,

Yes, I did. There are still no contacts.

CS

Revision history for this message
Launchpad Janitor (janitor) said :
#4

This question was expired because it remained in the 'Open' state without activity for the last 15 days.