New question #696028 on Yade: https://answers.launchpad.net/yade/+question/696028
Hi all, I'm new to Yade. I have a question regarding the normalCohesion value in the yade.wrapper.CohFrictMath I've written a simple code, with two nodes connected by a gridconnection. I've applied a permanent force on the nodes along the x-direction (like a normal tensile test) How can I determine the maximum applied force at which the cohesive link breaks? In the following code the normalCohesion value is set to 1e5 and if Fapplied<4 the cohesive link doesn't break, when Fapplied>5 the choesive link breaks. Is there an analytical way to compute the Fapplied that breaks the cohesive link? # encoding: utf-8 """ Tensile test with 2 nodes and one gridconnection """ from builtins import zip from yade import qt from yade.gridpfacet import * from numpy import linspace from yade import plot #Materials O.materials.append(CohFrictMat(young=8e5,poisson=0.3,density=4e3,frictionAngle=radians(30),normalCohesion=1e5,shearCohesion=1e5,momentRotationLaw=True,label='gridNodeMat')) O.materials.append(CohFrictMat(young=8e5,poisson=0.3,density=4e3,frictionAngle=radians(30),normalCohesion=1e5,shearCohesion=1e5,momentRotationLaw=True,label='gridCoMat')) ### Engines need to be defined first since the function gridConnection creates the interaction O.engines=[ ForceResetter(), InsertionSortCollider([ Bo1_Sphere_Aabb(), Bo1_GridConnection_Aabb(), ]), InteractionLoop( # Geometric interactions [ Ig2_GridNode_GridNode_GridNodeGeom6D(), Ig2_GridConnection_GridConnection_GridCoGridCoGeom(), Ig2_Sphere_GridConnection_ScGridCoGeom(), # used for the cohesive sphere-cylinder interaction ], [ # Interaction phusics Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False), ], # Interaction law [ Law2_ScGeom6D_CohFrictPhys_CohesionMoment(), Law2_ScGridCoGeom_CohFrictPhys_CundallStrack(), Law2_GridCoGridCoGeom_FrictPhys_CundallStrack(),# used for the cohesive sphere-cylinder interaction ] ), NewtonIntegrator(gravity=(0,0,0),damping=0,label='newton'), PyRunner(command='addPlotdata()',iterPeriod=100), ] #Timestep O.dt=5e-07 rCyl=0.01 nL=2 L=0.3 ### Create the two nodes : nodesIds=[] for i in linspace(0,L,nL): nodesIds.append( O.bodies.append( gridNode([i,0,0],rCyl,wire=True,fixed=False,material='gridNodeMat') ) ) ### Now create connection between the nodes for i,j in zip( nodesIds[:-1], nodesIds[1:]): O.bodies.append( gridConnection(i,j,rCyl, material='gridCoMat' ) ) # rename the two nodes s1 = O.bodies[0] s2 = O.bodies[1] #Define what you want to plot plot.plots = {'i': 'eps'} #Apply 2 normal force along the x direction on the nodes (Simulating tensile stress) Fapplied = 4 O.forces.setPermF(int(nodesIds[0]), (-Fapplied, 0, 0)) O.forces.setPermF(int(nodesIds[-1]), (Fapplied, 0, 0)) def addPlotdata(): global eps,Ttot deltaL = s1.state.pos[0]-s2.state.pos[0] eps = deltaL/L #strain along the direction of the applied stress plot.addData(i=O.iter, eps=eps) plot.plot() qt.View() O.saveTmp() O.run() O.stopAtIter=int(0.5/O.dt) -- 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