Impact of two differently sized spheres with a constant normal velocity and varying angular velocities

Asked by Jason Hsin

Hi,

I'm currently following along the paper "Benchmark tests for verifying discrete element modelling codes at particle impact level" by Y. C. Chung · J. Y. Ooi to verify yade as asked by my supervisor. In the benchmark test 8, it seeks to simulate the impact of two differently sized spheres with a constant normal velocity and varying angular velocities. However, from the code i had, the recoil vs. incident value seems to be quite off. I'm quite new to both yade and python, any help is appreciated!

the following is my script:

#benchmarks 8
from yade import plot
import math
import sys
import numpy as np

al_alloy=FrictMat(
 young=7.00e10,
 poisson=0.33,
 frictionAngle=np.arctan(0.40),
 density=2700,
 label='al_Mat')
O.materials.append(al_alloy)

dense_al=FrictMat(
 young=7.00e10,
 poisson=0.33,
 frictionAngle=np.arctan(0.40),
 density=2700*1000,
 label='al_dense')
O.materials.append(dense_al)

#nylon=FrictMat(
 #young=2.5e9,
 #poisson=0.40,
 #frictionAngle=np.arctan(0.4),
 #density=1000,
 #label'nylon_Mat')
#O.materials.append(nylon)

r=0.1
ang=4
vst=r*ang
incident=vst/0.2
O.bodies.append([
 sphere(center=(0,0,0),radius=r,material='al_Mat'),
 sphere(center=(0,0.65,0),radius=r*5,material='al_dense')
 ])

O.bodies[0].state.vel=(0,0.2,0)
O.bodies[0].state.angVel[0]=ang

#vy=O.bodies[0].state.vel[1]
#vz=O.bodies[0].state.vel[2]
#recoil=vz/vy

O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb()]),
InteractionLoop(
 [Ig2_Sphere_Sphere_ScGeom()],
 [Ip2_FrictMat_FrictMat_MindlinPhys(en=0.5)],
 [Law2_ScGeom_MindlinPhys_Mindlin()]
 ),
NewtonIntegrator(damping=0.0,gravity=(0,0,0)),
PyRunner(command='recoilangle()',iterPeriod=1)
]

O.dt=0.1*utils.PWaveTimeStep()

def recoilangle():
 vy=O.bodies[0].state.vel[1]
 vz=O.bodies[0].state.vel[2]
 angular=O.bodies[0].state.angVel[0]
 vst=vz-0.2*angular
 recoil=vst/vy
 print 'Vcn:',O.bodies[0].state.vel[1],'Vct:',O.bodies[0].state.vel[2],'Angular:',O.bodies[0].state.angVel[0],'incident:',incident,'recoil angle:',recoil

Question information

Language:
English Edit question
Status:
Expired
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Jan Stránský (honzik) said :
#1

Hello,
I have had a **very** quick look to the article and your code. According to table 2, shouldn't the used materials be al_alloy and nylon?
cheers
Jan

Revision history for this message
Jason Hsin (jasonhsin) said :
#2

Hi Jan,

Thanks for the reply.
From my understanding, i think the paper meant to compare the two cases separately, each having only one of the kind of materials interacting. i.e. al-alloy:al-alloy impact and the other only nylon-nylon.

Jason

Revision history for this message
Jan Stránský (honzik) said :
#3

Sorry, it was due to very quick look :-)
I am not very familiar with MidlinPhys, so probably you have to wait for somebody else to help..
cheers
Jan

Revision history for this message
Jason Hsin (jasonhsin) said :
#4

Hi Jan,

No worries, I'll wait a bit

Thanks

Revision history for this message
Bruno Chareyre (bruno-chareyre) said :
#5

Hello,
Your task sounds interesting. :)
Could you please describe in which way the results are "quite off"? It would help to imagine a cause for it, be it a problem in the algorithm or a problem in your script.
Regards
Bruno

Revision history for this message
Launchpad Janitor (janitor) said :
#6

This question was expired because it remained in the 'Needs information' state without activity for the last 15 days.