← Back to team overview

yade-users team mailing list archive

[Question #264174]: how is shear force related to poisson ratio?

 

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

Hi all!

I'm stilling studying parameters in "CpmMat" and "FrictMat" material types. In the posted scipt below,  a sphere labeled "s1"  is fixed at the origin. Another sphere, "s2", approaches and overlaps "s1", and then moves along the z axis.  By doing this I want to know how the shear force varies over time between two spheres. 

However, I find that changing the poisson ratio from 1 to 20 has no effect on the forces along the z axis in these simulations for both the "CpmMat" and "FrictMat".  It seems that they are merely the verticle components of normal stresses.  

Another question is that when poisson ratio equals zero,  "s2" with "FrictMat" would immediately disappear when the simulation starts.  I wonder how this happens.




from yade import plot

concreteId = O.materials.append(CpmMat(
    young = 1,
    frictionAngle = 0,
    poisson = 0, #defines poisson ratio
    relDuctility = 0,
    sigmaT = 0,
    epsCrackOnset = 1e-5 #low strain limit,
    ))

frictId = O.materials.append(FrictMat(
    young=1,
    frictionAngle = 0,
    poisson = 1,
    ))

s1 = utils.sphere(center = (0,0,0), radius = 0.5, material = concreteId) #assigns the material type
s2 = utils.sphere(center = (1,0,0), radius = 0.5, material = concreteId)

O.bodies.append([s1,s2])
s1.state.blockedDOFs = 'xyzXYZ' # holds s1 still

O.engines=[
	ForceResetter(),
	InsertionSortCollider([Bo1_Sphere_Aabb()], verletDist = 0),
	InteractionLoop(
		[Ig2_Sphere_Sphere_ScGeom()],
		[Ip2_CpmMat_CpmMat_CpmPhys(), Ip2_FrictMat_FrictMat_FrictPhys()],
		[Law2_ScGeom_CpmPhys_Cpm(), Law2_ScGeom_FrictPhys_CundallStrack()],
	),
	NewtonIntegrator(damping=0.3),
	PyRunner(command = 'addPlotData()', iterPeriod = 50),
    PyRunner(command = "Pushing()", iterPeriod = 1, label = "ctr"),
]

O.dt=5e-7*utils.PWaveTimeStep()

def addPlotData():
    plot.addData(i=O.iter,
                 fz = O.forces.f(s2.id)[2], # z component of force
                 pz = s2.state.pos[2],      # z coordinate
                 fx = O.forces.f(s2.id)[0], # x component of force
                 px = s2.state.pos[0],      # x coordinate
                 )
                 
def Pushing():
    s2.state.vel = (-0.1,0,0) #lets s2 overlap s1
    if s2.state.pos[0] < 0.9:
        ctr.command = "Pushing2()"
        
def Pushing2():
    s2.state.vel = (0,0,0.1) #lets s2 move upward
    ctr.command = "Stop()"
    
def Stop():
    if s2.state.pos[2] > 0.5:
        O.pause()
        plot.saveDataTxt('poisson=0.txt') 
    
plot.plots = {'px' : ('fx'), 'pz':('fz')}
plot.plot()


Thanks!

-- 
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.