Elastic stiffness in NRotFrictionPrms

Asked by Yu

I'm trying to simulate collapsing particles in a box using NRotFrictionPrms & NRotElasticWallPrms,
but have a problem in defining the elastic stiffness.
I set a pile of sand in a box and try to make them collapsing according to the gravity.
Assuming the particles as sands of silica, I set normalK as product of Young modulus of silica (73.1 GPa) and radius of particle
(all particles have same size in this simulation).
When I run a simulation, particles fall a little, and then blow off.
When I set normalK smaller, that doesn't happen.

My question is:
1. Setting normalK as product of Young modulus of material and radius of particle is OK?
2. How can we avoid that blow off of particles?
    One of my colleague suggests we should set the size of time-step smaller than root of mass divided spring constant.
    What do you think?

Best regards,

Yu

Question information

Language:
English Edit question
Status:
Solved
For:
ESyS-Particle Edit question
Assignee:
No assignee Edit question
Solved by:
Dion Weatherley
Solved:
Last query:
Last reply:
Revision history for this message
Best Dion Weatherley (d-weatherley) said :
#1

Hi Yu,

Thanks for your questions.

By default, NRotFrictionPrms and NRotElasticWallPrms expects that "normalK" is a Young's modulus. When specifying the spring stiffness for frictional interactions, the mean radius of the two touching particles is multiplied by normalK. Originally this was not the case but was found to cause scaling issues with macroscopic mechanical properties for models involving particles of non-uniform radius.

Consequently you should set normalK = 73.1e+9 in your example (assuming you wish to use SI units in your simulations).

The issue with the "blow off of particles" is undoubtedly a numerical stability issue. Your colleague is correct to suggest that a smaller timestep may be required. To avoid stability issues, I use the following formula to compute a suitable timestep increment:

delta_T = 0.1 sqrt ( M_min / K_max )

where M_min is the mass of the smallest particle and K_max is the maximum elastic stiffness in your simulation. If your particles have a constant density (p) and range of particle radii [R_min, R_max], then the formula becomes:

delta_T = 0.1 sqrt ( 4. * pi* p * R_min**3. / 3. / normalK / R_max )

The factor of 0.1 in this formula is a factor-of-safety. In theory, a factor of 0.2 is sufficient but I always tend to be more conservative.

I hope this helps and have fun!

Cheers,

Dion

Revision history for this message
Yu (y-k) said :
#2

Hi Dion,

Thank you for your quick and concrete reply.
I hope now it'll work.

Best regards,

Yu

Revision history for this message
Yu (y-k) said :
#3

Thanks Dion Weatherley, that solved my question.