Particulate Surface Adhesion Sandbox
(TL/DR: This page contains an interactive Javascript sandbox for testing surface adhesion. You can play with it below or in a separate window by clicking here)
One of the projects I am currently working on involves modeling the gas-surface or plasma-surface interface. This has dual applications. First, in the world of contamination control, it is not completely clear how to model dust particulate attachment to surfaces. Most codes, including my CTSP utilize a fit to experimental measurements of Klavins and Lee (1987) to calculate what fraction of particulates of a certain size detach given certain acceleration. However, it is not really clear how to integrate this model with non-static environments, such as the vibrations or aerodynamic flow encountered in spacecraft fairings. It is also not clear how to model particles bouncing off surfaces. Many codes, again including CTSP, utilize a coefficient of restitution to assign how much of the incident velocity is retained on rebound. There is no good experimental data for this coefficient, and hence my analyses are typically for a range of values to bracket the predictions. Not very first-principle based!
Secondly, in the world of plasma plume interactions (or plasma processing), researchers are often interested in predicting surface erosion due to sputtering. Here we can use models such as that of Yamamura, however, this model does not allow us to model the dynamic evolution of surface morphology. Essentially, we assume that the surface is flat, and using the model, compute the total mass loss. But sputtering yield is a function of the incident angle, and hence it is crucial to resolve the “cratering” that may occur. This effect can be modeled using Molecular Dynamics (MD) but only at microscopic scales not practical to engineering simulations. My idea here is thus to combine concepts from methods such as Discrete Element Method (DEM) with PIC to model the surface layer dynamically.
For this reason I also put together a little sandbox to test some ideas. As you know, I am a huge fan of using Javascript for scientific computing (my upcoming book will have a chapter on this topic). The below example is more applicable to the contamination topic, and also does not quite implement all right equations. But it is quite fun to play with! You can rotate and resize the purple beam by dragging the ends and translate by dragging anywhere else. The code uses the force equation \(\vec{F}=k(\vec{x}_2-\vec{x}_1)\) to model surface adhesion. This force acts only up to some given distance. These attached particles are shown in green. The code also includes aerodynamic drag and gravity. Inter-particle collisions are not yet considered. Surface impact is not checked for during dragging, hence you may want to pause the simulation before altering the beam. Finally, right now this only works on desktop, using a mouse, but support for touchscreen is coming.
The video below shows what happens when the surface adhesion and distance is increased and horizontal flow is applied.
To Do / Bugs
- Check for back-side impact – all particles now bounce in the positive normal direction
- Add interparticle collisions
- Attach particles at the touch position, not circle centroid
Let me know what you think and if there are any particular effects you would like to see included.