Question #690777 on Yade changed: https://answers.launchpad.net/yade/+question/690777
Status: Needs information => Open Ali HAIDAR gave more information on the question: Hello, Sorry about the link. The script is the following: But it needs the polyhedrons files I am using to run. Thank you from yade import plot,polyhedra_utils import pickle with open("/home/alihaidar/Desktop/data/Fusion/pickle_reducedvertices/tolerance=20mm/20-preducedfusion1", "rb") as fp: v1 = pickle.load(fp) with open("/home/alihaidar/Desktop/data/Fusion/pickle_reducedvertices/tolerance=20mm/20-preducedfusion2", "rb") as fp: v2 = pickle.load(fp) with open("/home/alihaidar/Desktop/data/Fusion/pickle_reducedvertices/tolerance=20mm/20-preducedfusion3", "rb") as fp: v3 = pickle.load(fp) with open("/home/alihaidar/Desktop/data/Fusion/pickle_reducedvertices/tolerance=20mm/20-preducedfusion4", "rb") as fp: v4 = pickle.load(fp) with open("/home/alihaidar/Desktop/data/Fusion/pickle_reducedvertices/tolerance=20mm/20-preducedfusion5", "rb") as fp: v5 = pickle.load(fp) with open("/home/alihaidar/Desktop/data/Fusion/pickle_reducedvertices/tolerance=20mm/20-preducedfusion6", "rb") as fp: v6 = pickle.load(fp) with open("/home/alihaidar/Desktop/data/Fusion/pickle_reducedvertices/tolerance=20mm/20-preducedfusion7", "rb") as fp: v7 = pickle.load(fp) with open("/home/alihaidar/Desktop/data/Fusion/pickle_reducedvertices/tolerance=20mm/20-preducedfusion8", "rb") as fp: v8 = pickle.load(fp) with open("/home/alihaidar/Desktop/data/Fusion/pickle_reducedvertices/tolerance=20mm/20-preducedfusion9", "rb") as fp: v9 = pickle.load(fp) with open("/home/alihaidar/Desktop/data/Fusion/pickle_reducedvertices/tolerance=20mm/20-preducedfusion10", "rb") as fp: v10 = pickle.load(fp) with open("/home/alihaidar/Desktop/data/Fusion/pickle_reducedvertices/tolerance=20mm/20-preducedfusion11", "rb") as fp: v11 = pickle.load(fp) with open("/home/alihaidar/Desktop/data/Fusion/pickle_reducedvertices/tolerance=20mm/20-preducedfusion12", "rb") as fp: v12 = pickle.load(fp) with open("/home/alihaidar/Desktop/data/Fusion/pickle_reducedvertices/tolerance=20mm/20-preducedfusion13", "rb") as fp: v13 = pickle.load(fp) with open("/home/alihaidar/Desktop/data/Fusion/pickle_reducedvertices/tolerance=20mm/20-preducedfusion14", "rb") as fp: v14 = pickle.load(fp) with open("/home/alihaidar/Desktop/data/Fusion/pickle_reducedvertices/tolerance=20mm/20-preducedfusion15", "rb") as fp: v15 = pickle.load(fp) m = PolyhedraMat() m.density = 2607 #kg/m^3 m.frictionAngle = 0.3 #rad #m.young = 1E10 #Pa #m.poisson = 20000/1E6 m2= PolyhedraMat() m2.frictionAngle = 0.3 #rad m2.young = 1E100 x=.3 y=.3 z=.2 a=b=0.04 i=0 while a<=(x-0.05): while b<=(y-0.05): O.bodies.append([ polyhedra_utils.polyhedra(material=m,v=v1), polyhedra_utils.polyhedra(material=m,v=v2), polyhedra_utils.polyhedra(material=m,v=v3), polyhedra_utils.polyhedra(material=m,v=v4), polyhedra_utils.polyhedra(material=m,v=v5), polyhedra_utils.polyhedra(material=m,v=v6), polyhedra_utils.polyhedra(material=m,v=v7), polyhedra_utils.polyhedra(material=m,v=v8), polyhedra_utils.polyhedra(material=m,v=v9), polyhedra_utils.polyhedra(material=m,v=v10), polyhedra_utils.polyhedra(material=m,v=v11), polyhedra_utils.polyhedra(material=m,v=v12), polyhedra_utils.polyhedra(material=m,v=v13), polyhedra_utils.polyhedra(material=m,v=v14), polyhedra_utils.polyhedra(material=m,v=v15), ] ) if i==0 or i==5 or i==13 or i==10: O.bodies[-1].state.pos=(a,b,.04-z) O.bodies[-2].state.pos=(a,b,.12-z) O.bodies[-3].state.pos=(a,b,.2-z) O.bodies[-4].state.pos=(a,b,.28-z) O.bodies[-5].state.pos=(a,b,.36-z) O.bodies[-6].state.pos=(a,b,.44-z) O.bodies[-7].state.pos=(a,b,.52-z) O.bodies[-8].state.pos=(a,b,.6-z) O.bodies[-9].state.pos=(a,b,.68-z) O.bodies[-10].state.pos=(a,b,.76-z) O.bodies[-11].state.pos=(a,b,.84-z) O.bodies[-12].state.pos=(a,b,.92-z) O.bodies[-13].state.pos=(a,b,1-z) O.bodies[-14].state.pos=(a,b,1.08-z) O.bodies[-15].state.pos=(a,b,1.16-z) if i==1 or i==6 or i==12 or i==8: O.bodies[-15].state.pos=(a,b,.04-z) O.bodies[-14].state.pos=(a,b,.12-z) O.bodies[-13].state.pos=(a,b,.2-z) O.bodies[-12].state.pos=(a,b,.28-z) O.bodies[-11].state.pos=(a,b,.36-z) O.bodies[-10].state.pos=(a,b,.44-z) O.bodies[-9].state.pos=(a,b,.52-z) O.bodies[-8].state.pos=(a,b,.6-z) O.bodies[-7].state.pos=(a,b,.68-z) O.bodies[-6].state.pos=(a,b,.76-z) O.bodies[-5].state.pos=(a,b,.84-z) O.bodies[-4].state.pos=(a,b,.92-z) O.bodies[-3].state.pos=(a,b,1-z) O.bodies[-2].state.pos=(a,b,1.08-z) O.bodies[-1].state.pos=(a,b,1.16-z) if i==4 or i==15 or i==11 or i==9: O.bodies[-12].state.pos=(a,b,.04-z) O.bodies[-3].state.pos=(a,b,.12-z) O.bodies[-9].state.pos=(a,b,.2-z) O.bodies[-5].state.pos=(a,b,.28-z) O.bodies[-10].state.pos=(a,b,.36-z) O.bodies[-15].state.pos=(a,b,.44-z) O.bodies[-4].state.pos=(a,b,.52-z) O.bodies[-1].state.pos=(a,b,.6-z) O.bodies[-6].state.pos=(a,b,.68-z) O.bodies[-8].state.pos=(a,b,.76-z) O.bodies[-2].state.pos=(a,b,.84-z) O.bodies[-7].state.pos=(a,b,.92-z) O.bodies[-11].state.pos=(a,b,1-z) O.bodies[-14].state.pos=(a,b,1.08-z) O.bodies[-13].state.pos=(a,b,1.16-z) if i==3 or i==7 or i==2 or i==14: O.bodies[-13].state.pos=(a,b,.04-z) O.bodies[-14].state.pos=(a,b,.12-z) O.bodies[-11].state.pos=(a,b,.2-z) O.bodies[-7].state.pos=(a,b,.28-z) O.bodies[-2].state.pos=(a,b,.36-z) O.bodies[-8].state.pos=(a,b,.44-z) O.bodies[-6].state.pos=(a,b,.52-z) O.bodies[-1].state.pos=(a,b,.6-z) O.bodies[-4].state.pos=(a,b,.68-z) O.bodies[-15].state.pos=(a,b,.76-z) O.bodies[-10].state.pos=(a,b,.84-z) O.bodies[-5].state.pos=(a,b,.92-z) O.bodies[-9].state.pos=(a,b,1-z) O.bodies[-3].state.pos=(a,b,1.08-z) O.bodies[-12].state.pos=(a,b,1.16-z) b=b+0.07 i=i+1 a=a+0.07 b=0.04 f1=utils.facet([(0,0,0),(0,0,z),(x,0,0)],material=m2) f2=utils.facet([(x,0,z),(0,0,z),(x,0,0)],material=m2) f3=utils.facet([(x,0,z),(x,y,z),(x,0,0)],material=m2) f4=utils.facet([(x,y,0),(x,y,z),(x,0,0)],material=m2) f5=utils.facet([(x,y,0),(x,y,z),(0,y,z)],material=m2) f6=utils.facet([(x,y,0),(0,y,0),(0,y,z)],material=m2) f7=utils.facet([(0,0,0),(0,y,0),(0,y,z)],material=m2) f8=utils.facet([(0,0,0),(0,0,z),(0,y,z)],material=m2) f9=utils.facet([(0,0,0),(0,-.5*y,0),(x,-.5*y,0)],material=m2) f10=utils.facet([(0,0,0),(x,-.5*y,0),(x,0,0)],material=m2) f11=utils.facet([(0,0,z),(0,0,5*z),(x,0,z)],material=m2) f12=utils.facet([(x,0,5*z),(0,0,5*z),(x,0,z)],material=m2) f13=utils.facet([(x,0,5*z),(x,y,5*z),(x,0,z)],material=m2) f14=utils.facet([(x,y,z),(x,y,5*z),(x,0,z)],material=m2) f15=utils.facet([(x,y,z),(x,y,5*z),(0,y,5*z)],material=m2) f16=utils.facet([(x,y,z),(0,y,z),(0,y,5*z)],material=m2) f17=utils.facet([(0,0,z),(0,y,z),(0,y,5*z)],material=m2) f18=utils.facet([(0,0,z),(0,0,5*z),(0,y,5*z)],material=m2) O.bodies.append([f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18]) f19=utils.facet([(0,y,0),(0,1.5*y,0),(x,y,0)],fixed=True,material=m2) f20=utils.facet([(x,y,0),(x,1.5*y,0),(0,1.5*y,0)],fixed=True,material=m2) f=0 t=0 n=0 A=.3*.3 V=0.1 F=-13500 O.bodies.append([ utils.facet([(0,0,0),(0,0,-z),(x,0,0)],material=m2,fixed=True), utils.facet([(x,0,-z),(0,0,-z),(x,0,0)],material=m2,fixed=True), utils.facet([(x,0,-z),(x,y,-z),(x,0,0)],material=m2,fixed=True), utils.facet([(x,y,0),(x,y,-z),(x,0,0)],material=m2,fixed=True), utils.facet([(x,y,0),(x,y,-z),(0,y,-z)],material=m2,fixed=True), utils.facet([(x,y,0),(0,y,0),(0,y,-z)],material=m2,fixed=True), utils.facet([(0,0,0),(0,y,0),(0,y,-z)],material=m2,fixed=True), utils.facet([(0,0,0),(0,0,-z),(0,y,-z)],material=m2,fixed=True), utils.facet([(x,0,-z),(0,0,-z),(0,y,-z)],material=m2,fixed=True), utils.facet([(x,0,-z),(x,y,-z),(0,y,-z)],material=m2,fixed=True),f19,f20 ]) O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Polyhedra_Aabb(),Bo1_Facet_Aabb(),Bo1_Wall_Aabb()],verletDist=0.1), InteractionLoop( [Ig2_Polyhedra_Polyhedra_PolyhedraGeom(),Ig2_Facet_Polyhedra_PolyhedraGeom(),Ig2_Wall_Polyhedra_PolyhedraGeom()], [Ip2_PolyhedraMat_PolyhedraMat_PolyhedraPhys()], [Law2_PolyhedraGeom_PolyhedraPhys_Volumetric()] ), NewtonIntegrator(gravity=(0,0,-9.81),damping=0.5), PyRunner(command='checkUnbalanced()',realPeriod=2,label='checker'), ] O.dt=.05*polyhedra_utils.PWaveTimeStep() def checkUnbalanced(): if O.iter<100000: return if unbalancedForce()>.2: return m.frictionAngle=.5 m2.frictionAngle=.5 for i in O.interactions: i.phys.tangensOfFrictionAngle=tan(.5) O.bodies.append(wall(max([b.state.pos[2]+0.05 for b in O.bodies if isinstance(b.shape,Polyhedra)]),axis=2,sense=-1,material=m2)) global plate plate=O.bodies[-1] plate.state.blockedDOFs='xyXYZ' plate.state.mass=.1 O.forces.setPermF(plate.id,(0,0,F)) checker.command='pos()' def pos(): global l l=plate.state.pos[2] checker.command='shear()' def shear(): f1.state.vel=(0,V,0) f2.state.vel=(0,V,0) f3.state.vel=(0,V,0) f4.state.vel=(0,V,0) f5.state.vel=(0,V,0) f6.state.vel=(0,V,0) f7.state.vel=(0,V,0) f8.state.vel=(0,V,0) f9.state.vel=(0,V,0) f10.state.vel=(0,V,0) f11.state.vel=(0,V,0) f12.state.vel=(0,V,0) f13.state.vel=(0,V,0) f14.state.vel=(0,V,0) f15.state.vel=(0,V,0) f16.state.vel=(0,V,0) f17.state.vel=(0,V,0) f18.state.vel=(0,V,0) O.engines=O.engines+[PyRunner(command='addData()',iterPeriod=100)] def addData(): f=-sum(O.forces.f(b.id)[1] for b in [f1,f2,f3,f4,f5,f6,f7,f8,plate,f19,f20]) A=(.3*(.3-V*O.dt*O.iter)) t=f/A/1000 print('Shear force',f,'Contact Area',A,'shear stress',t,'KPa') n=(O.forces.f(plate.id)[2]+F)/(.3*.3)/1000 print('normal stress',n,'KPa') d=f1.state.pos[1] d2=(plate.state.pos[2]-l) plot.addData(Shear_displacement=d,Normal_disp=d2,Shear_Stress=t,Normal_Stress=n,i=O.iter) plot.plots={'Shear_displacement':('Shear_Stress'),'Shear_displacement ':('Normal_Stress'),'Shear_displacement ':'Normal_disp'} plot.plot() yade.qt.View() O.run() O.saveTmp() -- 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