yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #19148
[Question #678915]: weight of clump differs from sum of z-directional interaction forces
New question #678915 on Yade:
https://answers.launchpad.net/yade/+question/678915
Dear All,
I would like to create a cylindrical clump from spherical elements. This clump is falling down to a particle bed, beacuse of the effect of gravity. After in equilibrium state I summarized all of z components of interaction forces actin on the clump (with function tomegCheck()), but the result differs from the weight of the clump (which is calculated from the mass of the clump), and I do not understand why... It should to be equal in equilibrium state because there are no more forces acting on the clump.
Has anybody any suggestions?
Thanks in advance!
Here is my code:
from yade import plot
from yade import pack
from yade import qt
from yade import ymport
import math
qt.View()
densT = 2600
ET = 2.5e12
nuT = .3
frictAngT = .2
nCoh = 1e10
sCoh = 1e10
eRoll = .1
EA = 2.1e8
nuA = .3
densA = 7800
frictAngA = .35
talaj = O.materials.append(CohFrictMat(young=ET,poisson=nuT,density=densT,frictionAngle=frictAngT,normalCohesion=nCoh,
shearCohesion=sCoh,etaRoll=eRoll,isCohesive=True,momentRotationLaw=True,label='talaj'))
acel = O.materials.append(CohFrictMat(young=EA,poisson=nuA,density=densA,frictionAngle=frictAngA,normalCohesion=0,
shearCohesion=0,etaRoll=.1,isCohesive=False,momentRotationLaw=False,label='acel'))
seged = O.materials.append(CohFrictMat(young=2.1e13,poisson=nuT,density=2000,frictionAngle=frictAngT,normalCohesion=0,
shearCohesion=0,etaRoll=.1,isCohesive=False,momentRotationLaw=False,label='kerek'))
talaj = O.bodies.append(geom.utils.facetBox((0,0,.2),(1.8,.2,.2),wallMask=16, color=(.2,.2,.2),material = 'acel',wire=False))
doboz = O.bodies.append(geom.utils.facetBox((0,0,.06),(.25,.06,.06),wallMask=63, color=(.2,.2,.0),material = 'acel'))
Sugar1 = .01
felho = pack.SpherePack()
felho.makeCloud((-.2,-.05,.01),(.2,.05,.06),rMean=Sugar1)
particles = O.bodies.append([sphere(c,r,material='talaj',color=(.3,.8,.1)) for c,r in felho])
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Facet_Sphere_ScGeom6D()],
[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(label='coh')],
[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(
useIncrementalForm=True,
always_use_moment_law = True)]
),
NewtonIntegrator(damping=.8,gravity=(0,0,-9.81),label='newton'),
]
O.dt=.1*utils.PWaveTimeStep()
O.engines=O.engines + [PyRunner(command='ment()',iterPeriod = 1,label='vez')]
def ment():
plot.addData(i=O.iter,uF=utils.unbalancedForce())
if O.iter > 12000 and utils.unbalancedForce() < .2:
coh.setCohesionNow=True
for b in doboz:
O.bodies.erase(b)
global kerek_body
kerek_body = []
ker_r = .02
ker_R = .25
db_e = 120
db_R = 12
emel = ker_R+ker_r+.05
osztas = math.radians(360)/db_e
kerek_body.append(O.bodies.append(sphere([0,0,emel],ker_r,color=(1,0,0),material='kerek')))
for j in range(1,db_R+1):
hanyados = float(j)/float(db_R)
for i in range(0,db_e):
if j == 8 and i>0 and i<db_e*.5:
szin = (1,0,0)
else:
szin = (1,1,0)
kerek_body.append(O.bodies.append(sphere([hanyados*ker_R*math.sin(i*osztas),0,hanyados*ker_R \
*math.cos(i*osztas)+emel],ker_r,color=szin,material='kerek')))
global kerekID
kerekID = O.bodies.clump(kerek_body)
O.bodies[kerekID].state.blockedDOFs = 'xyXYZ'
vez.dead = True
def tomegCheck():
m=0
b=0
for i in O.interactions:
if i.id1 in kerek_body:
print(i.id1)
print(O.forces.f(i.id1)[2])
b+=1
m+=O.forces.f(i.id1)[2]
print('number of interactions: ',b)
print('sum value of z directional forces: ',m)
print('whole mass of the clump: ',O.bodies[kerekID].state.mass)
--
You received this question notification because your team yade-users is
an answer contact for Yade.