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" <question556...@answers.launchpad.net> 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. _______________________________________________ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp