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     : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to