New question #264174 on Yade: https://answers.launchpad.net/yade/+question/264174
Hi all! I'm stilling studying parameters in "CpmMat" and "FrictMat" material types. In the posted scipt below, a sphere labeled "s1" is fixed at the origin. Another sphere, "s2", approaches and overlaps "s1", and then moves along the z axis. By doing this I want to know how the shear force varies over time between two spheres. However, I find that changing the poisson ratio from 1 to 20 has no effect on the forces along the z axis in these simulations for both the "CpmMat" and "FrictMat". It seems that they are merely the verticle components of normal stresses. Another question is that when poisson ratio equals zero, "s2" with "FrictMat" would immediately disappear when the simulation starts. I wonder how this happens. from yade import plot concreteId = O.materials.append(CpmMat( young = 1, frictionAngle = 0, poisson = 0, #defines poisson ratio relDuctility = 0, sigmaT = 0, epsCrackOnset = 1e-5 #low strain limit, )) frictId = O.materials.append(FrictMat( young=1, frictionAngle = 0, poisson = 1, )) s1 = utils.sphere(center = (0,0,0), radius = 0.5, material = concreteId) #assigns the material type s2 = utils.sphere(center = (1,0,0), radius = 0.5, material = concreteId) O.bodies.append([s1,s2]) s1.state.blockedDOFs = 'xyzXYZ' # holds s1 still O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb()], verletDist = 0), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom()], [Ip2_CpmMat_CpmMat_CpmPhys(), Ip2_FrictMat_FrictMat_FrictPhys()], [Law2_ScGeom_CpmPhys_Cpm(), Law2_ScGeom_FrictPhys_CundallStrack()], ), NewtonIntegrator(damping=0.3), PyRunner(command = 'addPlotData()', iterPeriod = 50), PyRunner(command = "Pushing()", iterPeriod = 1, label = "ctr"), ] O.dt=5e-7*utils.PWaveTimeStep() def addPlotData(): plot.addData(i=O.iter, fz = O.forces.f(s2.id)[2], # z component of force pz = s2.state.pos[2], # z coordinate fx = O.forces.f(s2.id)[0], # x component of force px = s2.state.pos[0], # x coordinate ) def Pushing(): s2.state.vel = (-0.1,0,0) #lets s2 overlap s1 if s2.state.pos[0] < 0.9: ctr.command = "Pushing2()" def Pushing2(): s2.state.vel = (0,0,0.1) #lets s2 move upward ctr.command = "Stop()" def Stop(): if s2.state.pos[2] > 0.5: O.pause() plot.saveDataTxt('poisson=0.txt') plot.plots = {'px' : ('fx'), 'pz':('fz')} plot.plot() Thanks! -- 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 : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp