← 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: Answered => Open

weijy is still having a problem:
Thanks for Luc's solution. But I still have a problem:
In triaxial test, the confining pressure is applied through internal compaction. And the isotropic state is reached at a certain step(10000 for example).
The method provided by Luc set enlargeFactor and cohesion at the first step. Then how should these two parameters be set at 10001?




--


At 2017-03-13 20:52:53, "Luc Scholtès" <question556907@xxxxxxxxxxxxxxxxxxxxx> wrote:
>Your 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
>
>-- 
>If this answers your question, please go to the following page to let us
>know that it is solved:
>https://answers.launchpad.net/yade/+question/556907/+confirm?answer_id=0
>
>If you still need help, you can reply to this email or go to the
>following page to enter your feedback:
>https://answers.launchpad.net/yade/+question/556907
>
>You received this question notification because you asked the question.

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