Question #678440 on Yade changed: https://answers.launchpad.net/yade/+question/678440
Status: Open => Answered Chareyre proposed the following answer: The «why» is long storry. The «how» is in my first reply to your previous question. Please check it. Le sam. 9 févr. 2019 07:08, jamespaul <question678...@answers.launchpad.net> a écrit : > New question #678440 on Yade: > https://answers.launchpad.net/yade/+question/678440 > > Hi, > > That's my other question. ( > https://answers.launchpad.net/yade/+question/678348) > > Let me give another example.Copying script from ( > https://yade-dev.gitlab.io/trunk/tutorial-examples.html) > > Using my own custom materials. > > > materials.append(FrictMat(young=64e9,poisson=0.12,density=2650,frictionAngle=0.23) > > In the second compression, change triax.maxStrainRate=(0,0,0).If I adjust > young's modulus to young=64e7, it can maintain the stress of the first > isotropic compression, otherwise the stress becomes 0. > > I wonder why young's modulus can cause such a big change? How can I > adjust:) > > Thanks > > ##################### > # encoding: utf-8 > > sigmaIso=-1e5 > > #import matplotlib > #matplotlib.use('Agg') > > # generate loose packing > from yade import pack, qt, plot > > O.periodic=True > > > sphere=O.materials.append(FrictMat(young=64e9,poisson=0.12,density=2650,frictionAngle=0.23,label='sphere')) > sp=pack.SpherePack() > sp.makeCloud((0,0,0),(2,2,2),rMean=.1,rRelFuzz=.3,periodic=True) > sp.toSimulation() > > O.engines=[ > ForceResetter(), > InsertionSortCollider([Bo1_Sphere_Aabb()]), > InteractionLoop( > [Ig2_Sphere_Sphere_ScGeom()], > [Ip2_FrictMat_FrictMat_FrictPhys()], > [Law2_ScGeom_FrictPhys_CundallStrack()] > ), > PeriTriaxController(label='triax', > # specify target values and whether they are strains or > stresses > goal=(sigmaIso,sigmaIso,sigmaIso),stressMask=7, > # type of servo-control > dynCell=True,maxStrainRate=(10,10,10), > # wait until the unbalanced force goes below this value > maxUnbalanced=.1,relStressTol=1e-3, > # call this function when goal is reached and the packing > is stable > doneHook='compactionFinished()' > ), > NewtonIntegrator(damping=.2), > PyRunner(command='addPlotData()',iterPeriod=100), > ] > O.dt=.5*PWaveTimeStep() > > def addPlotData(): > plot.addData(unbalanced=unbalancedForce(),i=O.iter, > > sxx=triax.stress[0],syy=triax.stress[1],szz=triax.stress[2], > > exx=triax.strain[0],eyy=triax.strain[1],ezz=triax.strain[2], > # save all available energy data > Etot=O.energy.total(),**O.energy > ) > > # enable energy tracking in the code > O.trackEnergy=True > > # define what to plot > plot.plots={'i':('unbalanced',),'i ':('sxx','syy','szz'),' > i':('exx','eyy','ezz'), > # energy plot > ' i ':(O.energy.keys,None,'Etot'), > } > # show the plot > plot.plot() > > def compactionFinished(): > # set the current cell configuration to be the reference one > O.cell.trsf=Matrix3.Identity > # change control type: keep constant confinement in x,y, 20% > compression in z > triax.goal=(sigmaIso,sigmaIso,-.2) > triax.stressMask=3 > # allow faster deformation along x,y to better maintain stresses > triax.maxStrainRate=(0,0,0) > # next time, call triaxFinished instead of compactionFinished > triax.doneHook='triaxFinished()' > # do not wait for stabilization before calling triaxFinished > triax.maxUnbalanced=10 > > def triaxFinished(): > print 'Finished' > O.pause() > > -- > 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 > > -- 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