Diffraction
Fraunhofer Diffraction
A Fraunhofer diffraction pattern is produced when light passes through a small aperture and falls on a distant screen. The pattern is characterized by a bright central maximum much larger than the geometrical image of the aperture. The central maximum is not an image of the aperture. One can demonstrate Fraunhofer diffraction effects easily using a helium-neon laser in conjunction with a fine pinhole, a narrow slit (or pair of slits), a plastic grating, and a fine screen (of the type used to support specimens in an electron microscope).
One can explain the observed patterns using Huygens' Principle: each point on a wavefront may be regarded as a source of wavelets spreading out in all directions. Diffraction effects arise from the interference between wavelets originating from a wavefront that is restricted by an aperture or blocked by an obstruction. The numerical treatment proceeds durectly. At each point on the viewing screen, one sums the amplitudes of wavelets from an array of points distributed uniformly across the aperture. Phase differences between wavelets have the strongest influence on the the diffraction pattern, but amplitude differences have some effect (particularly for a straightedge). In order for Huygens' wavelets not to generate a reflected wave, the amplitude includes an obliquity factor (1+cos(q))/2, where q is the angle between the normal to the wavelet and the normal to the incident wave. The amplitude also includes a factor for decrease in intensity with distance (inverse square for spherical waves, inverse first power for cylindrical waves).
An algorithm that superimpose wavelets is not difficult to write, but waves from the array of points in the aperture have to be superimposed at each point on the screen, so the calculation may run slowly. The easiest system to deal with is a circular aperture where we need only calculate how the intensity varies as we move radially outward from the centre. The first applet calculates the intensity patterm produced when light from a helium-neon laser strikes a circular aperture. The aperture has a diameter d=.05 mm and is located 1 m in front of a screen (1 pixel represents 1 mm on the screen). This is a typical configuration for observing Fraunhofer diffraction: the diameter of the aperture is almost two orders of magnitude greater than the wavelength, and the central maximum of the pattern on the screen has a diameter three orders of magnitude greater than that of the aperture itself. The three algorithms (A, B, and C) all attempt to do the same thing: sum wavelets originating from an array of points on a square grid spaced d/n apart where n=141. If the aperture is illuminated by a plane wave from a laser, the wavelets will be in phase as they leave the aperture. Algorithm A calculates the phase change as a wavelet travels a distance r from a point in the aperture to a point on the screen. This phase change will be a very large number of radians because the distance is many orders of magnitude greater than the wavelength. Algorithm B introduces a second vector r0 from the centre of the aperture to the point on the screen and uses (r-r0) (a small difference between large numbers) in the phase calculation. Algorithm C applies only to Fraunhofer diffraction. It takes advantage of the fact that vectors from points in the aperture are essentially parallel under Fraunhofer conditions. It forms a unit vector in the r0 direction and takes its dot product with the displacement vector from the centre of the aperture to a general point in the aperture to find the path difference. In the notation used in the program this looks like (nx*xg+ny*yg)/r0) (with ny being zero for this example).
I had used PostScript elsewhere on this website, but I hadn't tested it for speed, so I tried it here, and was pleased to find it was only one order of magnitude slower than Java. PostScript runs in single precision, and the algorithms produce three different diffraction patterns, only algorithm C giving the correct pattern. (In what follows, algorithm C is used to calculate Fraunhofer patterns, and algorithm B is used for Fresnel patterns). The PostScript file has a .eps extension (which stands for encapsulated PostScript). If you have GSview installed on your computer, it will open when you click on a .eps file and run the PostScript program. (GSview may be downloaded free from Ghostgum ).
The next applet does not assume the pattern has cylindrical symmetry. When "Square" is chosen, a square grid with 41 points along the diameter is used as the source of wavelets. The summation of wavelets is carried out at each point in one quadrant of the screen, and the pattern is drawn using the four-fold symmetry of the grid. The pattern is similar to the pattern in the first applet, but is not as clearly defined due to the coarser grid, and the structure of the rings shows the symmetry of the grid. When "Random" is chosen, the same average point density for wavelet sources is used, but the points are distributed randomly across the aperture. No symmetry is assumed: wavelets are summed at each point on the screen, and the calculation runs more slowly. Fraunhofer rings are still apparent at the centre, but the dominant feature is the pattern due to the random array. Clearly, a grid is far better than a random array for calculating a diffraction pattern (particularly with a small number of points). I may say more about this and tie diffraction in with the Fourier Transform sometime in the future. One thing to note is that the pattern due to the random array has a centre of symmetry. This is a characteristic of Fraunhofer diffraction patterns and is further illustrated in the fourth applet.
The third applet shows how slits can be combined to form a diffraction grating, a device for determining the wavelengths present in a beam of light. Patterns are calculated for four different colors: red C (656.3 nm), yellow D (589 nm), green E (526.9 nm), and blue F (481.6 nm). The grating has n = 1, 3, or 5 slits of width w = 2 microns at a spacing of d = w, 2w, or 3w. The intensity pattern is viewed on a screen 1 m from the grating with 1 pixel representing 1 mm in the x direction. At a slit spacing of w the diffraction pattern is that of a slit of width nw. The analytic Fraunhofer expression for red C is shown in magenta on a line plot when d = 2w, n = 3 is selected. The slight difference between the magenta line and the red pattern is due to the fact that the numerical calculation includes an amplitude/obliquity factor. If it is commented out of the program, the difference disappears on the scale of the plot.
The final applet replaces the circular aperture in the first and second applets with an aperture that is a .05x.033 mm rectangle or a .05 mm equilateral triangle. The same grid is used for the rectangle as was used for the circle. The grid for the triangle has the same point spacing, but the points are close-packed (like pool balls in a rack). The calculation is carried out over one quadrant of the screen for the rectangle, and the right half of the screen for the triangle (the base of the triangle is horizontal). The shape and orientation of the aperture is superimposed in white on the diffraction pattern, but does not define the boundary of the geometric shadow as it does for a Fresnel pattern. The geometric shadow is a mere pinprick at the centre of the Fraunhofer pattern. The applet allows the wavelength to be reduced by a factor of 6. A new Fraunhofer algorithm, Algorithm D, can be selected for use with the rectangular aperture. For a 2-D n x n array it reduces the number of terms in the summation to 2 x n from n x n. The saving is even greater in 3-D where the reduction is to 3 x n from n x n x n. The PostScript version of the program uses only Algorithm D for the rectangular aperture.
Note that the patterns confirm our earlier assertion that Fraunhofer patterns are not fuzzy images of the aperture (although the pattern from a circular aperture might lead you to think so). The rectangular shapes in the pattern from the rectangular aperture are rotated 90 degrees with respect to the aperture, and there is no triangular shape in the pattern from the triangular aperture. (Diffraction does indeed cause images to have fuzzy edges but that is a Fresnel effect).
Fraunhofer patterns have a centre of inversion that combines with the symmetry of the array of points from which Huygens' wavelets originate. For the triangluar array, the centre of inversion combines with the three-fold rotation axis of the array to produce a pattern with a six-fold rotation axis (and hence no triangular shapes). (The same sort of symmetry consideration relates the moments of inertia of an equilateral triangular plate).
When "la/6" is selected, the square and close-packed arrays used in the calculations become models for the type of screen used to support samples in an electron microscope. Patterns due to the aperture (smaller because of the wavelength change) are superimposed on the diffraction pattern due to the array. Again, the pattern is not an image of the either the aperture or the array (the close-packed array has its base horizontal, the corresponding diffraction pattern has its base vertical).
Algorithm D was developed to superimpose wavelets originating from points in an aperture, but it works equally well for wavelets originating from atoms in a crystal. First one superimposes wavelets originating from a row of atoms. Next one sums over the set of rows that form a layer, and finally over the set of layers that form the crystal. The program uses a 41-atom row as the basic building block, and places adjacent rows either directly beside each other to form a square, or shifted (like billiard balls in a rack) to form a close-packed structure. Stacks of N layers with (N = 1, 3, 11, and 41) are then assembled to form a crystal. The layers with a square array of atoms are stacked directly on top of each other, and form a cube when N = 41. The close-packed layers are shifted reguarly as they are stacked (to preserve the close-packing), and when N = 41 form a rhomb.
The numbers in the program are more or less realistic. The spacing between atoms is the spacing between atoms in copper, and the screen is close enough to the crystal to capture x-rays deflected through fairly large angles. The x-ray beam is incident normally on the stacked layers, and the program does not use an obliquity factor. We don't need to know anything more x-ray diffraction to run the program. We just specify a wavelength, and see what happens as layers build up to form a crystal, but unless we are very lucky with our choice of wavelength, the diffraction pattern we produce will not have clearly-defined features. (This problem doesn't occur experimentally. If we use an x-ray tube with a tungsten target, the incident beam will have a range of wavelengths).
X-ray diffraction patterns are usually thought of as being produced by reflections from planes of atoms. Here we will be concerned with only two types of plane: those forming the faces of a cube, and those equally inclined to the three cube axes (perpendicular to the body diagonals). If x-rays incident normal to a cube face are reflected from planes perpendicular to the body diagonals emerging from the corners of the face, we need only simple geometry to show that there will be four diffracted beams deflected through 70.5 degrees. Conversely, if x-rays incident along a body diagonal are reflected by the cube faces, there will be three diffracted beams deflected through the same 70.5 degrees. (Our crystalline rhomb has a face-centered cubic lattice and the close-packed planes are perpendicular to its body diagonals).
The 'simple geometry' may have predicted the diffraction patterns, but it hasn't told us the wavelengths needed to produce them. For that we need more simple geometry. Bragg's Law states that for x-rays to 'reflect' from planes, the wavelength much be such that reflections from adjacent planes are in phase. This law was used to determine the wavelengths used in the program.
Using a ruler, and knowing that the width of the screen is eight times the distance to the screen, you can confirm that for N = 41 the diffracted beams are deflected through about 70.5 degrees. For the rhomb, the shape of the boundary distorts the symmetry somewhat, but it is clear that the 6-fold symmetry of the layer is reduced to 3-fold symmetry in the crystal.
Fresnel diffraction deals with intensity fluctuations in the images of apertures and obstacles. The calculations sum Huygens' wavelets using algorithm B, one of the general algorithms in the first applet in the Fraunhofer section. Again we choose examples where symmetry lets us limit calculations to a line on the screen. The first applet deals with a circular aperture of diameter d a distance 10*d from the screen. The wavelength can be varied between d/5 and d/200. With this geometry, algorithm B gives accurate results even in single precision. The edge of the geometric shadow is shown in black on the initial screen and in white on the diffraction pattern. The pattern is overexposed by a factor of 2. The PostScript display excludes the longest and shortest wavelengths (but try GSview - you'll like it!!).
As the wavelength decreases from d/5 to d/40, a pattern rather similar to a Fraunhofer pattern gets progressively narrower. There is a major change in the pattern at a wavelength of d/80: the intensity goes to zero at the centre. This is a Fresnel effect and occurs because the path to the edge of the aperture is one wavelength longer than the path to the centre. In the language of Fresnel diffraction, at the centre of the pattern the aperture spans two half-period zones. The wavelets from the second zone cancel out those from the first. As the wavelength decreases to d/120, d/160, and d/200, the aperture spans 3, 4, and 5 half-period zones, the centre of the pattern goes to bright, dark, and back to bright again, and secondary maxima and minima appear. Unlike Fraunhofer patterns, Fresnel patterns are fuzzy images of the aperture.
The next applet plots the intensity pattern for the circular aperture in the first applet and for a slit of width d. (The slit is represented as a series of infinite line sources that emit cylindrical wavelets). There is no overexposure: at each wavelength the maximum intensity is made full scale. The Fresnel effects are defined more sharply for the circle than for the slit. The reason for this is that circular boundaries give zones of (nearly) the same area, but linear boundaries give zones of progressively decreasing area. The PostScript program displays the intensity for the circular aperture (the slit is an option in the source code).