Question #693455 on Yade changed: https://answers.launchpad.net/yade/+question/693455
Status: Answered => Open onyourself is still having a problem: hi, > depneding on "to see" is a bad approach. The only way how to be sure is NOT checking 3D view, the only way how to be sure are the numbers in the model. got it. then i change my code as you suggest(print(f.state.pos)). the positions printed twice are the same. please help me figure out why. i try my best to minimize my code. ############################################ from yade.gridpfacet import * from yade import pack, plot from random import random from numpy import * import math import os #parameters rParticle = 0.14e-3#diameter0.28 rRelFuzz=.0005 mi,ma = (-500e-3,0.,0.),(500e-3,0,250e-3) length = 10e-3, width = int(1000e-3), height = int(250e-3), # prestress preStress = -3e9, # facets division nw = int(240) nh = int(150) #meterials######## frictMat = O.materials.append(FrictMat( young=4.0e6,poisson=.3,frictionAngle=26,density=910e+6 )) facets = [] nw2 = (250) nh = (50) width = 1000e-3 height = 250e-3 for r in xrange(nw2): for h in xrange(nh): v11 = Vector3( -.5*width + (r+0)*width/nw2, 5e-3, 0 ) v12 = Vector3( -.5*width + (r+1)*width/nw2, 5e-3, 0 ) v13 = Vector3( -.5*width + (r+1)*width/nw2, -5e-3, 0 ) v14 = Vector3( -.5*width + (r+0)*width/nw2, -5e-3, 0 ) #print (v11, v12, v13, v14) f11 = facet((v11,v12,v13),color=(0,0,1),material=frictMat) f12 = facet((v11,v13,v14),color=(0,0,1),material=frictMat) v21 = Vector3( +.5*width, -5e-3, height*(h+0)/float(nh) ) v22 = Vector3( +.5*width, 5e-3, height*(h+0)/float(nh) ) v23 = Vector3( +.5*width, 5e-3, height*(h+1)/float(nh) ) v24 = Vector3( +.5*width, -5e-3, height*(h+1)/float(nh) ) #print (v21, v22, v23, v24) f21 = facet((v21,v22,v23),color=(0,0,1),material=frictMat) f22 = facet((v21,v23,v24),color=(0,0,1),material=frictMat) v31 = Vector3( +.5*width - (r+0)*width/nw2, +5e-3, 250e-3 ) v32 = Vector3( +.5*width - (r+1)*width/nw2, +5e-3, 250e-3 ) v33 = Vector3( +.5*width - (r+1)*width/nw2, -5e-3, 250e-3 ) v34 = Vector3( +.5*width - (r+0)*width/nw2, -5e-3, 250e-3 ) #print (v31, v32, v33, v34) f31 = facet((v31,v32,v33),color=(0,0,1),material=frictMat) f32 = facet((v31,v33,v34),color=(0,0,1),material=frictMat) v41 = Vector3( -.5*width, -5e-3, height*(h+0)/float(nh) ) v42 = Vector3( -.5*width, 5e-3, height*(h+0)/float(nh) ) v43 = Vector3( -.5*width, 5e-3, height*(h+1)/float(nh) ) v44 = Vector3( -.5*width, -5e-3, height*(h+1)/float(nh) ) #print (v41, v42, v43, v44) f41 = facet((v41,v42,v43),color=(0,0,1),material=frictMat) f42 = facet((v41,v43,v44),color=(0,0,1),material=frictMat) facets.extend((f11,f12,f21,f22,f31,f32,f41,f42)) O.bodies.append(facets) mass = O.bodies[0].state.mass for f in facets: f.state.mass = mass f.shape.color=(200,255,240) #f.state.blockedDOFs = 'XYZz' # apply prestress to facets #def addForces(): preStress = -3e9 for f in facets: n = f.shape.normal a = f.shape.area O.forces.addF(f.id,preStress*a*n) #O.forces.setPermF(f.id,preStress*a*n) # print "force" O.engines=[ ForceResetter(), InsertionSortCollider([ #Bo1_Box_Aabb(), Bo1_Sphere_Aabb(), Bo1_GridConnection_Aabb(), Bo1_Facet_Aabb(), ]), InteractionLoop([ Ig2_Sphere_Sphere_ScGeom(), #Ig2_Box_Sphere_ScGeom(), Ig2_GridNode_GridNode_GridNodeGeom6D(), Ig2_Sphere_GridConnection_ScGridCoGeom(), Ig2_GridConnection_GridConnection_GridCoGridCoGeom(), Ig2_Facet_Sphere_ScGeom(), ], [ Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False), # internal cylinder physics Ip2_FrictMat_FrictMat_FrictPhys() # physics for external interactions, i.e., cylinder-cylinder, sphere-sphere, cylinder-sphere #Ip2_FrictMat_CpmMat_FrictPhys(), ], [ Law2_ScGeom_FrictPhys_CundallStrack(), # contact law for sphere-sphere Law2_ScGridCoGeom_FrictPhys_CundallStrack(), # contact law for cylinder-sphere Law2_ScGeom6D_CohFrictPhys_CohesionMoment(), # contact law for "internal" cylinder forces Law2_GridCoGridCoGeom_FrictPhys_CundallStrack() # contact law for cylinder-cylinder interaction #Law2_ScGeom_CpmPhys_Cpm(), ] ), GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.1,label='ts'), #triax, #TriaxialStateRecorder(iterPeriod=100,file='WallStresses'+table.key), NewtonIntegrator(gravity=(0,0,-9.81),damping=0.1,label='newton'), #PyRunner(iterPeriod=1,command="addForces()"), PyRunner(command='plotAddData()',iterPeriod=10), #PyRunner(iterPeriod=20,command='history()',label='recorder'), ] facet1 = facets[0] # or any other valid index print(facet1.state.pos) O.step() print(facet1.state.pos) # should be different from the first one ##################################################### -- 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