Introduction The program MC_Demo is a group of simulations illustrating the principles of the Monte Carlo modeling of electron-solid interactions. The programs were written by David Joy and are based on the algorithms described in the book "Monte Carlo Modeling for Electron Microscopy and Microanalysis" published by Oxford University Press (1995). "MC_Demo" is in the public domain and may be freely copied and distributed. If you use results from this package in a publication or presentation an acknowledgement would be appreciated.
This program is designed to run under Window 95 or 98 although it should also operate without trouble under Windows 3.1. If you downloaded the program be sure that the files MC_Demo.exe and VB40032.dll are placed in the same sub-directory. To run the program choose "Run" from the Start menu and use the "Browse" command to reach the directory where the program is stored. For example, if the program is on a floppy disc, then in the "Run" edit box enter "a:\mc_demo.exe" and then click on "Run". The screen will appear as shown in the illustration. The five programs in the demo are accessed by clicking on either the "Walk", "AEM", "SEM1",”SEM2” or "Phiroz" buttons. If you want to print any of the displays simply hit the Print Screen key while holding down the ALT or ALT/SHIFT keys. The screen is then copied to the clipboard. To view, edit, or print these images open the PAINT program - which is usually supplied free as part of the WINDOWS installation in the Accessories file - go to the Edit menu and then click on Paste.
The program obeys all the usual WIN9X rules. To change any of the parameters, such as the Energy, click the Mouse in the text box, then either use the delete key to remove the old value, or hold down the left mouse button while dragging across the numbers, and then enter the new value required.
Running the Programs (1) WALK
This program has nothing to do directly with electron interactions but it is a Monte Carlo simulation and it illustrates some of the concepts of using this technique. It seeks to answers the question - how far away from your starting point would you be after taking N steps each of equal
length in random directions. To run WALK firstly choose the number of steps that you wish to model by entering the appropriate value in the "NUMBER" window . Then click on the WALK button. you can decide how many steps to take. The program then starts and the display shown here appears on the screen. The display shows the progress of the walker and circles representing 10, 20 and 30 steps from the origin are placed on the screen to give an idea of the scale. At the end of the walk the actual distance from
start to finish is computed and displayed in the information box immediately underneath the display window.
Suggested experiments and questions:
(a) select a journey of 100 steps and run the program as described above. Note down the reported value of the distance traveled. Now repeat this operation ten times. How do the values compare ? Why are they not all the same ?
(b) Now repeat these operations for 200, 400, 600, and 1000 steps. If possible plot the distances for each trial and number of steps on the same graph. Does the distance traveled in a single trial vary in a simple manner with the number of steps ? Why not ?
(c) How does the average distance traveled in N steps (i.e the mean value derived from the
ten tries) vary with N ?
You should be able to show from your data gathered in these experiments that the average distance traveled in N steps is equal to the square root of N. In order to demonstrate this however we must perform enough trials at each number of steps to get a statistically valid answer. A single run of the program is not sufficient to provide meaningful results. If you keep the same number of steps and simply re-run the program M times then the variance of the result will be equal to the square root of M. So if you run the program 4 times with the same conditions the expected precision of the average distance calculated is only 50%. If the same conditions are used for a hundred simulations then the precision of the average distance traveled will improve to 10%, and so on.
(2) AEM SS_MC is a single scattering Monte Carlo electron simulation for thin foils. This is, within the overall limits of the approximations used, the most accurate model available. The program is designed for a thin sample. Start by selecting a beam energy in the "Energy (keV)" box. 100keV is a good value. To select a sample material use the scroll box marked "Target Material" and click the up or down arrows to reach the specimen of choice. Then click on that material and it will be highlighted as shown above. Select a thickness for your sample in the box marked "Thickness (A)" - 1000 (angstroms) would be a good choice. Finally choose how many trajectories you wish to run by editing the contents of the "Number" box. Remembering the previous experiment, the larger the number that you choose the more precise the result will be. A suitable minimum value would be 500 to 1000. When you have set up the values you want click on the "AEM" button and the program will run with the display shown. The foil is shown as a cross-section with the beam entering from the top and exiting through the bottom. The thickness of foil that you selected calibrates the scale of this figure. The electron trajectories are color coded to demonstrate any loss of energy that occurs. The information box below the display window computes the beam broadening radius - which is the radius within which 90% of the transmitted electrons lie as the exit from the sample. This effectively defines the expected spatial resolution of an X-ray analysis in this sample.
Suggested trial applications:
(a) Using copper as the material, observe the beam broadening for an incident energy of 100keV and for sample thicknesses of 250, 500, 750, 1000, 1500 and 2000 angstroms using 500
trajectories per run. How does the broadening vary with the foil thickness? What happens if the beam energy is increased to 200keV?
(b) Repeat experiment (a) but for foils of carbon, silicon, silver and gold. What is the effect of making the foil of an element of higher or lower atomic number ?
(c) Using 1000 angstroms of copper as the target observe the trajectories as the incident energy is changed from 100keV to 30, 15, 10, and 5 keV. Notice that "thin" foil starts to behave like a bulk specimen as each electron is scattered many times ?. Note that at low energies each trajectory may take a considerable time so select only 500 or 1000 trajectories and be patient.
(3) PS PS is a plural scattering Monte Carlo model which is well suited for studies of electron interactions in bulk specimens (that is, specimens which are not thin enough to transmit the electron beam) and at low beam energies (<20keV). It is slightly less accurate than the single scattering model (SEM2) but much faster. Start by selecting a beam energy, a material, an angle of incidence (0 means the beam hits the surface at 90 degrees) and the number of trajectories required. The "Thickness" value is not used in this module and so this number has no effect. When everything is set up click on the "SEM1" button and the program will start to run. The information box below the display window will initially show the calculated Bethe electron range (in microns). This is a measure of the average distance traveled by an electron within the specimen. The display carries a calibrated micron marker to aid interpretation of the computed interaction volume. The electron trajectories are color coded to show how the electron loses it energy as it travels. When the chosen number of trajectories has been completed the information window displays the calculated backscattering coefficient.
Suggested trial applications:
(a) Using 250 trajectories and a beam energy of 15keV plot the interaction volumes for carbon, copper, silver and gold. How do the interaction volumes vary from one element to another?
(b) Using at least 500 trajectories compute the backscattering coefficient for copper at
energies of 1,3,5,10,20 and 30keV. Does it vary? How do these numbers compare with those for carbon and gold at the same energies?
SS is another example of the single scattering algorithm here given in a version designed for bulk samples only. Once again the relative energy of the beam is shown on an arbitrary color scale. The operation of this program is that same as that for PS, but the routines run more slowly because significantly more calculations are involved. To compare this option with SEM1 re-run the trial applications suggested above.
PHIROZ This program computes the way in which the yield of a given X-ray line varies with vertical position from the surface. This is called the z) ("phi ro zee") profile. If this yield is normalized by the equivalent yield for the same X-ray from an infinitely thin region at the surface of the specimen then the resultant ratio is called f() ("f chi"). This quantity is of fundamental importance in the development of methods for the quantification of X-ray data from solid specimens. To run the program, select an energy, material, and number of trajectories as before. In addition the “Tilt’TOA” box allows selection of the X-ray take off angle into the detector. If no value if given then a default value of 40 degrees is assumed. Provided that the material selected has an X-ray of suitable energy to be excited then the program will run. then click on "PHIROZ". The program displays a simulation of the production of X-rays using a routine originally devised by Curgenven and Duncumb in their classic paper. The density of dots gives an indication of the local rate of X-ray production but is not necessarily directly proportional to the X-ray yield. Note that the X-ray production varies considerably both laterally and in depth. When the run is finished the histogram is plotted on the left hand side of the screen starting at the surface. The length of the bars shows the relative of value of z) at that depth. The bar at the surface is of unit value. This histogram is plotted at vertical increments equal to 1/50th of the Bethe range. Use at least 500 trajectories to give reasonable statistics.
When the program has finished click the mouse inside the information box. The screen will now redisplay the z) histogram, on a properly annotated scale, together with the corresponding f() histogram. f() shows what fraction of the generated X-ray production actually escapes from the specimen after allowing for absorption in the specimen using the take-off angle selected during the set-up. Note that at low voltages the two histograms are very similar, but when the beam energy is much higher than the excitation energy the f() curve falls away because of strong absorption for X-rays coming from deep into the sample. The information box reports the numerical value of f() as well as the volume (in cubic micrometers) from which 90% of the total emitted X-ray signal is generated.
Suggested trial applications:
(a) for copper at 20keV obtain the z) curve . Now repeat the experiment for an incident energy of 10keV. How do the two curves compare? Why is there a difference?
(b) Compute the z) curve for carbon at 3, 10, and 20keV. Compare the z) curves at these energies, as well as the f() value. Why does f() decrease as the beam energy is increased?