New question #670352 on Yade: https://answers.launchpad.net/yade/+question/670352
Hello everyone! I am interested in the Sphere-GridConnection and Sphere-PFacet contacts. The problem is that I can not have the two wrappers 'Ig2_Sphere_PFacet_ScGridCoGeom' and 'Ig2_Sphere_GridConnection_ScGridCoGeom' together with the law 'Law2_ScGridCoGeom_FrictPhys_CundallStrack()', as this returns me an ambiguous dispatch error (I am using Yade 2018-02-05.git-243ee13). I understand that the law 'Law2_ScGridCoGeom_FrictPhys_CundallStrack()' is important to take into account a proper frictional force between Sphere and GridConnection. In the simple script below [please, use it however you want ;-)], after using a comment mark in the law 'Law2_ScGridCoGeom_FrictPhys_CundallStrack()', do the forces calculated in the GridConnections are divided and applied in their two GridNodes? I appreciate any help with this. Thank you very much, Marcus. ### Script ### # -*- coding: utf-8 from yade import qt,plot from yade.gridpfacet import * phi=20. E=3.*1e8 color=[255./255.,102./255.,0./255.] r=0.005 r2=0.0 O.engines=[ ForceResetter(), InsertionSortCollider([ Bo1_PFacet_Aabb(), Bo1_Sphere_Aabb(), Bo1_GridConnection_Aabb() ]), InteractionLoop([ Ig2_GridNode_GridNode_GridNodeGeom6D(), Ig2_Sphere_PFacet_ScGridCoGeom(), Ig2_Sphere_GridConnection_ScGridCoGeom(), ], [ Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=True), Ip2_FrictMat_FrictMat_FrictPhys() ], [ Law2_ScGeom6D_CohFrictPhys_CohesionMoment(), Law2_ScGeom_FrictPhys_CundallStrack(), Law2_ScGridCoGeom_FrictPhys_CundallStrack(), ### Comment this line ### ] ), GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.1,label='ts'), NewtonIntegrator(gravity=(0,-9.81,0),damping=.8,label='newton'), ] O.materials.append( CohFrictMat( young=E,poisson=0.3,density=2650,frictionAngle=radians(phi),normalCohesion=3e100,shearCohesion=3e100,momentRotationLaw=True,label='gridNodeMat' ) ) O.materials.append( FrictMat( young=E,poisson=0.5,density=2650,frictionAngle=radians(phi),label='sphereMat' ) ) # SPHERES O.bodies.append( sphere(center=(Vector3(0.025,-0.035,0.015)),radius=.005,material='sphereMat',fixed=False) ) O.bodies.append( sphere(center=(Vector3(0.045,-0.035,0.015)),radius=.005,material='sphereMat',fixed=False) ) # GRID L=0.1 #length l=0.05 #width nbL=10 #number of nodes for the length nbl=5 #number of nodes for the width r=L/100. #radius color2=[40./255.,102./255.,50./255.] nodesIds=[] #Creating all nodes: for i in range(0,nbL): for j in range(0,nbl): nodesIds.append( O.bodies.append(gridNode([i*L/nbL,-0.1,j*l/nbl],r,wire=False,fixed=False,material='gridNodeMat',color=color2)) ) #Creating connection between the nodes for i in range(0,len(nodesIds)): for j in range(i+1,len(nodesIds)): dist=(O.bodies[nodesIds[i]].state.pos - O.bodies[nodesIds[j]].state.pos).norm() if(dist<=L/nbL*1.01): O.bodies.append( gridConnection(nodesIds[i],nodesIds[j],r,material='gridNodeMat',color=color2) ) #PFacet Connection O.bodies.append( gridConnection(nodesIds[11],nodesIds[17],r,color=color2,material='gridNodeMat') ) #PFacet O.bodies.append( pfacet(nodesIds[11],nodesIds[17],nodesIds[16],wire=False,material='sphereMat',color=color2) ) O.bodies.append( pfacet(nodesIds[11],nodesIds[12],nodesIds[17],wire=False,material='sphereMat',color=color2) ) # Constraining the ends of the geogrid for i in range(nodesIds[0],nodesIds[4]): O.bodies[i].state.blockedDOFs='xyzXZ' for j in range(nodesIds[-1]-(5),nodesIds[-1]+1): O.bodies[j].state.blockedDOFs='xyzXZ' qt.Controller() qtv = qt.View() qtr = qt.Renderer() qtr.light2=True qtr.bgColor=[1,1,1] 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 : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp