yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #25195
[Question #696028]: GridConnection traction test, maximum force
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.