← Back to team overview

yade-users team mailing list archive

Re: [Question #203709]: Which physical parameters i need and how to add them

 

Question #203709 on Yade changed:
https://answers.launchpad.net/yade/+question/203709

Christian Sommerfeld posted a new comment:
Hi Chiara,

for the spheres we want to use a ceramic material and for the quader/box
we want to use steel as it's material.  First of all we want to simulate
a elastic behaviour, therefore i chose FricMat as the best Material to
handle this problem.  Furthermore we want to use create a simulation
with the law of cundall and strack to compare it afterwards with other
law, which are maybe more suitable.

It is not such a difficult test. The spheres and the box are inside a
cylinder, whereby there are so many spheres that they   enclose the box.
And the box executes a rotational movement around the z-axes and is also
fixed. Now we want to measure the agent force on the box.

Our programm is still working, but i am not sure if i take the correct
physical parameters for this law, because i nly found the calculation
for kN and kS in the PhD of Smilauer but there is no reference to a law.

And i can not add different materials to the spheres and the box.

My programm is the following:


# import yade modules that we will use below
from yade import pack, plot

# PhysicalParameters


FacetMat=O.materials.append(FrictMat(young=5e4,poisson=0.5,frictionAngle=.6,density=2400))



oriBody = Quaternion(Vector3(0,0,1),(math.pi))
quader=O.bodies.append(geom.facetBox((.5,0,.5),(.3,.3,.3),oriBody, wallMask=63, color=(0,0,1), dynamic=True, material=FacetMat))

# show all bodies of the facet
for l in O.bodies:
	g=l.id
	print g

# create Cylinder from facets
cyl=O.bodies.append(utils.geom.facetCylinder((0,0,1),1.5,2,orientation=Quaternion((1, 0, 0),0),segmentsNumber=20,wallMask=6, color=(0,1,0), fixed=True, material=FacetMat))


SphereMat=O.materials.append(FrictMat(young=5e7,poisson=0.5,frictionAngle=.6,density=1000))

# create block of spheres 
sphereRadius = 0.06
nbSpheres = (10,10,30)
#nbSpheres = (50,50,50)
for i in xrange(nbSpheres[0]):
    for j in xrange(nbSpheres[1]):
        for k in xrange(nbSpheres[2]):
            x = (i*2 - nbSpheres[0])*sphereRadius*1.1
            y = (j*2 - nbSpheres[1])*sphereRadius*1.1
            z = (k*2 - nbSpheres[2])*sphereRadius*1.1
            sp1=utils.sphere([x,y,z+10],sphereRadius,color=	   	 	 (1,0,0),material=SphereMat)
            O.bodies.append(sp1) 

sphereRadius = 0.06
nbSpheres = (10,10,30)
#nbSpheres = (50,50,50)
for i in xrange(nbSpheres[0]):
    for j in xrange(nbSpheres[1]):
        for k in xrange(nbSpheres[2]):
            x = (i*2 - nbSpheres[0])*sphereRadius*1.1
            y = (j*2 - nbSpheres[1])*sphereRadius*1.1
            z = (k*2 - nbSpheres[2])*sphereRadius*1.1
            sp2=utils.sphere([x,y,z+4],sphereRadius,color=(1,0,0),material=SphereMat)
            O.bodies.append(sp2)


O.engines=[
   ForceResetter(),
   InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
   InteractionLoop(
      # handle sphere+sphere and facet+sphere collisions
      [Ig2_Sphere_Sphere_Dem3DofGeom(),Ig2_Facet_Sphere_Dem3DofGeom()],
      #[Ip2_FrictMat_FrictMat_FrictPhys()],
      [Ip2_2xFrictMat_CSPhys()],
      [Law2_Dem3Dof_CSPhys_CundallStrack()]
      #[Law2_L3Geom_FrictPhys_ElPerfPl()]
   ),
   GravityEngine(gravity=(0,0,-9.81)),
	RotationEngine(rotateAroundZero=True,zeroPoint=(0,0,0),rotationAxis=(0,0,1),angularVelocity=50*(2*pi/60),ids=quader,label='rotor'),
   NewtonIntegrator(damping=0.4),
 PyRunner(iterPeriod=20,command="myAddPlotData()"),
	VTKRecorder(iterPeriod=100,fileName='/tmp/QuaderAufnahme-',recorders=['spheres','facets'])
]

O.dt=1*utils.PWaveTimeStep()

def myAddPlotData():
	force=plot.addData(t=O.time,F=O.forces.f(0).norm()+O.forces.f(1).norm()+O.forces.f(2).norm()+O.forces.f(3).norm()+O.forces.f(4).norm()+O.forces.f(5).norm()+O.forces.f(6).norm()+O.forces.f(7).norm()+O.forces.f(8).norm()+O.forces.f(9).norm()+O.forces.f(10).norm()+O.forces.f(11).norm())

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

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