This animation will show particles moving in an annular space between two concentric corrugated cylinders. The cylinders, since they are sinusoidally corrugated, will be "rough" on the surfaces where the particles contact. The roughness will simulate the relatively rough surfaces, compared to molecular sizes, that man can achieve. Both cylinders can be rotating, at different speeds, about their centers. By the expression "laminar flow" we expect that the boundary particles' rotational speeds will be almost the same as its adjacent rough cylinder. We also expect that the particle speed variation between the stationary and rotating cylinder will be roughly linear with respect to the radial position of the particle. These sentences are the definition of laminar flow. Usually one would expect a laminar flow demonstration to have a solid object with a slightly rough surface be immersed in an infinite bath of a flowing fluid, either a liquid or a gas. Because this animation adheres to laws of physics and one cannot express an infinite gas by a computer I chose to demonstrate laminar flow in a gas of particles between two rotating concentric cylinders.
As is well known from wind tunnel experience, moving the air over a wing airfoil gives exactly the same physical results as moving the wing through the air and that is what can be expected here.
In order to correctly simulate the interaction of the particles with the surfaces, we need to compute the way the particles are reflected from the corrugated cylinders. Since the particle collisions do not change the motion of the rotating surface, we can use the same expressions as we would use for the particle collision with a particle of infinite radius and of infinite mass. Then the expression for the reflection will involve only the corrugation surface normal and the velocity of the corrugation. So we need an expression for the reflection from a moving oblique surface.
Hereafter please note that bold characters like `bb"r"` are vectors and bold characters with caret hats like `bb hat "n"` are unit vectors.
Let the surface be moving at velocity
`bb"v"_s=v_(sx) bb hat "x"+v_(sy) bb hat "y"`
. and let it be rotated about the `z` axis so that its normal vector is.`bb"n"=n_x bb hat "x"+n_y bb hat "y"`
.   Let the particle velocity be`bb"v"_p=v_(px) bb hat "x"+v_(py) bb hat "y"`
where `v_(px)>0`.   To compute the final velocity of the particle we first need the difference in the velocities`bb"dv"=(v_(px)-v_(sx)) bb hat "x"+(v_(py)-v_(sy)) bb hat "y"`
The velocity of the surface will not change during the collision because it is assumed to be of infinite mass. The velocity of the particle will become (in vector form)`bb"v"_p=bb"v"_(p0)-2(bb"n" cdot bb"dv")bb "n" \ \ \ \ (1)`
where `bb"v"_(p0)` is the particle velocity before collision. Note that if the surface velocity equals the particle velocity, then `bb d"v"=0`, so then, as expected, the particle velocity will not change as a result of the collision.For the present problem, the expression for the corrugation radius from center is:
`r(theta)=r_m+A cos(n_p theta)`
where `theta` is the angle of vector `bb "r"` from center, `r_m` is the median radius, A is the amplitude of the corrugation, and integer `n_p` is the number of periods of the corrugation. When the corrugation rotates at rate `omega` the expression for `r(theta,t)` becomes:`r(theta,t)=r_m+A cos(n_p (theta-omega t)`
where `t` is time. The vector expression for the radial vector to angle `theta` is`bb"r"(t)=r(theta,t)(cos (theta-omega t) bb hat "x"-sin (theta-omega t) bb hat "y")`
Then the expression for the surface velocity vector `bb "v"_s` is:`bb"v"_s=omega r(theta,t) (-sin (theta-omega t) bb hat "x"+cos (theta-omega t) bb hat "y")`
For those same parameters, the local slope, `tan psi`, of the corrugated surface is expressed as:`tan psi=(dr)/(dc)=(dr)/(d(theta)) (d(theta))/(dc)=-A n_p sin[n_p theta]/r` `tan psi=-A (d(n_p theta))/(dc) sin [n_p(theta-omega t)]= -A n_p/r sin [n_p (theta-omega t)]`
where the element `dc=r "d"theta` is an increment along the corrugation circumference. We now compute sin and cos of `psi` as`cos psi=1/sqrt(1+tan^2psi)`
`sin psi=(tan psi)/sqrt(1+tan^2psi) `
To get the surface normals, `n_x` and `n_y` we need to rotate the local slope parameters by angle `theta`:`n_x=cos theta cos psi+sin theta sin psi = cos (theta-psi) `
`n_y=cos theta sin psi-sin theta cos psi =sin (theta-psi)`
Then:`bb hat "n"_s=n_x bb hat "x"+n_y bb hat "y"`
Now, to use equation 1, we take the dot product of `bb "v"_p-bb "v"_s` with `bb "n"_s`.`bb "n"_s cdot bb "v"_s=omega r(theta)(-sin theta cos (theta-psi)- cos theta sin(theta-psi))=-omega r(theta)sin psi`
and`bb "n"_s cdot bb "v"_p=n_x v_(px)+n_y v_(py)`
Then the expression for the particle velocity after collision is:` bb "v"_p=bb"v"_(p0)-2(n_x v_(px)+n_y v_(py)-omega r(theta)sin psi)bb hat "n"_s`
We would like to predict where a particle with given position and velocity will intercept the moving corrugation. As a first approximation we will compute the intercept with a moving straight line. If the particle is already close to the corrugation, then the corrugation will not curve much between the present particle location and its intercept so straight line approximation will be reasonably accurate. The y coordinates of the line's points can be described by the equation
`y=y_(20)+v_(2y)t+s_2(x-v_(2x)t-x_(20))`
where `(x_(20),y_(20))` is a fixed point on the moving line,`v_(x2)` and `v_(y2)` are the velocity components of this point, `s_2` is the slope of the line, and `t` is time.The particle's motion can be described by
`x=x_(10)+v_(1x)t`
`y=y_(10)+v_(1y)t`
`y_(10)+v_(1y)t=y_(20)+v_(2y)t+s_2(x_(10)+v_(1x)t-v_(2x)t-x_(20))`
Separating out the time dependent parts of this equation we have`(v_(1y)-v_(2y))t-s_2(v_(1x)-v_(2x))t=y_(20)-y_(10)+s_2(x_(10)-x_(20))`
`t=(y_(20)-y_(10)+s_2(x_(10)-x_(20)))/ (v_(1y)-v_(2y)-s_2{v_(1x)-v_(2x))`
Having found `t`, we obtain the intersection (x,y) as p style='text-Align:center'> `x=x_(10)+v_(1x)t`When the particle intercepts the boundary of the corrugation, then we must reflect it. Since the corrugation is curved, the intersection with the straight line is an approximation of the intersection with the corrugation. It is a good approximation for particles that are close to the corrugation boundary and for corrugation amplitudes that are reasonably small. So first, before we use the intercept, we should find cases where the particle is close to the boundary. Then we use the intercept coordinates to find the angle `theta` and from that we can obtain the normal vector of the corrugation bound. Then we use equation 1 to "reflect" the particle from the corrugation.
The controls are sliders and check boxes. The labeling of the check boxes is self explanatory so I will describe the sliders. The sliders adjust the dimensions of the corrugation and the initial speeds of the particles. The initial speed of all particles is the same but the directions of their initial velocity are random. So the initial energy of each particle is just `E=mv^2/2`. Since the directions are random, I call the initial speed the "Thermal Speed". The actual thermal energy distribution is a Maxwell-Boltzmann distribution but the initial mono-energetic distribution that I've used will not affect the results of the laminar flow demonstration animated here. An adjustable integer parameter is the number of corrugation periods in a complete circle. In addition, the tangential speeds of the inner and outer corrugations can be chosen.
The amplitudes of the inner and outer sine wave corrugations can also be chosen. If the amplitudes are small, then the times for the inner bound and outer bound particle speeds to approach the speeds of their adjacent corrugation will be longer. Another parameter that affects these times is the number of periods of corrugation.
As discussed in the first paragraph, we expect that the average tangential speed of the particles will be approximately equal to the speed of the adjacent corrugated cylinder. That fact is demonstrated in the printed results on Canvas 1. The printed inner bound particle speed agrees quite well with the speed of the inner corrugation. The printed outer bound particle speed also agrees quite well with the speed of the outer corrugation. These are partial definitions of laminar flow. The remaining part of the definition is seen in the green histogram (bar graph) and is that the the speed variation between the two cylinders is roughly linear in the radial distance between the cylinders. The histogram variance form frame to frame is quite large. That is to be expected because the particles can quickly move from bin radius to bin radius. As one might expect, the average particle energy increases as the currugations rotate. Essentially the corrugations act like "fans" that continuously increase the both the rotational energy of the particles and their random direction (thermal) energy.
In order to keep the particles within the cylinder annulus, the animation stops when the average particle energy becomes greater than 0.35 which corresponds to a particle speed of 0.84 pixels per second. Occasionally particles briefly escape the annulus and the number of escapees is also printed on Canvas 1.