Question #643798 on Yade changed: https://answers.launchpad.net/yade/+question/643798
Andrea Puglisi posted a new comment: In particular I don't undestand why a simple grid (connection of nodes and cylinders) works reasonably well, it does not work anymore as soon as I create pfacets. This is a minimal example --------------------------- from yade.gridpfacet import * ##### Parameter #### r=1 # base radius rr=0.1 #cyl radius phi=30. # friction angle E=1e7 # Young's modulus #### Engines #### O.engines=[ ForceResetter(), InsertionSortCollider([ Bo1_Sphere_Aabb(), Bo1_Wall_Aabb(), Bo1_PFacet_Aabb(), ]), InteractionLoop([ Ig2_GridNode_GridNode_GridNodeGeom6D(),#internal Ig2_Wall_Sphere_ScGeom(),#cyl-wall Ig2_Sphere_PFacet_ScGridCoGeom(), #cyl-facet ], [ Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False), # internal Ip2_FrictMat_FrictMat_FrictPhys() # external (cyl-wall, cyl-facet) ], [ Law2_ScGeom6D_CohFrictPhys_CohesionMoment(), # contact law for "internal" cylinder forces Law2_ScGeom_FrictPhys_CundallStrack(), # contact law for "external" cylinder forces ] ), NewtonIntegrator(gravity=(-0.,0,-10),damping=0.5,label='newton'), ] #### Creat materials #### O.materials.append( CohFrictMat( young=E,poisson=0.3,density=1000,frictionAngle=radians(phi),normalCohesion=1e10,shearCohesion=1e10,momentRotationLaw=True,label='cMat' ) ) # material to create the gridConnections O.materials.append( FrictMat( young=E,poisson=0.3,density=1000,frictionAngle=radians(phi),label='fMat' ) ) # material for general interactions #### Create box and wall #### wallId = O.bodies.append( wall(position=(0,0,0),sense=0, axis=2,color=[0,1,1],material='fMat') ) O.bodies[wallId].state.vel=Vector3(1.,0,0) O.bodies[wallId].mask=3 #### Create cylinder #### nodeIds=[] cylIds=[] nodeIds.append( O.bodies.append( gridNode([0,2*r,r],rr,wire=False,fixed=False,material='cMat',color=[1,0,0]) ) ) nodeIds.append( O.bodies.append( gridNode([0,2*r,3*r],rr,wire=False,fixed=False,material='cMat',color=[1,0,0]) ) ) nodeIds.append( O.bodies.append( gridNode([0,4*r,r],rr,wire=False,fixed=False,material='cMat',color=[1,0,0]) ) ) for id in nodeIds: O.bodies[id].bounded=1 O.bodies[id].mask=2 cylIds.append( O.bodies.append( gridConnection(nodeIds[1],nodeIds[0],rr,color=[1,0,0],material='fMat') ) ) cylIds.append( O.bodies.append( gridConnection(nodeIds[2],nodeIds[1],rr,color=[1,0,0],material='fMat') ) ) cylIds.append( O.bodies.append( gridConnection(nodeIds[0],nodeIds[2],rr,color=[1,0,0],material='fMat') ) ) #COMMENT THE FOLLOWING LINE AND PHYSICS SEEMS WORK WELL - OTHERWISE IT FALLS THROUGH THE FLOOR O.bodies.append( pfacet(nodeIds[0],nodeIds[1],nodeIds[2],wire=False,color=[1,1,0],highlight=False,material='fMat') ) #### For viewing #### from yade import qt qt.View() Gl1_Sphere.stripes=True qtr = qt.Renderer() #### Set a time step #### O.dt=1e-05 #### Allows to reload the simulation #### 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 : [email protected] Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp

