← Back to team overview

yade-users team mailing list archive

[Question #683380]: define bond strength

 

New question #683380 on Yade:
https://answers.launchpad.net/yade/+question/683380

Hi,
I am using CohFrictMat to investigate the bond effect, starting from very simple assembly, for example: two sands bonded by two cements, fix one sand and give a constant velocity on another sand. Here is the script running on Yade 2018.02b, ubuntu 18.04.

from yade import pack, plot

cement = CohFrictMat(young=30e9,poisson=0.3,frictionAngle=radians(30),density=2650.0,normalCohesion=1e10, shearCohesion=1e9,label='cement')
O.materials.append(cement)

s1=utils.sphere((0,0,0),radius=1,color=[1,1,1],fixed=True,material='cement')
s2=utils.sphere((0,0,2),radius=1,color=[1,1,1],material='cement')
s3=utils.sphere((0,sqrt(0.44),1),radius=0.2,color=[0,0.8,0],material='cement')
s4=utils.sphere((0,-sqrt(0.44),1),radius=0.2,color=[0,0.8,0],material='cement')

O.bodies.append(s1)
O.bodies.append(s2)
O.bodies.append(s3)
O.bodies.append(s4)

s2.state.blockedDOFs='z'
s2.state.vel = Vector3(0,0,-1e1)

Gl1_Sphere.quality=3

O.engines=[
    ForceResetter(),
    InsertionSortCollider([Bo1_Sphere_Aabb()]),
    InteractionLoop(
        [Ig2_Sphere_Sphere_ScGeom6D()],
        [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow = True,setCohesionOnNewContacts = True)],
        [Law2_ScGeom6D_CohFrictPhys_CohesionMoment()]
    ),
    NewtonIntegrator(damping=0.4),
    PyRunner(iterPeriod=100,command='addPlotData()',label='plotData'),
]
## run for one step to generate interactions
O.step()

def addPlotData():
    plot.addData(i=O.iter,
                 displacement=1.8-O.bodies[1].state.pos[2],
                 force_sand=O.forces.f(1)[2],
                 normalForce_cement=O.interactions[1,2].phys.normalForce.norm(),
                 shearForce_cement=O.interactions[1,2].phys.shearForce.norm(),
                 normalAdhesion=O.interactions[1,2].phys.normalAdhesion,
                 shearAdhesion=O.interactions[1,2].phys.shearAdhesion)

plot.plots={'displacement':('force_sand',),
            'i':('normalAdhesion'),
            'i ':('shearAdhesion'),
            'normalForce_cement':('shearForce_cement'),}

plot.plot()

My questions are:

1. Which parameters in Yade define the bond strength (normal strength/ shear strength)?
To my best understanding, one contact bond fails when the normal/ shear force exceeds the corresponding strength, I reviewed some answered questions and found that it may be related to cohesion which is defined in CohFrictMat, and may be related to interactions.phys.normalAdhesion/ shearAdhesion, so I am confused about which parameters define the bond strength.

2. How can we control the value of O.interactions.phys.normalAdhesion/ shearAdhesion?
In this simulation, when I change the value of normalCohesion and/or shearCohesion in CohFrictMat, the force of sand can reach different values at the moment when the two cement spheres are ejected away, it is reasonable since the two cements with higher cohesion can lead to higher stiffness of the assembly. However, when I change the normalCohesion and/or shearCohesion in CohFrictMat, there is no change for the normalAdhesion / shearAdhesion, Does it mean that there is no relationship between normalCohesion in CohFrictMat and normalAdhesion in O.interactions.phys? If so, how can we control the interactions.phys.normalAdhesion/ shearAdhesion?

3.I want to assign cohesion to all existing contacts not only in current time-step, but alse in steps as long as the cement particles contact to sand particles, is it right to set both "setCohesionNow" and "setCohesionOnNewContacts" to True?

4. In the graph"normalForce_cement--shearForce_cement", why there are two lines? I thought at the moment when the cement particles are ejected away, the normal force and shear force would quickly drop to zero like the other three graphs.

Many thanks!
Leonard (Aoxi)


-- 
You received this question notification because your team yade-users is
an answer contact for Yade.