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,initSize),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_CundallStrack()]),
        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_CundallStrack()]),
        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()


-- 
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.

_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to