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

Here is my simulation 
I have placed a sphere on a horizontal wall. A normal force is applied on the 
sphere vertically downward. Some velocity is given to the plate.

Now I am recording normal force on sphere vs displacement of plate graph.
Here I am expecting a constant value of normal force on sphere but Yade returns 
an abrupt behaviour in starting , however it is constant thereafter but with 
some different magnitude.
I have not used force resetter as it makes the graph periodic and gives 
unwanted results.

Kindly help us with how we can plot the actual normal force which is given 
initially on the graph.


from yade import plot
MaterialS=O.materials.append(FrictMat(young=70e6,poisson=.23,frictionAngle=radians(30)))
  #material of sphere
MaterialP=O.materials.append(FrictMat(young=700e6,poisson=.23,frictionAngle=radians(30)))
 #material of plate
sp=sphere((0,0,0),1,material=MaterialS)  #creating sphere
plate=utils.wall(-1,axis=2,material=MaterialP) #creating plate
plateID=O.bodies.append(plate)  #plateID=0
spID=O.bodies.append(sp) #spID=1
O.forces.setPermF(1,(0,0,-4))  # 4 mag. force on sphere in -ve z direction
plate.state.vel =(0,1,0)  #plate given const. velocity in y direction
O.engines=[
    #ForceResetter(),
    InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Wall_Aabb()]),
    InteractionLoop(
     [Ig2_Wall_Sphere_ScGeom()],
     [Ip2_FrictMat_FrictMat_FrictPhys()],
     [Law2_ScGeom_FrictPhys_CundallStrack()]
    ),
    NewtonIntegrator(gravity=(0,0,0),damping=0),
    PyRunner(command='addPlotData()',iterPeriod=100)
]

def addPlotData():
        #if O.iter<10000:
                
#plot.addData(t=O.iter,FrictionForce=O.forces.f(0)[1],Displacement=O.bodies[0].state.pos[1])
                
#plot.addData(t=O.iter,NormalForce=O.forces.f(1)[2],Displacement=O.bodies[0].state.pos[1])
                
plot.addData(t=O.iter,NormalForce=O.forces.f(0)[2],Displacement=O.bodies[0].state.pos[1])
#plot.plots={'Displacement':('FrictionForce')}
plot.plots={'Displacement':('NormalForce')}
plot.plot()
O.dt=.5e-4*PWaveTimeStep()
O.saveTmp()



-- 
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     : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to