Viscous damping of clumps

Asked by Klaus Thoeni on 2011-12-12

Hi guys,

I was wondering if someone has experience with viscous damping of clumps. I implemented viscous normal damping for the standard FrictMat using a critical damping ratio beta the same way as it is used in PFC. I did a simple drop test of one sphere and a sphere made by clumped particles. They have the same mass. However, the drop test shows a different behaviour if beta!=0 (e.g. if viscous damping is activated). It seems that the critical damping constant must be different to get a similar behaviour. Any comments and suggestions?

I can commit the code and provide an example if needed.

Cheers

Klaus

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Klaus Thoeni
Solved:
2011-12-14
Last query:
2011-12-14
Last reply:
2011-12-13
Christian Jakob (jakob-ifgt) said : #1

Yes, I observed different behavior with viscous damping, too. I think it has nothing to do with clumps, but with some parameter differences (critical damping?!).

Klaus Thoeni (klaus.thoeni) said : #2

Hi Jakob, yes indeed. I had a closer look at the value for critical damping. It is a function of the contact stiffness and a generalised mass. Since the value for the contact stiffness is all right (it gives the same result for sphere and clump without damping) the only value witch can be adjusted would be the mass. I tried to use the mass of the clump and the mass of a sphere in the clump but the results are not good. So I was wondering if there might be a theoretical relationship between damping of a sphere and damping of a clump. Any other hints?

Thanks!

Christian Jakob (jakob-ifgt) said : #3

> I tried to use the mass of the clump and the mass of a sphere in the clump but the results are not good.

If the masses and stiffnesses are the same for the clump and for the sphere, the result should be the same!
If not, create a bug report ... and please attach your script ;)

Klaus Thoeni (klaus.thoeni) said : #4

No BUG, the kn values are of course not the same since the stiffness depends on the radius (and the radius of the particles in the clump is much smaller). However, if no damping is used the clump and the sphere do behave almost exactly the same. This means that kn is adapted correctly for clumps. My suspicion is that the mass must be adapted as well and it is neither the mass of the clump nor the mass of a particle of the clump.

Klaus Thoeni (klaus.thoeni) said : #5

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)

Klaus Thoeni (klaus.thoeni) said : #6

Ah, I forgot, there is no damping involved in this example!

Klaus Thoeni (klaus.thoeni) said : #7

And sorry again, in the script you have to replace FrictViscoMat with FrictMat since FrictViscoMat is not yet available in the trunk version.

Klaus, your script gives:
NameError: name 'FrictViscoMat' is not defined

Changing to FrictMat (correct?), I see the clump going through the facet. Actually, spheres of the cump go through the plane then the contact is with the other side of the facet, it explain the bigger overlap.
It is not a bug IMO. DEM and/or clumps can't handle such big overlaps at contact. It is physicaly unrealistic anyway for geomaterials.

In order to simulate such large deformation with the dem (like a tennis ball impact), one would need to simulate the ball as a collection of spheres with cohesive contacts, so that the ball itself would be deformable. A clump is restricted to rigid blocks with SMALL deformation near the contacts (the fundamental assumption in DEM).

Klaus Thoeni (klaus.thoeni) said : #9

Ok, this explains why the clump runs through. However, running the script with E=2e5 shows oscillating contact forces for the clump (which at the end give good results for this case). This means again in order to get realistic forces the overlap at the contact must be smaller than the radius used for the spheres in the particles. So it might be better to use bigger particles for generating the clump. And this might be as well one reason why normal spheres run through facets. If the overlap becomes bigger than the radius the sphere basically runs through. So adjusting the particle size or the stiffness might help.

Any idea about the viscous damping with clumps? Is there some theoretical relation ship?

Thanks

>So adjusting the particle size or the stiffness might help.

Yes, you need a valid combination of size, stiffness, and incident velocity.

>Any idea about the viscous damping with clumps?

Not me.

Klaus Thoeni (klaus.thoeni) said : #11

Exactly, a valid combination of particle size, stiffness and incident velocity is crucial.

I found a work around in order to get the same behaviour for a sphere and a clump when viscous damping is used. Basically, if particle size and velocity are given one has to calibrate the stiffness of the clump particles by comparing the behaviour of the sphere with the one of the clump without damping. This seems to be working for me now.

Thanks again!