Question #663620 on Yade changed: https://answers.launchpad.net/yade/+question/663620
Status: Answered => Open Criss Zanelli is still having a problem: Thanks for answering, Bruno. My script by now is really simple. I only create the geometry (the wall and the floor), then in the engine only acts the gravity. Please if you can run my script in order to check the the magnitud of the unbal force (ploted) I would really appreciate it. #Script from yade import qt from numpy import arange import numpy as np import random from yade import polyhedra_utils from yade import plot aceleration=0 #m/s2 damping=0.80 #O.dt=1e-9 m = PolyhedraMat() m.density = 2500 #kg/m3 m.kn = 1e7 #Pa m.ks = 1e7 #Pa m.young = 6.02e11 #Pa m.frictionAngle = 0.610 #rad35 O.materials.append(m) mfloor = PolyhedraMat() mfloor.density = 1e10 #kg/m3 mfloor.kn = 1e15 #Pa mfloor.ks = 1e15 #Pa mfloor.young = 6.02e11 #Pa mfloor.frictionAngle = 0.873 #rad50 O.materials.append(mfloor) # dimenssions of the pirca **************************************************** Length=6 #m Heigth=1.0 #m Width=0.35 # dimensions of the rock blocks **************************************************** ancho = Width #m largo = 0.3 #m alto = .25 #m N=int(Heigth/alto) M=int(Length/largo) print 'Numero de filas', N print 'Altura de pirca', Heigth,'m' print 'Aceleracion total', aceleration,'m/s2' # composition of the wall************************************************************ vertices1 = [[0,0,0],[ancho,0,0],[ancho,largo,0],[ancho,largo,alto],[0,largo,0],[0,largo,alto],[0,0,alto],[ancho,0,alto]] for i in range(0,M): for j in range(0,N): b = polyhedra_utils.polyhedra(m,v=vertices1) b.state.pos = (0,(i+1)*largo,(j+1)*alto) O.bodies.append(b) # restrinction of the degree of freedom lateral **************************************** vertices2 = [[0,0,0],[ancho,0,0],[ancho,0.1,0],[ancho,0.1,Heigth],[0,0.1,0],[0,0.1,Heigth],[0,0,Heigth],[ancho,0,Heigth]] rigth = polyhedra_utils.polyhedra(m,v=vertices2, color=(.6,.4,.3)) rigth.state.pos = (0,0.1,Heigth/2+alto/2) O.bodies.append(rigth) left = polyhedra_utils.polyhedra(m,v=vertices2,color=(.6,.4,.3)) left.state.pos = (0,Length+.2,Heigth/2+alto/2) O.bodies.append(left) # floor *********************************************************** vertices3 = [[-1,-1,0],[-1,7,0],[4,-1,0],[4,7,0],[-1,-1,-0.1],[-1,7,-0.1],[4,-1,-0.1],[4,7,-0.1]] floor = polyhedra_utils.polyhedra(mfloor,v=vertices3, color=(.6,.4,.3)) floor.state.pos = (1.5,3,0.075) O.bodies.append(floor) O.bodies[80].state.blockedDOFs='xyz' O.bodies[81].state.blockedDOFs='xyz' O.bodies[82].state.blockedDOFs='xyz' #FORCE *********************************************** #def addF(): # for a in range (0,M): # O.forces.addF(N*a, (523.43,0,0), permanent=True) # O.forces.addF(N*a+1, (373.88,0,0), permanent=True) # O.forces.addF(N*a+2, (224.33,0,0), permanent=True) # O.forces.addF(N*a+3, (74.78,0,0), permanent=True) # ENGINE ******************************************************************************** def checkUnbalanced(): if unbalancedForce()<.01: # to ensure stability O.pause() plot.saveDataTxt('bbb.txt.bz2') if O.iter>0: print O.bodies[36].state.pos[0], O.bodies[37].state.pos[0], O.bodies[38].state.pos[0],O.bodies[39].state.pos[0] def addPlotData(): #plot the displacement of each block of the column located in the midle of the wall plot.addData(iteracion_distrib1=O.iter,Unbalanced=unbalancedForce()) plot.plots={'iteracion_distrib1':('Unbalanced')} O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Polyhedra_Aabb()],label='collider'), InteractionLoop( [Ig2_Polyhedra_Polyhedra_PolyhedraGeom(),Ig2_Facet_Polyhedra_PolyhedraGeom()], [Ip2_PolyhedraMat_PolyhedraMat_PolyhedraPhys()], # collision "physics" [Law2_PolyhedraGeom_PolyhedraPhys_Volumetric()] # contact law -- apply forces ), NewtonIntegrator(damping=damping,gravity=(aceleration,0,-9.81)), # constant aceleration in x PyRunner(command='checkUnbalanced()',iterPeriod=50,label='checker'), PyRunner(command='addPlotData()',iterPeriod=50), # PyRunner(command='addF()',iterPeriod=100), ] collider.verletDist=.1 plot.live=True plot.plot(subPlots=True) #print ('D_36 %d D_37 %d D_38 %d D_39 d%'%(O.bodies[36].state.pos[0], O.bodies[37].state.pos[0], #O.bodies[38].state.pos[0],O.bodies[39].state.pos[0])) qt.Controller() qt.View() R=yade.qt.Renderer() R.bgColor=(1.,1.,1.) # end ******************************************* -- 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