Try: iters,stressXX = polt.data['iter'],plot.data['sx']
Maybe this solves the problem. Klaus On Mon, 31 Oct 2011 08:55:45 PM janaka kumara wrote: > New question #176961 on Yade: > https://answers.launchpad.net/yade/+question/176961 > > Hi all, > > I run peri3dController_triaxialCompression.py and want to get output data. > Therefore, I added iters = plot.data['iter'] stressXX = plot.data['sx'] as > given in the scrip (this is just to check whether it works though I need > all the data) but when I run this, it gives KeyError. Any helps to > overcome this is appreciated. > > Also, I am wondering what is /tmp/packDb.sqlite and how to access that. > > kumara@kumara-Latitude-E5510:~$ yade > peri3dController_triaxialCompression.py Welcome to Yade 0.60 > TCP python prompt on localhost:9000, auth cookie `dsausy' > XMLRPC info provider on http://localhost:21000 > Running script peri3dController_triaxialCompression.py > Considering packing > (radius=0.05±0,N=967,dim=0.937777×0.937777×0.937777,periodic,scale=1), > created Mon Oct 31 07:00:08 2011 ACCEPTED > Found suitable packing in /tmp/packDb.sqlite > (radius=0.05±0,N=967,dim=0.937777×0.937777×0.937777,periodic,scale=1), > created Mon Oct 31 07:00:08 2011 Traceback (most recent call last): > File "/usr/bin/yade", line 152, in runScript > execfile(script,globals()) > File "peri3dController_triaxialCompression.py", line 34, in <module> > iters = plot.data['iter'] > KeyError: 'iter' > [[ ^L clears screen, ^U kills line. F12 controller, F11 3d view, F10 both, > F9 generator, F8 plot. ]] > > Regards, > Janaka > ........................................................................... > ........................................................................... > ............................................................ # > peri3dController_triaxialCompression.py > # script, that explains funcionality and input parameters of > Peri3dController on the example of # triaxial compression. > # Firstly, a hydrostatic preassure is applied, then a strain along z axis > is increasing # while x- and y- stress is constant > # The simulation is run on rotated cell to enable localization and strain > softening # (you can also try simulation with command sp.toSimulation() > with no rotation, # in this case there is almost no difference, but in > script peri3dController_shear, # the cell rotation has significant effect) > > from yade import pack,plot,qt > > # define material > O.materials.append(FrictMat()) > > # create periodic assembly of particles > initSize=1.2 > sp=pack.randomPeriPack(radius=.05,initSize=Vector3(initSize,initSize,initSi > ze),memoizeDb='/tmp/packDb.sqlite') angle=0 > rot=Matrix3(cos(angle),0,-sin(angle), 0,1,0, sin(angle),0,cos(angle)) > sp.toSimulation(rot=rot) > > # plotting > plot.live=False > plot.plots={'iter':('sx','sy','sz','syz','szx','sxy',),'iter_':('ex','ey',' > ez','eyz','ezx','exy',),'ez':('sz',)} def plotAddData(): > plot.addData( > iter=O.iter,iter_=O.iter, > sx=p3d.stress[0],sy=p3d.stress[1],sz=p3d.stress[2], > syz=p3d.stress[3],szx=p3d.stress[4],sxy=p3d.stress[5], > ex=p3d.strain[0],ey=p3d.strain[1],ez=p3d.strain[2], > eyz=p3d.strain[3],ezx=p3d.strain[4],exy=p3d.strain[5], > ) > iters = plot.data['iter'] > stressXX = plot.data['sx'] > > O.dt=utils.PWaveTimeStep()/2 > > # define the first part of simulation, hydrostatic compression > O.engines=[ > ForceResetter(), > InsertionSortCollider([Bo1_Sphere_Aabb()]), > InteractionLoop( > [Ig2_Sphere_Sphere_Dem3DofGeom()], > [Ip2_FrictMat_FrictMat_FrictPhys()], [Law2_Dem3DofGeom_FrictPhys_CundallSt > rack()]), NewtonIntegrator(), > Peri3dController( goal=(-1e7,-1e7,-1e7, 0,0,0), # Vector6 of > prescribed > final values stressMask=0b000111, > nSteps=500, > doneHook='print > "Hydrostatic load reached."; O.pause()', > youngEstimation=.5e9, # > needed, when only nonzero prescribed values > are stress maxStrain=.5, > label='p3d' > ), > PyRunner(command='plotAddData()',iterPeriod=1), > ] > O.run(); O.wait() > > # second part, z-axis straining and constant transversal stress > O.engines=[ > ForceResetter(), > InsertionSortCollider([Bo1_Sphere_Aabb()]), > InteractionLoop( > [Ig2_Sphere_Sphere_Dem3DofGeom()], > [Ip2_FrictMat_FrictMat_FrictPhys()], [Law2_Dem3DofGeom_FrictPhys_CundallSt > rack()]), NewtonIntegrator(), > Peri3dController( goal=(-1e7,-1e7,-4e-1, 0,0,0), # Vector6 of > prescribed > final values stressMask=0b000011, > nSteps=1000, > xxPath=[(0,1),(1,1)], # > the first (time) zero defines the initial > value of stress considered nonzero yyPath=[(0,1),(1,1)], > doneHook='print > "Simulation with Peri3dController finished."; > O.pause()', maxStrain=.5, > label='p3d', > strain=p3d.strain, # > continue from value reached in previous part > > stressIdeal=Vector6(-1e7,-1e7,0, 0,0,0), # continue from value > reached in previous part ), > PyRunner(command='plotAddData()',iterPeriod=1), > ] > O.run();O.wait() > plot.plot() _______________________________________________ Mailing list: https://launchpad.net/~yade-users Post to : [email protected] Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp

