Generating dense disordered packings¶
It is difficult to create dense packings of disks without imposing order, for instance building a dense crystal. Disordered packings are used as models for glassy materials or colloidal solids. A clever way of creating such systems was invented by Lubachevsky and Stillinger. They start with a system in which the particle size $\sigma=0$, and then let the size of the particles increase linearly with time $\sigma= \sigma' t$. Work out the collision rules for such a system and implement them in your code using subclassing. What are the densest packings that you can create as a function of the growth rate $\sigma'$?
Collision rules¶
- The collision time with the walls is again calculated analytically using the fact that the radius is a linear function of time. However, it is not possible to know which wall is first touched from only the sign of the velocity. You will need to calculate all 4 possible collision times and track explicitly the first collision.
- The particle collision time is found from a modified quadratic equation
- You should update the size of the particles in a very similar way that you update the position of the particles within each call to md_step()
- The collision rule must be updated too, particles must separate with a velocity which is greater than their growth rate, otherwise they will overlap. Particles must leave a wall after a collision with a speed greater than the growth rate. Talk with us if you have questions about new collision rules.
- At some point the growth must stop, otherwise the program will crash. You need to define a stopping criterion.