← Back to team overview

yade-users team mailing list archive

[Question #248065]: Young's Modulus of a system of two contacting spheres

 

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

Hi,

I tried to make a simple scene of two contacting spheres. The idea is to calibrate the material properties to obtain a certain value of Young's modulus. (For this simple case we don't need to do it and we can calculate it using equations, but for other systems with thousands of spheres and different packings it can be necessary).

Anyways, two spheres are touching here. The facets are wrapping the spheres are the bottom and top. The upper facet is moving down to impose a displacement and we measure the force on the ball.   
I was expecting to get a linear response which shows increasing force. But it doesn't happen. 
Do you guys know why?


The entire script is a follows;

=======================

O.reset()
from yade import utils, plot
from yade import pack, qt


id_Mat1=O.materials.append(FrictMat(young=1e8,poisson=0.3,density=1000,frictionAngle=1))
Mat=O.materials[id_Mat1]

id_Mat2=O.materials.append(FrictMat(young=1e10,poisson=0.3,density=1000,frictionAngle=1))
Rigid=O.materials[id_Mat2]


s1=utils.sphere([0.0,0.0,1.0],1.0,fixed=True,material=Mat)
s2=utils.sphere([0.0,0.0,3.0],1.0,fixed=False,material=Mat)

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

box_1 = O.bodies.append(box((0,0,0),(1,1,.001),fixed=True,material=Rigid))
box_2 = O.bodies.append(box((0,0,4.0),(1,1,.0001),dynamic=False,fixed=False,material=Rigid))

O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
NewtonIntegrator(damping=0.7,gravity=[0,0,0]),
PyRunner(command='AutoData()',iterPeriod=1000)
]


O.bodies[box_2].state.vel=(0,0,-0.001)

qt.View()


def AutoData():
        plot.addData(d=O.bodies[box_2].state.pos[2],F=O.forces.f(1)[2])       


plot.plots={'d':('F')}
plot.plot()

=======================



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