yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #14377
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.