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.

_______________________________________________
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

Reply via email to