← Back to team overview

yade-users team mailing list archive

[Question #698985]: Plotting force, unit question.

 

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

Hello Yade friends!

I'm trying to simulate a tillage tool - soil interaction. I plotted the draft force, but on the diagram i see 1e11 scale at the force number, but it should be around 1e3 in Newton. 
The density [kg/m3], the young modulus [Pa], the dimensions of the box, spheres, tool are in [mm].
Am I wrong something with units in my code?

Thanks for your helping!

My code:

from yade import pack, plot, qt

talaj=O.materials.append(FrictMat(density=2600,young=6e7,poisson=0.25,frictionAngle=radians(30),label="01"))
acel=O.materials.append(FrictMat(density=7850,young=2e8,poisson=0.3,frictionAngle=radians(30),label="02"))

O.bodies.append(geom.facetBox((109.14,200,940),(280,320,750),wallMask=55,fixed=True,material='02'))

sp=pack.SpherePack()
c4=pack.SpherePack([((0,0,0),5),((9.8,0,0),4.75),((5.1,7.4,0),4),((5.1,-7.7,0),4.25),((5.1,0,8),4.5)])

sp.makeClumpCloud((-170.86,-120,190),(389.14,740,1690),
                  [c4],

                  num=-1)
sp.toSimulation(color=(0.45,0.28,0.0),material='01')

from yade import ymport

kes=O.bodies.append(ymport.stl('nkapa.STL',wire=False,material='02',color=(0.5,0.5,0.5)))

O.engines=[
	ForceResetter(),
	InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
	InteractionLoop(

		[Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
		[Ip2_FrictMat_FrictMat_FrictPhys()],
		[Law2_ScGeom_FrictPhys_CundallStrack()]
	),
    TranslationEngine(translationAxis=[0,0,1],velocity=0,ids=kes),
	NewtonIntegrator(gravity=(0,-9.81,0),damping=0.2),

	PyRunner(command='checkUnbalanced()',realPeriod=0.2),

	PyRunner(command='addPlotData()',iterPeriod=100)

]

O.dt=.5*PWaveTimeStep()

def checkUnbalanced():
    if unbalancedForce()<0.1:
        O.engines[3].velocity=4

def addPlotData():

	Fz=sum(O.forces.f(id)[2]for id in kes)
	plot.addData(Fz=Fz*-1,t=O.time,unbalanced=unbalancedForce(),i=O.iter)

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

plot.plot()

O.saveTmp()


-- 
You received this question notification because your team yade-users is
an answer contact for Yade.