| Brief: | Enter SIM sub-process | |
| Syntax: | SIM | |
| Discussion Sections | |
Intro |
Introduction to SIM |
Editing |
Editing the Sample |
Precision |
Trading off Accuracy and Time |
Recoil |
Hydrogen Recoil Spectrum |
Changes |
Changes from early versions of SIM |
| Basic Simulation Commands | |
ABORT |
Abort back to RUMP (hint: use RETURN instead) |
Composition |
Modifies composition of a layer |
EQuation |
Specify a impurity distribution equation for layer |
FUZZ |
Fuzz an interface by summing several similar structures |
GEt |
Retrieve a sample description from a disk file |
HElp |
Display the SIM commands |
LAyer |
Moves to a specific layer in sample description |
MAXpth |
Set maximum thickness of internal structure |
NExt |
Moves to next layer |
OPen |
Open a new (empty) layer above current layer |
RECALCulate |
Mark sample structure as modified to force recalculation |
RESET |
Reset sample configuration to empty space |
RETurn |
Returns to RUMP command level |
SAve |
Put the sample description into a file |
SHow |
Display state of current sample |
Species |
Specifies the impurity species for EQUATIONS |
SPlot |
Overlay a partial simulation on graph |
STHickness |
Sets thickness of each sublayer in internal structure |
STRaggle |
Include Bohr straggling in simulations |
SUblayer |
Specify number of sublayers in internal structure |
THickness |
Sets thickness of current layer |
| Forward scattering specific commands | |
ABSorber |
Set density and composition of the stopper foil |
E2Cof |
Set quadratic E2 term in the scattering cross section |
XSEct |
Set the hydrogen recoil cross section |
| RUMP Plotting commands within SIM | |
COMPAre |
Identical to RUMP level command |
OVerlay |
Identical to RUMP level command |
| Control and modification of internal data tables | |
DEnsity |
Displays known thickness units (compounds) and densities |
LOad |
Read a new stopping power table or resonance table |
SCale |
Perform a scaling operation on stopping power tables |
SEtdensity |
Add a new unit or modify the density table |
STatus |
Status of SIM parameters |
Spectral simulation is an extremely powerful tool for understanding complex RBS spectra involving overlap of numerous elements or compounds. After defining a theoretical sample structure consisting of numerous layers of varying thicknesses, a simulation package will construct the theoretical spectrum corresponding the that sample. The simulations are then generally used in an interative manner to arrive at a best set of parameters in the sample structure which fit a given sample spectrum. The related package, PERT, is a semi-automated algorithm for performing this optimization. Used properly, SIM can provide reliable estimates for layer thickness and compositions on extremely complex samples. Used improperly, it will provide any answer you wish to hear (PERT is even better at this).
The simulator in RUMP is both accurate and relatively fast, allowing complex simulations to be calculated in a few seconds on PC-AT class microcomputers. Actual simulation algorithms are discussed in the papers listed at the beginning of this section. The accuracy of a simulation is limited primarily by uncertainties in the stopping cross sections, non-Rutherford scattering cross sections at low and high energies, and failure of Bragg's Law for compounds. The RUMP simulator can compute the spectrum for any laterally uniform sample consisting of as many as 100 layers of 20 elements each. Non-uniform interfaces can be roughly simulated by summing several simulations together, each with slightly varying layer thicknesses (called FUZZing). Impurities and diffusion profiles are simulated by generating relatively fine layers with a slowly varying composition in each layer. There is currently no good way to handle grossly non-uniform samples except by simulating each component and ADDing the resulting spectra manually.
The SIM command enters a sub-process that is not the spectrum simulator, but rather primarily an editor of the theoretical sample description table. Once SIM establishes a theoretical sample, computational routines within RUMP update the theoretical spectrum as required by, for example, PLOT or COPY. The scattering geometry, incident particle, and MCA parameters for the theoretical spectrum are always taken from the ACTIVE buffer. Any change of parameters in the ACTIVE buffer, or a change in the ACTIVE buffer itself, will require a re-computation of the theoretical spectrum (done automatically). The simulation spectrum will also simulate pulse-pileup in a very crude manner based on the CURRENT setting in the ACTIVE buffer. Matching pileup will require setting the CURRENT to other than the real experimental value.
The SIM processor then is used then to define and edit the sample description. SIM is entered with the RUMP command SIM. The prompt is always SIM Command: to distinguish the subprocessor from RUMP (no user abuse here). Once in SIM, commands are read and interpreted as long as possible; RUMP will be returned to automatically on any unknown command (such as MEV or REPLOT or mistyping). SIM includes all of the system commands as part of its vocabulary to avoid unnecessary return to RUMP and some of the more useful plotting commands. The RETURN command will also exit SIM directly. Once back in RUMP, it is necessary to execute SIM again to re-enter the SIM processor.
The general steps involved in generating a theoretical spectra are (1) defining a sample structure using the SIM commands, (2) either loading an experimental spectra or setting experimental parameters in the ACTIVE buffer, and (3) plotting or overlaying the THEORY buffer.
Forward recoil simulations are also handled by the simulation routines, though not as transparently as might be desired. Special commands for dealing with the stopper foil and the cross-section for forward recoil are described in this section also.
Finally, the SIM processor includes, for historical reasons, what might be called maintanence commands. These commands provide for modifying and loading internal tables in RUMP, especially tables used in calculating simulation spectra. These commands are treated after complete discussion of the sample description commands.
Return to section level or top level index.
The commands RESET, RECALC, COMPOSITION, THICKNESS, LAYER, NEXT, OPEN, and SHOW are used to describe the theoretical matrix sample as a series of layers. The SPECIES and EQUATION commands allow impurity profiles, or varying layer compositions, to be included, although in a limited fashion. FUZZ and STRAGGLE provide further realistic degredation of a theoretical spectrum by interface roughness and energy loss straggling. The commands SAVE and GET provide for saving and reloading a theoretical sample structure from disk.
Understanding the commands MAXPTH, STHICKNESS and SUBLAYER require a clear understanding of the sample description tables. There are actually two sample description tables in SIM which must be distinguished. The first is the user sample description consisting of a series of layers, compositions, thicknesses, equations and species. This is the table that SIM directly edits and it forms the basis of the second table. The second table is an internal sample description and also consists of layers with various compositions and thicknesses (but no equations). Each layer in the user description table becomes one or more layers in the internal description table. Varying impurity profiles as defined by the equation and species specifications in the user table are translated into a series of internal layers, each with a fixed composition and thickness. The collection of these sublayers approximates the desired profile. A single layer in the user table may also be translated into several sublayers in the internal table if it is too thick to be accurately simulated as a single block. These commands, MAXPTH, STHICKNESS and SUBLAYER control the number and manner in which each single user layer is translated into multiple internal layers. For beginning users, the default modes can be used and the distinction between user and internal tables can be safely ignored except for EQUATION and SPLOT commands.
SIM maintains the description of only a single sample in memory at any time, defined by the layers of uniform composition and thickness. SIM is currently configured to accept up to 100 layers with 20 active elements. If you exceed these limits, consider finding a new analytical technique.
Return to section level or top level index.
The three commands, MAXPTH, STHICK, and SUBLAYERS control the manner in which the user sample description table is translated into the internal sample description. Each of these specifies a different criteria for determining the number of sublayers in the internal table. Each layer in the user description can have a STHICK or a SUBLAYERS value. If defined, these values will be used with SUBLAYERS taking precedence if both are defined. MAXPTH is the default mode and its value is set once for the entire sample structure.
More sublayers will give a more accurate simulation at the expense of longer calculation time. The default value for MAXPTH will (in most cases) give answers indistinguishable from a perfect simulation. Since the time taken for a simulation has a strong component proportional to the number of sublayers squared, overly conservative setting is not recommended (unless, of course, you happen to be patient). SIM is usually configured to handle up to 99 sublayers.
Numerous sublayers are often required, however, to accurately simulate a spectrum. This is especially true for layers where an EQUATION has been defined. If too few sublayers are used to simulate the varying composition layer, important features may be completely missed. For example, to get a proper integral from the GAUSSIAN, there must be at least 10 layers over across the peak. Either SUBLAYERS or STHICK should be set in the case of equations to ensure at least 5-10 sublayers over the region of interest.
Return to section level or top level index.
Simulations always check for the possible of a forward recoil particle. The forward recoil can only occur if the detector angles are such that the forward scattered particles will be observed. Unfortunately, there are as yet not standard accepted values for the 1H($\alpha$,p)4He and 2H($\alpha$,d)4He scattering cross sections. The three commands XSECT, E2COF and ABSORB allow reasonable simulations of forward recoil spectroscopy of hydrogen and deuterium. XSECT and E2COF set the cross sections for p and d scattering. ABSORB allows the first few layers in the sample structure to be treated as stopper foil on the way out only. The stopper foil is necessary to filter out forward scattered $\alpha$ particles before the detector.
Return to section level or top level index.
SIM at version 3 of RUMP has several new capabilities which are hopefully fully documented below. These capabilities include the ability to describe impurity profiles within the sample description through the EQUATION and SPECIES commands. There are new methods of controlling the subdivision of the user sample description into an internal description including STHICKENSS, MAXPATH and SUBLAYERS. Using ABSORB, XSECT, and E2COF commands, the program can simulate forward recoil scattering spectra as well as Rutherford Backscattering.
| Brief: | Blank out simulation sample | |
| Syntax: | RESET | [-RESONANCE] |
The RESET command erases the current sample description table back to vacuum. All equations and fuzz parameters are reset to default values. This command should be executed before starting a new sample description to eliminate holdovers from the previous sample. (Automatic loading .LCM files execute this command before loading the description table with new values.)
The RESET -RES command serves a second purpose as well. Executed with an option token as here, it also resets the resonance data structures and disables any active resonance data sets. See LOAD for a further discussion of resonance tables.
Return to section level or top level index.
| Brief: | Mark sample structure as modified so recalculated | |
| Syntax: | RECALulate | |
Normally, RUMP keeps track of modifications to the sample structure and notes when the theory buffer is out of date because of the sample description or parameter changes. However, it does not track either modifications to the buffer itself or sample parameters which are linked to the function evaluator (such as BACKGROUND subtract on buffer 0 or the EQUATION USER within the sample structure). The RECALC command simply marks the buffer as being out of date so that the next reference to theory buffer will have the simulation recalculated.
Return to section level or top level index.
| Brief: | Display the current user sample description | |
| Syntax: | SHow | |
SHOW outputs the current user sample description table to the screen. This command should be executed often, especially when first using SIM, to make sure the correct layer is being modified and that the desired modifications are actually occuring. In the output, the layer currently being modified is specified on the last line.
The numbering of layers is not static property. Layers may be defined with zero thickness or the thickness of a layer may be set to zero in SIM, but the layer remains in the description table. However, if the active pointer moves away from a layer with zero thickness, you return to RUMP, or if a simulation is performed, the zero thickness layer will be deleted. The numbering of the layers will consequently change. As we say in the trade, you have been warned.
The following sample SHOW output describes a sample with surface Ni on NiSi on a Si substrate. Layers are number from the surface inward. The layer number, thickness and composition columns are self-explanatory. The sublayers column indicates how the layer will be subdivided into multiple layers in the internal sample description. This first layer will be subdivided into layers of 50 \AA each so the gaussian profile is accurately reproduced. Layers 2 and 3 are automatically subdivided as the simulation software deems necessary for accuracy. Layer 1 has also been configured with an impurity (diffusiant) of Au using the EQUATION and SPECIES commands. The next line describes the type of equation Gaussian and the parameters defined for the Gaussian.
|
Return to section level or top level index.
| Brief: | Switch to working on a specific layer | |
| Syntax: | LAyer | <number> |
The LAYER command switches the internal layer pointer to the specified layer. All subsequent commands act on the active layer. LAYER will not allow selection of a layer that is not currently defined. There is always one blank layer, however, at the bottom of the structure which can be selected. The command SHOW is used to determine which layer is currently active.
Return to section level or top level index.
| Brief: | Moves current layer pointer to next valid layer | |
| Syntax: | NExt | |
The NEXT command increments the internal layer pointer to the next valid layer. If already at the bottom of the sample structure, the active pointer does not move. See also LAYER and SHOW.
Return to section level or top level index.
| Brief: | Opens up a new (null) layer above current pointer | |
| Syntax: | OPen | |
The OPEN command inserts a null (zero thickness) layer immediately above the current layer pointer. All layers below the opened one are scrolled down. The active layer is left pointing at the new null layer. Remember, if the thickness of the layer is not reset from the default zero value, the layer will disappear automatically if the active layer changes, or if a return or spectrum simulate occurs. See also SHOW command.
|
Return to section level or top level index.
| Brief: | Modifies composition of active layer | |
| Syntax: | Composition | <element> <frac> [...] </> |
The COMPOSIT command modifies the composition of the current layer. The elements are specified by name (including possibly specific isotopes) and a relative fraction. Elements continue to be added to the composition of the layer until a / element is entered (default value). This signals the end of the COMPOSIT command. If an element given does not currently exist in the layer, it is added with the specified fraction. If it does exist, the fraction is replaced with the new value. Any element with a fraction of zero is deleted from the layer.
The fraction of an element is relative only to the fraction of the other elements in the layer and the total may sum to any value. A layer with Si 1 O 2 is identical in composition to a layer with Si .333 O .667. The specified fractions are converted to atomic fractions in the calculations since most thickness units are in terms of atomic density. See THICKNESS m/cm2 for the exception.
|
Return to section level or top level index.
| Brief: | Sets thickness of current layer | |
| Syntax: | THickness | <value> <unit> |
The THICKNESS command specifies the thickness, and the units of thickness, for the active layer. The current thickness and units are replaced by the new values. A layer can be deleted by specifying a zero thickness in any unit and then moving away from the layer by, for example, the NEXT command.
The magnitude of the thickness is relatively straightforward but the units of thickness are littered with pitfalls. The only natural unit for RBS is the areal density atoms/cm2. Distance units, such as \AA or nm, require a conversion to the areal density via an atomic density. Unfortunately, no one is eager to work in atoms/cm2 so SIM allows the unnatural units \AA and nm as well. It also permits special compound units such as SIO2 and GAAS. The conversion factors from thickness to actual areal density for these materials is stored in an internal table. The commands DENSITY and SETDENS allow access to the table to define new units (or correct old ones) as necessary. For example, SIO2 as a unit is properly calibrated to convert an \AA of SiO$_2$ to atoms/cm2. A thickness of 100 SIO2 for a composition of Si 1 O 2 models precisely 100 physical \AA of SiO$_2$.
The natural unit /cm2 is always available, though the unit is actually $10^{15}$ at/cm2 so that 1000 /cm2 of Si is approximately 200 nm. By popular demand, a second natural unit m/cm2 now also exists. This is the areal density in molecules/cm2 instead of atoms. The m/cm2 unit treats the atomic fractions defined by the COMPOSITION command as a molecule definition and creates the specified number of molecules in the layer. As for /cm2, the absolute units are actually $10^{15}$ m/cm2. If a layer has a composition of Si 1 O 2, then the thickness specifications of 1000 m/cm2 is equivalent to 3000 /cm2. Given a composition of Si .333 O .667, the thickness 1000 m/cm2 is equivalent to 1000 /cm2.
The units A (for \AA) and nm are also available. These units are converted to areal densities using the weighted average of the elemental atomic densities. The following table is a full list of units predefined by RUMP (one might get the feeling we work with semiconductors).
| Unit Name | Atomic density | Description |
|---|---|---|
| /cm2 | 1015 at/cm2 | Absolute unit |
| m/cm2 | 1015 molecules/cm2 | Absolute unit |
| A | composition dependent | Angstroms |
| nm | composition dependent | Angstroms |
| ALP | 0.5926x1023 at/cm2 | Aluminum Phosphide |
| ALAS | 0.4506 | Aluminum Arsenide |
| ALSB | 0.3418 | Aluminum Antimonide |
| GAP | 0.2942 | Gallium Phosphide |
| GAAS | 0.4428 | Gallium Arsenide |
| GASB | 0.3536 | Gallium Antimonide |
| INP | 0.3956 | Indium Phosphide |
| INAS | 0.3594 | Indium Arsenide |
| INSB | 0.2942 | Indium Antimonide |
| SIO2 | 0.660 | Silicon Dioxide |
| SINX | 1.036 | Silicon Nitride (generic) |
The following fragment defines a complete sample. The last layer (substrate) is made sufficiently thick that no particles are scattered from the back edge.
|
Return to section level or top level index.
| Brief: | Saves the current sample description in a disk file | |
| Syntax: | SAve | <filename> |
The SAVE command will write the entire current user sample description in the specified file as a set of macro commands. A default extension of .LCM is used if none is specified. The file is a pure ASCII collection of SIM commands which regenerate the current description. It can be easily edited to modify compositions or thicknesses - or a similar file may be automatically generated by other software. The file may be reloaded from SIM using the GET command or from RUMP by XEQing the file.
Return to section level or top level index.
| Brief: | Retrieve a saved sample description | |
| Syntax: | GEt | <file> |
A file storing a simulation spectra description, such as generated by the SIM SAVE command, can be reloaded using the GET command. A default extension of .LCM is assumed if none is given. If the file does not exist, the current sample description will be retained. If the file begins loading, the current sample description will probably be erased since .LCM files normally start with a RESET command. A SHOW command should immediately follow the GET to verify the new structure.
Return to section level or top level index.
| Brief: | Set composition of impurity | |
| Syntax: | Species | <element> <fraction> [...] </> |
The SPECIES command works in conjunction with the EQUATION command to define an impurity distribution or a varying composition within a given layer. The impurities and the equation describing their distribution have validity only in the given layer; they will not extend into adjoining layers even if the equation indicates otherwise. Specification of the impurity composition using the SPECIES command is otherwise identical to the COMPOSITION command.
The concentrations of each element in the species should be considered as part of the main layer definition. In subdividing the user table into the internal table, the species composition is multiplied at any depth by a ``mole fraction impurity'' obtained from the equation value. The resulting ``composition'' is added to the ``mole fraction matrix'' composition of the main layer to obtain the sublayer composition. Hence, coefficients defined in the EQUATION command will interact with the compositions given in the SPECIES command. We recommend, for consistency, that the main layer fractions and the species layer fractions should individually sum to either unity or 100%. Use the coefficients of the EQUATION to set the relative ratio of impurity to host.
The composition of the SPECIES layer is listed in the SHOW report.
Return to section level or top level index.
| Brief: | Specify an equation to describe the impurity in a layer | |
| Syntax: | EQuation | [...] |
The EQUATION command works in conjunction with the SPECIES command to define impurities within a given layer. The impurities and the equation describing their distribution have validity only in the given layer; they will not extend into adjoining layers even if the equation indicates otherwise. The EQUATION command defines an equation which is used to determine the fraction of the sample, at a given depth, which is either matrix (main layer composition) or impurity (specie composition).
EQUATION will request first an equation name. The equations currently defined are CONSTANT, ERFC, EXPONENT, SEMI-INF, THINFILM, TIMEDEPE, THICFILM, LINEAR, GAUSSIAN, and USER (reflecting the large amount of diffusion work done at Cornell). Depending on the selected equation, several parameters must be entered to fully describe the equation. For example, GAUSSIAN requests the total integrated area under the peak, the position of the peak, and the FWHM of the peak. The parameters required for each equation are specified with the equations below. The parameters are stored in a 5 element array $P$ which is linked to the function evaluator anytime EQUATION is executed.
Equations may be removed from a layer by specifying a constant profile with a zero composition via EQUATION CONSTANT 0.
It is critical at this point to be absolutely clear on how the composition of each internal sublayer is determined by the equation, the specie composition, and the matrix composition. The equation is used to evaluate a ``mole fraction impurity'' $f(x)$ of the layer at a given depth. The composition of the internal sublayer at the depth $x$ is then set to $$ composition_{sub-layer} = f(x)*composition_{species} + [1-f(x)]*{\tt composition_{matrix}} $$ where the composition of the species and matrix are NOT yet normalized. If the matrix layer composition is Si 1 O 2, the specie is AS 2, and $f(x)$ evaluates to 0.4, the actual sublayer will be Si 0.6 O 1.2 As 0.8. If you do not understand this, do not proceed and do not use the EQUATION commands. The descriptions of the equations below specify only the functional form of the $f(x)$ and the associated parameters. If you understand their use, it is relatively easy to construct linearly graded or diffusional composition gradients. You must, however, fully understand their use before these routines have significant value.
The descriptions below provide a very brief introduction to the equations. Equations dealing with diffusion profiles are fully discussed in almost any elementary diffusion text. For diffusion, the internal distance from the layer surface in user units is multiplied by 10$^{-8}$ to provide the value of $x$ in $f(x)$. Diffusion equations consequently work out correctly if the layer thicknesses are specified in \AA and all diffusion parameters refer to cm unit. For other equations, distance is measured in the same units as the thickness specified for the layer. Because of the normalization, units of m/cm2 are not recommended unless both the species composition and the matrix composition sum to the same number of atoms. Also, if an equation layer has a thickness specified in \AA or nm, the areal thickness in atoms/cm2 is determined from the composition of the matrix alone.
WARNING: Distances $x$ in the equations for $f(x)$ are always measured from front edge of the corresponding layer - not the true surface. \hl3{CONSTANT} {\parindent=1in \parskip=0pt \item{Description:} Constant impurity concentration. Layer is weighted sum of matrix and specie compositions. \item{Equation:} f(x) = p(1) \item{Prompts:} p(1) = Constant concentration: } \def\erfc{{\rm erfc}} \hl3{LINEAR} {\parindent=1in \parskip=0pt \item{Description:} Linear distribution from front edge to back edge. This allows formation of linearly graded layers from a starting to ending concentration. Full translation from the specie at the surface of the layer to the matrix at the back edge occurs for $p(1)=1$ and $p(2)=0$. \item{Equation:} $f(x) = p(1) + [p(2)-p(1)] * x/t_{layer}$ \item{} x measured in same units as $t_{layer}$ \item{Prompts:} p(1) = Front edge concentration: \item{} p(2) = Back edge concentration: } \hl3{ERFC} {\parindent=1in \parskip=0pt \item{Description:} Error function diffusion profiles. This equation describes the diffusion of a specie into a thick layer from a source which holds the surface at a fixed concentration. \item{Equation:} $Dt = p(2)*p(3)$ \item{} $f(x) = p(1)*\erfc(x/\sqrt{4Dt})$ \item{} Units for distance x are 10$^{-8}$ times the internal thickness unit. See note above. \item{Prompts:} p(1) = Initial concentration: \item{} p(2) = Diffusion constant (cm2/sec) \item{} p(3) = Time (sec) } \hl3{EXPONENT} {\parindent=1in \parskip=0pt \item{Description:} The exponential equation describes the steady state impurity concentration in front of a moving interface with the concentration at the front edge fixed. This implementation simply provides an exponentially decreasing (or increasing) mole fraction impurity with depth. \item{Equation:} $D/v = p(2)/p(3)$ \item{} $f(x) = p(1)*\exp[-x/(D/v)]$ \item{} Units for distance x are $10^{-8}$ times the internal thickness unit. See note above. \item{Prompts:} p(1) = Initial concentration \item{} p(2) = Diffusion constant (cm2/sec) \item{} p(3) = Velocity (cm/sec) } \hl3{SEMI-INF} {\parindent=1in \parskip=0pt \item{Description:} The semi-infinite equation describes bulk couple diffusion in the limit where the edges of the couples are well beyond $\sqrt{4Dt}$. The ``center'' of the diffusion couple must be specified. The front edge of the layer is the matrix side of the diffusion couple and the back edge is the specie side. \item{Equation:} $Dt = p(2)*p(3)$ \item{} $\delta x = x-p(4)$ \item{} $f(x) = p(1) * [1 + \erfc(\delta x / \sqrt{4Dt}) ] / 2$ \item{} Units for distance x are $10^{-8}$ times the internal thickness unit. See note above. \item{Prompts:} p(1) = Concentration \item{} p(2) = Diffusion constant (cm2/sec) \item{} p(3) = Time (sec) \item{} p(4) = Location of interface (cm) } \hl3{THINFILM} {\parindent=1in \parskip=0pt \item{Description:} Diffusion of a one sided thin layer as a half-gaussian profile. Given a thin impurity peak on the surface with area p(1), the profile will resemble a one-sided Gaussian in time. Integrated concentration is in units of the film thickness. \item{Equation:} $Dt = p(2)*p(3)$ \item{} $f(x) = p(1) / (2\sqrt{\pi Dt}) * \exp(-x^2/4Dt)$ \item{} Units for distance x are $10^{-8}$ times the internal thickness unit. See note above. \item{Prompts:} p(1) = Surface quantity of solute \item{} p(2) = Diffusion constant (cm2/sec) \item{} p(3) = Time (sec) } \hl3{THICFILM} {\parindent=1in \parskip=0pt \item{Description:} Thick film diffusion equation. Semi-infinite with reflections. Actually, this equation makes no sense to me right now but this is how it is currently implemented and is included in the documentation for completeness. Someone should justify/verify it someday. \item{Equation:} $Dt = p(3)*p(4)$ \item{} $k = \sqrt{4Dt}$ \item{} $l = p(5)$ \item{} $f(x) = p(1) + [p(2)-p(1)]*(\erfc[(l+x)/k]+\erfc[(l-x)/k]) / 2$ \item{} Units for distance x are $10^{-8}$ times the internal thickness unit. See note above. \item{Prompts:} p(1) = Surface concentration \item{} p(2) = Concentration in substrate \item{} p(3) = Diffusion constant (cm2/sec) \item{} p(4) = Time (sec) \item{} p(5) = Thickness of film (cm) } \hl3{TIMEDEPE} {\parindent=1in \parskip=0pt \item{Description:} Kramer special diffusion equations for case II diffusion. Don't ask. \item{Equation:} $D = p(2)$ \item{} $v = p(4)$ \item{} $t = p(3)$ \item{} $T = v^2 t / D$ \item{} $X = x / (D/v)$ \item{} $f(x) = p(1) * (\exp(-X)*\erfc[(X-T)/2T]+\erfc[(X+T)/2T]) / 2$ \item{} Units for distance x are $10^{-8}$ times the internal thickness unit. See note above. \item{Prompts:} p(1) = Initial concentration \item{} p(2) = Diffusion constant (cm2/sec) \item{} p(3) = Time (sec) \item{} p(4) = Front velocity (cm/sec) } \hl3{GAUSSIAN} {\parindent=1in \parskip=0pt \item{Description:} Gaussian peak impurity distribution. Recommend /cm2 for layer thickness so can easily set the integrated dose. Creates a gaussian impurity distribution - must have sufficient sublayers to actually get the total integral correct. \item{Equation:} $C_0 = 2*\sqrt{\ln(2)/\pi}*p(1)/p(3)$ \item{} $f(x) = C_0 * \exp(-4*\ln(2)*[x-p(2)]^2/p(3)^2)$ \item{} x measured in user units from front of this layer \item{Prompts:} p(1) = Integral of Gaussian (user units) \item{} p(2) = Depth of layer (user units) \item{} p(3) = FWHM of Gaussian (user units) } \hl3{USER} {\parindent=1in \parskip=0pt \item{Description:} User defined function so can be anything. The current definition of $F(X)$ in the function evaluator will be used. If $F(X)$ is undefined, expect lots of errors and no concentration profile. EQUATION links the array corresponding to (p(1) through p(5) as $P$. If these parameters are used in the definition of $f(x)$, PERT will be able to search for the best fit to parameters in your equation as well. RUMP unfortunately cannot know when you change the parameters or the equation, so the RECALC command must be manually executed to force recalculation of simulations with USER equations. \item{Equation:} $f(x) = f(x)$ \item{} x measured in user units from front of this layer \item{Prompts:} p(1-5) = User set and defined \item{Example:} sim eq user define f(x)=p(1)+p(2)*x \item{} let p(1),p(2)=0.1,0.01 \item{} recalc plot theory \item{} let p(2) = -0.01 recalc ov theory }
Return to section level or top level index.
| Brief: | Roughen the interface between two layers} | |
| Syntax: | FUZZ | <layer> <amount> <iterations> ... </> |
Interfaces between layers in the ideal simulation structure are absolutely sharp and planar. In reality, interfaces are slightly fuzzy giving rise to the FUZZ command. FUZZ simulates this lateral non-uniformity by simulating and averaging several sample structures, each with a slightly different layer thickness. The computation time for FUZZ obviously scales as the number of simulations (iterations). For each layer to be fuzzed, it is necessary to specify the layer number, the average thickness deviation of the layer (fuzz amount), and the number of iterations to be used. FUZZ recycles requesting another layer to fuzz until the default is given or the maximum number of fuzzed layers is reached.
FUZZ erases all previous knowledge of fuzzed layers before it requests the layer number. Thus, fuzzing can be disabled by FUZZ /. The current setting of FUZZ can be determined with the STATUS command.
|
Return to section level or top level index.
| Brief: | Include energy straggling in simulations | |
| Syntax: | STRaggle | <scaling value> |
Straggling is the gradual increase in the energy spread of a beam as it loses energy by electronic and low angle collisions. It is a statistical broadening which occurs because of the discrete nature of the energy loss events. The broadening due to straggling hence scales as the square root of the total path length. Simulation of beam straggling is an optional feature of the simulations which adds enormously to the computation time and complexity. Its use is only indicated if you need to accurately fit the back edge of thick layers.
Straggling is not understood at the same level as Rutherford cross sections or even stopping powers. RUMP uses the simple Bohr straggling model but allows this straggling to be scaled by a user chosen factor. The STRAGGLE command sets this straggling constant. The default value, zero, disables straggling completely. A value of unity gives the Bohr straggling. In general, the straggling computed can be any chosen multiple of the Bohr theory values. The current setting of STRAGG is shown in the STATUS listing.
Any non-zero straggle value will issue a warning message abouts its molasses like computational nature.
|
Return to section level or top level index.
| Brief: | Specify number of sublayers used to simulate the active layer | |
| Syntax: | SUblayer | <nlayers> |
The highest precedence for determining the number of sublayers to divide a single user layer into is the SUBLAYER command. This setting just force specifies the exact number of sublayers to create from the layer. If the SUBLAYER value is zero (the default), the setting of either STHICK or MAXPTH will be used to determine the number of sublayers. If non-zero, the setting of SUBLAYER will be reported in the SHOW report for the layer. See example after MAXPTH.
Return to section level or top level index.
| Brief: | Specify maximum thickness of a sublayer formed from the active layer | |
| Syntax: | STHickness | <max_thickness> <units> |
If the setting of the SUBLAYER parameter is zero for a layer, the STHICK setting is checked next. If non-zero, the layer is divided into a number of sublayers such that no sublayer exceeds the specified thickness. This mode is automatically selected for any EQUATION but the value SIM chooses may need to be modified. The units of STHICK do not have to be the same as the as the units specified for the layer thickness. If both SUBLAYER and STHICK are zero, the default mode using MAXPTH is used to subdivide the layer.
Return to section level or top level index.
| Brief: | Set maximum size of internal subdivisions | |
| Syntax: | MAXpth | |
MAXPTH is the lowest priority method for subdividing a user layer and is also the default on simple structures. The command MAXPTH sets a maximum path parameter in units of at/cm2. If both SUBLAYERS and STHICK are zero, the automatic subdivision mode is enabled. In automatic mode, the layer is broken up such that the beam pathlength through a sublayer is less than or equal to MAXPTH. The default value for MAXPTH is 3000 at/cm2 (about 600 nm). For normal stopping powers and cross sections, the value of 3000 at/cm2 produces spectra that are essentially indistinguishable from spectra generated with smaller values of MAXPTH. The setting of MAXPTH is listed with the STATUS command.
The following example illustrates the three sublayer dividing commands. The user description has only three layers. In the internal description, the first 5 sublayers correspond to layer 1, the next 20 to layer 2 and the final 5 or 6 to layer 3.
|
Return to section level or top level index.
| Brief: | Displays specific thickness units or list all available and units and densities | |
| Syntax: | DEnsity | [ |
The DENSITY queries the internal table used to convert thicknesses specified for a layer into the areal density of at/cm2. Either a specific unit can be listed or the entire list can be listed to the screen. DENSITY ALL lists all compounds and densities. See SETDENS to modify the values in this table or to add new entries.
|
Return to section level or top level index.
| Brief: | Add to or modify the density table | |
| Syntax: | SEtdens | <unit_name> <atomic_density> |
The command SETDENS command modifies existing entries in the DENSITY table or adds new entries to the table. If the name specified already exists in the table, the atomic density will be overridden by the current value. If it does not exist, the unit will be added to the table. Units for atomic density are specified in units of 1x10$^{23}$ at/cm$^3$. See THICK for additional discussion of thickness units and see DENSITY above for an example use of this command.
Return to section level or top level index.
| Brief: | Overlay a partial simulation on graph | |
| Syntax: | SPlot | [<element> | <sub_layer>] |
The command SPLOT (short for selective plot) will overlay a partial
simulation on your graph. The partial simulation is either the component of
the spectrum which results from scattering by a given element in all of the
layers, or the spectrum resulting from a single sublayer of the sample
description. SPLOT
It is not possible to get a SPLOT spectrum from a single layer in the user description table unless it happens to corrspond to a single layer in the internal description table. Note also that the numbering of the sublayers is related to, but does not correspond to, the numbering of the user layers. See the example under MAXPTH.
The partial spectrum created by SPLOT is stored in the temporary buffer. It is possible to move this temporary spectrum to a real buffer using the move command MOVE -1 2.
Return to section level or top level index.
| Brief: | Set scattering cross sections for P and D forward recoils | |
| Syntax: | XSECt | <P cross_section> <D cross_section> |
The XSECT command sets the forward recoil scattering cross sections at the geometry energy of interest. The values specified in XSECT are constants independent of energy and angle. See E2COEFF to add a quadratic term to the cross sections. The cross section must be specified in the rather peculiar internal units of RUMP, counts/$\mu$C/msr/10$^{15}$at/cm2. Fortunately, we have figured out the conversion and a XSECT value of 1.0 is equal to 0.1602 barns. The initial values for both cross sections are undefined at startup and must be reset before any forward recoil particles can be observed.
Return to section level or top level index.
| Brief: | Set E2 term in cross sections for P and D forward recoils | |
| Syntax: | E2Cof | <P cross_section> <D cross_section> |
The E2COF command works in conjunction with the XSECT command to set the cross sections for forward recoil scattering. The coefficients set by E2COF give the E$^{-2}$ energy dependence of the cross section. The units are the same as for XSECT with the energy measured in MeV. The E2COF coefficients are initially undefined. The total cross section is determined by $$ {{d\sigma} \over {d\Omega}} = XSECT +{ E2COF \over {E^2}} $$
Return to section level or top level index.
| Brief: | Set number of layers comprising the stopping foil for forward scattering | |
| Syntax: | ABSorber | <# of layers> |
The stopper foil used to filter out $\alpha$ particles from the forward scattered beam and hence detect only protons has a substantial effect on the energy of the protons and deuterons. The absorber is treated by allocating the upper few layers of the sample as descriptors of the absorber foil. The ABSORBER command specifies the number of layers comprising this stopper foil. During simulation, particles see these layers only on their exit paths but not the entrance path. The number of ABSORBER layers is listed with the STATUS command.
|
Return to section level or top level index.
| Brief: | Read a stopping power or resonance data table | |
| Syntax: | LOad | <filename> |
The default data tables shipped with RUMP are configured for incident energies below 3.5 MeV. The stopping powers are a fit to Ziegler et al. curves in the range of 0.35 to 3.5 MeV and fail miserably above this range. The LOAD command allows alternate data tables to be loaded to provide higher energy stopping powers. The alternate tables may be generated with the programs QSTOPP or STOPP.
When RUMP initiates, the stopping powers and atomic data tables are read from the file ATOM3.DAT by calling LOAD. The default directory for data tables is c:\rump. ATOM3.DAT contains the data tables for incident energies up to 3.0 MeV. The distribution file HIGH_E.DAT file contains stopping powers up to 5.5 MeV. To automatically load this file, either add the command SIM LOAD HIGH_E.DAT to your RUMP.INI file or rename HIGH_E.DAT to ATOM3.DAT.
The LOAD command will override and replace all tables with the new values. If any element stopping power have been scaled through SCALE, that scaling factor will be lost.
The LOAD command is also used to load in resonance scattering cross sections. Once a resonance data file has been loaded, RUMP will check for the occurrence of a resonance at each scattering energy and deal correctly with the cross section. Note: Only the simulation spectra will utilize the non-Rutherford scattering cross sections; analytic routines will continue to use only the Rutherford values. The convention is to give resonance data files an .ADT extension (close to DAT but not quite).
The status of the resonance buffer is listed by the STATUS command. Resonances are described by a piecewise linear function. The non-smoothness of this description is completely swamped by convolution with any detector resolution. The program RES5 allows computation of resonance data files based on nuclear models, or by fitting to experimentally obtained data. Two default tables are provided, OXY.ADT and CAR.ADT covering the low MeV resonances of oxygen and carbon respectively.
Return to section level or top level index.
| Brief: | Perform a scaling operation on an elements stopping power | |
| Syntax: | SCale | <element> <new scaling> |
Stopping power cross sections are only known to within 10% at best. There are several elements where the cross sections are clearly in error since the spectrum height of the pure element cannot be simulated properly. Rather than try to modify the tables, the command SCALE is provided to allow for user modification of the stopping power tables on a per element and per session basis. This command scales the stopping power of any element by a constant factor over the entire energy range. The effects of the command are only temporary and are lost when RUMP is quit, or if a new data table is loaded using LOAD. It is not possible, with SCALE to modify the energy dependence of the stopping power. The program STOPP is provided to build up a new set of stopping power tables if such accuracy is warranted or desired.
SCALEing of an element affects both the simulation spectra and the analytic routines such as WIDTH_TH and MATRIX. The settings of any scaled element can be determined with the STATUS command.
WARNING: All scaling factors are lost on any LOAD command, including LOADS of additional resonance files. Be sure all resonances are loaded before scaling the stopping powers in a RUMP.INI file.
Return to section level or top level index.
| Brief: | Status of SIM parameters | |
| Syntax: | STatus | |
The STATUS command lists a collection of parameters from throughout the SIM package. Included in the list are
|
Return to section level or top level index.
| Brief: | Outputs the command list to screen | |
| Syntax: | HELP or ? | |
The HELP command lists to the screen all commands recognized by the SIM subprocessor. The list will include commands implemented by the libraries as well as commands implemented by SIM. The characters shown in uppercase are the minimum abbreviation recognized for that command.
Return to section level or top level index.
| Brief: | Overlay specified spectrum on graph | |
| Syntax: | OVerlay | |
The RUMP OVERLAY command is so often used in SIM to compare the theory spectrum with the current plot that it has a synonym within SIM. The commmands are identical in both.
Return to section level or top level index.
| Brief: | Plot active spectrum and overlay simulation | |
| Syntax: | COMPAre | |
The RUMP COMPARE command is so often used in SIM to compare the theory spectrum with the active buffer that it has a synonym within SIM. The commmands are identical in both.
Return to section level or top level index.
| Brief: | Return from SIM to RUMP, or abort from SIM immediately | |
| Syntax: | ABORT | |
| RETURN | ||
Both RETURN and ABORT leave the SIM processor and return to RUMP. Before exiting, RETURN checks the status of the current layer to determine its validity and deletes the layer if it has zero thickness. It then fills in the {IDENT} of the simulation buffer with a quasi-name based on the sample configuration and returns to RUMP. The command ABORT bypasses these two steps and returns immediately to RUMP.
Return to section level or top level index.