# yade-users team mailing list archive

## [Question #699135]: How to reduce average particle velocity of a packing

```New question #699135 on Yade:

Hi,

I'd like to ask that how to reduce the average velocity of all the particles at a confined situation without any change in particle connections.

The following MWE shows the way I came up with to reduce the average velocity: Firstly, carry out the compaction process to reach target confining pressure (100 kPa) with periodic boundary. Then switch to a calmdown process to reduce the average velocity of all the particles by increasing damping coefficient.

However, one problem arises with this calmdown process: there are some particle interactions lost during this process. As you may check by running the MWE (it will take less than 1 minute in general): before the calmdown process, there are 30845 interactions, but after the calmdowm process there are 30766 interactions, Which is not I want.

Do you have any idea about how to reduce the average velocity while keeping the packing fabric the same?

Thanks

Leonard

MWE:
###############
from __future__ import print_function
sigmaIso = -100e3
from yade import pack, qt, plot
mn,mx=Vector3(0,0,0),Vector3(0.07,0.14,0.07)
O.periodic = True
O.cell.setBox(.07,.14,.07)
sp = pack.SpherePack()
sp.makeCloud(mn,mx,-1,0.3333,num=6000, periodic=True)
sp.toSimulation()

particleId=[]
for i in O.bodies:
particleId.append(i.id)

newton=NewtonIntegrator(damping=0.2)

O.engines = [
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb()]),
InteractionLoop([Ig2_Sphere_Sphere_ScGeom()], [Ip2_FrictMat_FrictMat_FrictPhys()], [Law2_ScGeom_FrictPhys_CundallStrack()]),
PeriTriaxController(
label='triax',
goal=(sigmaIso, sigmaIso, sigmaIso),
dynCell=True,
maxStrainRate=(10, 10, 10),
maxUnbalanced=.1,
relStressTol=1e-3,
doneHook='compactionFinished()'
),
newton,
]

O.dt = .5 * PWaveTimeStep()
O.trackEnergy = True

def compactionFinished():
print('compaction finished')
print('Number of interactions before calmDown',len(O.interactions))
triax.doneHook = 'calmDown()'
print('average velocity before calmDown',avgVel_norm(particleId))
newton.damping=0.95
print('Now please click run button to start calmdown process')

def avgVel_norm(idList):
vel=0
avg=0
for i in idList:
vel+=O.bodies[i].state.vel.norm()
avg=vel/len(idList)
return avg

def calmDown():
print('avgVel_norm',avgVel_norm(particleId),'syy',triax.stress)
O.run(1000,False)
# print("after run")
if avgVel_norm(particleId) <0.0025:
O.pause()
print('Number of interactions after calmDown',len(O.interactions))

O.run()

--