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