New question #706952 on Yade: https://answers.launchpad.net/yade/+question/706952
Hi folks, I'm trying to simulate pullout test, It gives me Segmentation fault error. when I look deeper, I found when wall and grid comes in contact it throws an error. I am using WSL with specification Description: Ubuntu 22.04.2 LTS Release: 22.04 Codename: jammy a MWE is attached from builtins import range from yade import qt, plot from yade.gridpfacet import * rate=0.005 #1.66e-4 compFricDegree=30 finalFricDegree = 40 stabilityThreshold = 0.01 young = 5e6 O.engines = [ ForceResetter(), InsertionSortCollider([ Bo1_Sphere_Aabb(), Bo1_GridConnection_Aabb(), Bo1_Wall_Aabb(), ]), InteractionLoop([ Ig2_Sphere_Sphere_ScGeom(), Ig2_Wall_Sphere_ScGeom(), Ig2_Sphere_GridConnection_ScGridCoGeom(), Ig2_GridNode_GridNode_GridNodeGeom6D(), Ig2_GridConnection_GridConnection_GridCoGridCoGeom()], [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True, setCohesionOnNewContacts=True),Ip2_FrictMat_FrictMat_FrictPhys()], [ Law2_ScGeom6D_CohFrictPhys_CohesionMoment(), Law2_ScGeom_FrictPhys_CundallStrack(), Law2_ScGridCoGeom_FrictPhys_CundallStrack(), Law2_GridCoGridCoGeom_FrictPhys_CundallStrack(),] ), GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.1, label='ts'), NewtonIntegrator(gravity=(0, -9.81, 0), damping=.5, label='newton'), ] O.materials.append(FrictMat(young=young, poisson=0.5, frictionAngle=radians(compFricDegree), density=2600, label='spheres')) O.materials.append(FrictMat(young=young, poisson=0.5, frictionAngle=0, density=0, label='walls')) O.materials.append(CohFrictMat(young=1.325e8, poisson=0.40, density=900, frictionAngle=radians(10), normalCohesion=1.1e8, shearCohesion=1.1e8, momentRotationLaw=True, label='spheremat')) ### Parameters of a rectangular grid ### L = 25*38/1000 #length [m] l = 13*38/1000 #width [m] nbL = 25+1 #number of nodes for the length [#] nbl = 13+1 #number of nodes for the width [#] r = 0.008/2 # L / 100. #radius color = [255. / 255., 102. / 255., 0. / 255.] nodesIds = [] #Create all nodes first : for i in range(0, nbL): for j in range(0, nbl): nodesIds.append(O.bodies.append(gridNode([i*L/nbL, 0.5, 0.24+j*l/nbl], r, wire=False, fixed=False, material='spheremat', color=color))) #Create connection between the nodes for i in range(0, len(nodesIds)): for j in range(i + 1, len(nodesIds)): dist = (O.bodies[i].state.pos - O.bodies[j].state.pos).norm() if (dist <= L / nbL * 1.01): O.bodies.append(gridConnection(i, j, r, color=color)) for i in range (0, nbl): O.bodies[i].state.blockedDOFs='xyz' O.bodies[i].state.vel[0] = 0 for i in range (len(nodesIds)-nbl, len(nodesIds)): O.bodies[i].state.blockedDOFs='xyz' O.bodies[i].state.vel[0] = 0 # O.bodies.append(geom.facetBox((.5, .5, .5), (.5, .5, .5), wallMask=55)) sp = pack.SpherePack() # sp.makeCloud(Vector3(0,0,0), Vector3(1,0.49,1), rMean=.07, rRelFuzz=.3) #sp.makeCloud(Vector3(0,0.51,0), Vector3(1,1,1), rMean=.07, rRelFuzz=.3) #O.bodies.append([sphere(center, rad, material='spheres') for center, rad in sp]) #O.bodies.append(sphere(center=(Vector3(0.5, 1, 0.5)), radius=.05, material='spheres', fixed=False)) O.bodies.append(sphere(center=(Vector3(0.45, 1, 0.45)), radius=.05, material='spheres', fixed=False)) #O.bodies.append(sphere(center=(Vector3(0.55, 1, 0.55)), radius=.05, material='spheres', fixed=False)) O.bodies.append(wall(0, axis=1, sense=1)) plate = O.bodies[-1] plate.state.vel = (0, 0.3, 0) I appreciate any help you guys could provide. thanks -- 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