Particle size selection by settling

Suppose you had a 10cm tube full of particles of various sizes, but you only wanted those bigger than 100um. Also, you have no filters. How might you get what you want?

Well, you could shake the tube up, wait a little bit for things to settle, remove the top half and toss it, refill the tube, and repeat! How well would this work? Well, maybe sort of okay. Here's some code in R to simulate it.

tubeHeight = 0.07             # m (0.07 = 7cm)
collectionHeight = 0.02            # m (0.02 = 2cm)
collectionTime   = 2*60            # seconds

radii = 10^seq(-6,-3, by=.02) # m
particleDensity = 1100        # kg/m^3
fluidDensity = 1000        # kg/m^3
mu = 1.88e-3            # viscosity of water

# in m/s
speed = function(rad)  (2/9)*(particleDensity-fluidDensity)*9.8*rad^2/mu

settlingVelocities = speed(radii)
settlingDistance = settlingVelocities * collectionTime
# fractionRetained is fraction below collectionHeight after time is up. 
fractionRetained = pmin((collectionHeight+settlingDistance)/tubeHeight, 1)

for (i in 5:1){
    if (i==5) plot(2*radii*1e6, fractionRetained^i,log='x', type='l',
                xlab='Diameter (um)', ylab='Fraction retained')
    if (i!=5) lines(2*radii*1e6, fractionRetained^i, col=i)
abline(v=radii[min(which(fractionRetained==1,arr.ind=T))]*2e6, lty=2)