Question #226679 on Yade changed: https://answers.launchpad.net/yade/+question/226679
Jan Stránský proposed the following answer: Hello, at the end of your script, try: O.run(602) # instead of O.run() first error you eould get is: RuntimeError: Clump::updateProperties: NaNs in eigen-decomposition of inertia matrix?! so this is the first problem to solve. cheers Jan 2013/4/14 Xin Wu <[email protected]> > New question #226679 on Yade: > https://answers.launchpad.net/yade/+question/226679 > > Dear Sir, > I have now some Problems with Clump. I will try Box-Experiment with Clump > and write the Code. But the Programme stop and warnt NameError: name > 'makeClumpTemplate' is not defined. Can anyone help me. Thank you. > > from yade import utils > from numpy import linspace > from numpy import arange > import gts > import itertools > from yade import pack > > rMean=.0096 > rRelFuzz=.0016 > maxLoad=4500 > > frictionAngleSt=radians(35) > frictionAngleBo=radians(23.5) > > a=0.05 > > spheremat=O.materials.append(FrictMat(density=2650,young=210e6,poisson=0.3,frictionAngle=frictionAngleBo)) > > id_Mat=O.materials.append(FrictMat(density=2650,young=175e6,poisson=0.3,frictionAngle=frictionAngleBo)) > Mat=O.materials[id_Mat] > steel=O.materials.append(FrictMat(young=210e9, > poisson=.25,frictionAngle=frictionAngleSt,density=8000)) > > from yade import pack, plot,qt > > sp=pack.SpherePack() > > sp.makeCloud((0.005,0.005,0),(0.3,0.3,0.30),rMean=.0096,rRelFuzz=.0016,periodic=False) > O.bodies.append([sphere(a,r,material=Mat) for a,r in sp]) > > print len(sp),' particles generated.' > > > fIDSI=O.bodies.append(utils.geom.facetBox((.15,.15,.135),(.15,.15,.045),wallMask=15,material=steel)) > > fIDSII=O.bodies.append(utils.geom.facetBox((.15,.15,.045),(.15,.15,.045),wallMask=31,material=steel)) > > O.engines=[ > ForceResetter(), > > InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb(),Bo1_Wall_Aabb()]), > InteractionLoop( > > [Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom(),Ig2_Wall_Sphere_ScGeom()], > [Ip2_FrictMat_FrictMat_FrictPhys()], > [Law2_ScGeom_FrictPhys_CundallStrack()] > ), > NewtonIntegrator(damping=0.7,gravity=[0,0,-9.810]), > > > #qt.SnapshotEngine(iterPeriod=60000,fileBase='/home/wuxin/Desktop/Clump/78Fr07-',label='snapshooter'), > PyRunner(command='checkUnbalanced()',iterPeriod=1,label='checker'), > > > TranslationEngine(translationAxis=[1,0,0],velocity=0,ids=fIDSI,label='Transl'), > ] > O.dt=.25*utils.PWaveTimeStep() > > def makeClumpTemplate(): > relRadList1 = [.007,.0036] > relPosList1 = [[0,0,0],[0.0075,0,0]] > relRadList2 = [.0036,0.007,.0036] > relPosList2 = [[0.0060,0,0],[0,0,0],[-0.0060,0,0]] > templates= [] > > templates.append(clumpTemplate(relRadii=relRadList1,relPositions=relPosList1)) > > templates.append(clumpTemplate(relRadii=relRadList2,relPositions=relPosList2)) > O.bodies.replaceByClumps(templates,[.1,.15]) > > def checkUnbalanced(): > if O.iter==600: checker.command='makeClumpTemplate()' > if O.iter<500: return > > fIDSIII=O.bodies.append(utils.wall(max([b.state.pos[2]+b.shape.radius+0.020 > for b in O.bodies if > isinstance(b.shape,Sphere)]),axis=2,sense=-1,material=Mat)) > global plate > plate=O.bodies[fIDSIII] > plate.state.vel=(0,0,-.025) > O.engines=O.engines+[PyRunner(command='addPlotData()',iterPeriod=1000)] > if abs(O.forces.f(plate.id)[2])>=maxLoad: > Fzs=O.forces.f(plate.id)[2] > if Fzs==0: > Fzs=0.000000000000001 > G > KN > KN=0.000000000000000001 > for i in plate.intrs(): > KN=KN+i.phys.kn > G=a/(KN*(O.dt)) > plate.state.vel[2]=(G*(Fzs-maxLoad)) > for b in O.bodies: > if isinstance(b.shape,Sphere): > b.state.angVel[1]=0 > if abs(O.forces.f(plate.id)[2])>(maxLoad-1): > if abs(O.forces.f(plate.id)[2])<(maxLoad+1): > Transl.velocity=0.0010 > > > > def addPlotData(): > Fz=O.forces.f(plate.id)[2] > F = 0 > global i > for i in fIDSI: > F += O.forces.f(i)[0] > PX1=(O.bodies[i].state.pos[0]-O.bodies[i].state.refPos[0]) > SF=((0.30-PX1)*0.30) > > plot.addData(t=O.time,Fx=(-F/SF),PX=PX1,Fz=Fz,w=plate.state.pos[2]-plate.state.refPos[2],i=O.iter) > if (O.bodies[i].state.pos[0]-O.bodies[i].state.refPos[0])>0.050: > plot.saveDataTxt('175e6p03RW235.txt',vars=('i','PX','Fx','w','Fz')) > O.pause() > > plot.plots={'i':('w','Fz',),'PX':('Fx',)} > plot.plot() > > qt.Controller() > qt.View() > r=qt.Renderer() > > O.run() > > utils.waitIfBatch() > > -- > 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 > -- 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

