Longitudinal Wave Propagation

Written by Mats G. Bengtsson
National Defence Research Establishment
Box 1165, S-581 11 Linkoping
Sweden
email:  matben@lin.foa.se

Sound Waves Propagate Longitudinally

Longitudinal waves are conceptually different from transversal waves. Students can fairly easily grasp the phenomenon of transversal waves due to the analogy with waves on the surface of water. Longitudinal waves, however,  are more difficult to understand, and have much wider applicability to physical phenomena. The propagation of sound waves is usually the first example to be explained with longitudinal waves. Below we try to illustrate how longitudinal waves propagate, but we do not try to explain why the medium behaves this way. The pedagocical point in this demonstration is that there is no transportation of atoms in the direction of wave propagation. This is a mere illusion.

The Code

Needs["Graphics`Animation`"]

Set up the configuration for a tube

Try to change the parameters and see what happens in the animation. Run the cells containing the code one by one, and do the animation inbetween. Do not mix up the two cases.

numberOfAtoms = 1200;
tubeLength = 100;
tubeWidth = 20;
waveLength = 0.4*tubeLength;
waveConstant = N[2Pi/waveLength];
amplitude = 0.10*waveLength;
angularFrequency = N[2Pi];
coordinatesOfAtoms = Table[
	{Random[Real,tubeWidth], Random[Real,tubeLength]},
	{numberOfAtoms} ];
displaceAtom[{x_,y_}] := {x, 
	y + amplitude*Sin[waveConstant*y - angularFrequency*t]}

Set up the configuration for a cylindrical system

numberOfAtoms = 1000;
cylRadius = 20;
waveLength = 0.4*cylRadius;
waveConstant = N[2Pi/waveLength];
amplitude = 0.10*waveLength;
angularFrequency = N[2Pi];
fromXAndYToPhiAndR[{x_,y_}] := 
	{ArcTan[x,y], Sqrt[x^2+y^2]}
fromPhiAndRToXAndY[{phi_,r_}] := r*{Cos[phi],Sin[phi]}
coordinatesOfAtoms = Table[
	{Random[Real,{-cylRadius,cylRadius}], 
	Random[Real,{-cylRadius,cylRadius}]},
	{numberOfAtoms} ];
cylCoorOfAtoms = Map[fromXAndYToPhiAndR, coordinatesOfAtoms];
displaceAtom[{phi_,r_}] := {phi, 
	Max[0, 
		r + amplitude*Sin[waveConstant*r - angularFrequency*t]]}

Do Animations

Plot animation of the tube

It is an advantage if the size of the graphics is fairly large. Switch off the option "Make Lines Thin".

ShowAnimation[ Table[ Graphics[
	{PointSize[0.03],
		Map[Point, Map[ displaceAtom, coordinatesOfAtoms ] ] } ],
	{t, 0, 1, 0.1}],
	PlotRange->{{0,tubeWidth},{0,tubeLength}}, 
	AspectRatio->Automatic]

Plot animation of the cylindrical system

It is an advantage if the size of the graphics is fairly large. Switch off the option "Make Lines Thin".

ShowAnimation[ Table[ Graphics[
	{PointSize[0.01],
		Map[Point, 
			Map[fromPhiAndRToXAndY,
				Map[ displaceAtom, cylCoorOfAtoms ] ] ] } ],
	{t, 0, 1, 0.1}],
	PlotRange->{{-cylRadius,cylRadius}, {-cylRadius,cylRadius}}, 
	AspectRatio->Automatic]