yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #05384
Re: [Question #181608]: Viscous damping of clumps
Question #181608 on Yade changed:
https://answers.launchpad.net/yade/+question/181608
Klaus Thoeni gave more information on the question:
Back to the clump formulation in yade. I provide an example which might
show a BUG, but I need some more advice. If you run the script with
different moduli of elasticity you will see that the sphere and the
clump do not behave similar (see comments). Please have a look and tell
me your opinion.
Thanks!
# -*- coding: utf-8 -*-
from yade import plot
#from numpy import *
#### some parameters
a=1.0 # dimension of facets
z=0.0 # facet mid point height
r=0.15 # radius of block
h=1.00 # drop height
#### material property
#E=1e6 # everything is fine
#E=2e5 # clump overlap bigger than particle diameter
E=1e5 # clump runs through (even if smaller time step is used)
#### parameter and material for facets
debri = {'color':(0.41,0.41,0.41),'mat':FrictMat(young=E,poisson=0.15,frictionAngle=radians(30),label='debri')}
debriMat = O.materials.append(debri['mat'])
#### define facets
facets=O.bodies.append([facet([[-a,a,0],[0,0,z],[a,a,0]], fixed=True, wire=False, color=(0,1,1)),facet([[a,a,0],[0,0,z],[a,-a,0]], fixed=True, wire=False, color=(0,1,1))])
O.bodies[facets[0]].shape.color=debri['color']
O.bodies[facets[0]].mat=debri['mat']
O.bodies[facets[1]].shape.color=debri['color']
O.bodies[facets[1]].mat=debri['mat']
#### create blocks
sMat = O.materials.append(FrictViscoMat(young=E,poisson=0.15,frictionAngle=radians(30),density=100.,label='sphere'))
cMat = O.materials.append(FrictViscoMat(young=E,poisson=0.15,frictionAngle=radians(30),density=1.41372/((4./3.*pi*0.01**3)*1749.),label='clump'))
s1=O.bodies.append(sphere((0,a/2,0.2),radius=r,wire=False,highlight=False,color=[1,0,0],material=sMat))
c1,cs1=O.bodies.appendClumped(pack.regularOrtho(inSphere((a/2,0,0.2),r),radius=0.01,gap=0,color=(0,0,1),material=cMat))
#### block rotation
O.bodies[s1].state.blockedDOFs='XYZ'
O.bodies[c1].state.blockedDOFs='XYZ'
#### change initial velocity of block
O.bodies[s1].state.vel=(0,0,-sqrt(2*9.81*(h-0.2)))
O.bodies[c1].state.vel=(0,0,-sqrt(2*9.81*(h-0.2)))
#### define data to plot
def addPlotData():
plot.addData(t=O.time, us=O.bodies[s1].state.pos[2]-0.15, vs=O.bodies[s1].state.vel[2], fs=sumForces([0],(0,0,1)), uc=O.bodies[c1].state.pos[2]-0.15, vc=O.bodies[c1].state.vel[2], fc=sumForces([1],(0,0,1)))
#### define engines
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
InteractionLoop([Ig2_Sphere_Sphere_ScGeom(label='Ig2ssGeom'),Ig2_Facet_Sphere_ScGeom(label='Ig2fsGeom')],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]),
GravityEngine(gravity=[0,0,-9.81],label='gravity'),
NewtonIntegrator(damping=0),
PyRunner(initRun=True,iterPeriod=10,command='addPlotData()'),
]
#### time step definition for simulation
O.dt = 1.e-6
from yade import qt
v = qt.Controller()
v = qt.View()
plot.plots={'t':[('vs','r-'),('vc','b-'),None,('fs','r--'),('fc','b--')]}
plot.plot(noShow=False, subPlots=False)
--
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.