← Back to team overview

yade-users team mailing list archive

Re: [Question #556907]: Apply cohesive interaction on JCFpmMat

 

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

    Status: Open => Answered

Luc Scholtès proposed the following answer:
Hi,

Yes, there is an easier way. Juste define the material parameters in
such lines:

def sphereMat(): return JCFpmMat(type=1,density=DENS,young=YOUNG,poisson = ALPHA,frictionAngle=radians(FRICT),tensileStrength=TENS,cohesion=COH)
def wallMat(): return JCFpmMat(type=0,density=DENS,young=YOUNG,frictionAngle=radians(0))

Second, make sure that you have these lines in your engines list:

...
InsertionSortCollider([Bo1_Box_Aabb(),Bo1_Sphere_Aabb(aabbEnlargeFactor=intR,label='Saabb')]),
InteractionLoop(
  [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intR,label='SSgeom'),Ig2_Box_Sphere_ScGeom()],
  [Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1,label='interactionPhys')],
  [Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(recordCracks=True,Key=OUT,label='interactionLaw')]
),
...

with intR a value that you previously determined to ensure a
coordination number K equal to the value you want for the packing you
use (K=10 for sandstone).

Then, the key parameter is: cohesiveTresholdIteration which defines the
iteration up to which you want to create bonds between particles (the
first one here).

Thus, just by runnning

O.step()

the bonds will be created.

After, you may want to reset the interaction radius to 1 by typing

SSgeom.interactionDetectionFactor=-1.
Saabb.aabbEnlargeFactor=-1.

You can check that the coordination number K corresponds to the one you
want by:

numSSlinks=0
numCohesivelinks=0
for i in O.interactions:
    if isinstance(O.bodies[i.id1].shape,Sphere) and isinstance(O.bodies[i.id2].shape,Sphere):
      numSSlinks+=1
    if i.phys.isCohesive :
      numCohesivelinks+=1
print "| K=", 2.0*numCohesivelinks/numSpheres

and then run your simulation (triaxial loading).

Luc

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