SIM: Simulation level commands


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


Introduction to SIM

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.


Editing the Sample

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.


Trading off Accuracy and Time

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.


Hydrogen Recoil Spectrum

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.


Changes from early versions of SIM

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.



Reset
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.


Recalculate
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.


Show
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.


SIM Command: show
  #    Thickness        Sublayers     Composition  . . .
  1     550.00 A        50.00 A        Ni   1.000
                    with diffusant:    Au   1.000
         GAUSSIAN   0.5000E+02  0.2000E+03  0.1000E+03

  2    3820.00 /cm2        auto        Ni   1.800     Si   1.000
  3   30000.00 A           auto        Si   1.000
 You are now working on layer # 2
SIM Command: 

Return to section level or top level index.


Layer
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.


Next
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.


Open
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.


SIM Command: layer 2 open show
New layer opened up
 You are now working on a fresh layer # 2
  #    Thickness        Sublayers     Composition  . . .
  1     550.00 A       500.00 A        Ni   1.000
  2       0.00 A           auto
  3    2650.00 A           auto        Ni   1.800     Si   1.000
  4   30000.00 A           auto        Si   1.000
 You are now working on layer # 2
SIM Command: copy 0 2
 Layer  2 has been deleted
Automatic simulation performed
Beam me up Scottie! /* Automatic return to RUMP for COPY command
At your service! 

Return to section level or top level index.


Composition
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.


SIM Command: reset layer 1 composition
Element name (/ to end)? Ni
Relative amount of element (1)? 1
Element name (/ to end)?  
SIM Command: show
  #    Thickness        Sublayers     Composition  . . .
  1       0.00 A           auto        Ni   1.000
 You are now working on layer # 1
SIM Command: comp ni 1.8 si 1 / show
  #    Thickness        Sublayers     Composition  . . .
  1       0.00 A           auto        Ni   1.800     Si   1.000
 You are now working on layer # 1
SIM Command: 

Return to section level or top level index.


Thickness
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.


SIM Command: reset layer 1 comp Ni 1 /
SIM Command: thick
Thickness of layer (unchanged)? 550
Unit of thickness (angstroms)? a
SIM Command: layer 2 comp ni 1.8 si 1 / thick 2650 /cm2
SIM Command: layer 3 comp si 1 / thick 30000 nm
SIM Command: show
  #    Thickness        Sublayers     Composition  . . .
  1     550.00 A           auto        Ni   1.000
  2    2650.00 /cm2        auto        Ni   1.800     Si   1.000
  3   30000.00 nm          auto        Si   1.000
 You are now working on layer # 3
SIM Command: plot theory

Return to section level or top level index.


Save
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.


Get
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.


Species
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.


Equation
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.


Fuzz
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.


SIM Command: fuzz
Layer # to fuzz? (end)  1
Amount to fuzz this layer? 300
Number of iterations? (3) 5
Layer # to fuzz? (end)  
SIM Command: status
 Layer # 1 Fuzzed by   300.00 A    in  5 steps
 Auto-division of layers gives 3000.0 /CM2 maximum sublayer pathlength
SIM Command: 

Return to section level or top level index.


Straggle
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.


SIM Command: straggle
Straggling constant? (0) 2
WARNING: Straggling is a molasses-like option
SIM Command: status
 Straggling computed as  2.00 times the Bohr theory
 Layer # 1 Fuzzed by   300.00 A    in  5 steps
 Auto-division of layers gives 3000.0 /CM2 maximum sublayer pathlength
SIM Command: 

Return to section level or top level index.


Sublayer
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.


Sthickness
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.


Maxpth
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.


SIM Command: layer 1 comp si 1 o 2 / thick 5000 a
SIM Command: layer 2 comp si 1 / thick 2000 /cm2
SIM Command: layer 3 comp al 2 o 3 / thick 100000 a show
  #    Thickness        Sublayers     Composition  . . .
  1    5000.00 A           auto        Si   1.000     O    2.000
  2    2000.00 /CM2        auto        Si   1.000
  3  100000.00 A           auto        O    3.000     Al   2.000
 You are now working on layer # 3
SIM Command: layer 1 sublayers 5
SIM Command: layer 2 sthick 100 /cm2
SIM Command: show
  #    Thickness        Sublayers     Composition  . . .
  1    5000.00 A             5         Si   1.000     O    2.000
  2    2000.00 /CM2    100.00 /CM2     Si   1.000
  3  100000.00 A           auto        O    3.000     Al   2.000
 You are now working on layer # 2
SIM Command: maxpth
Maximum sublayer path length, in /CM2 ? (2000) 1000
SIM Command: status
Straggling is not computed
 Auto-division of layers gives 1000.0 /CM2 maximum sublayer pathlength
SIM Command: 

Return to section level or top level index.


Density
Brief: Displays specific thickness units or list all available and units and densities
Syntax: DEnsity [ | ALL]

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.


SIM Command: density
Compound name (ALL)? sio2
 Density of compound: SIO2 is 0.6600 E23 atoms/cm3
SIM Command: density all
 Density of compound: ALP  is 0.5926 E23 atoms/cm3
 .........
 Density of compound: SIO2 is 0.6600 E23 atoms/cm3
 Density of compound: SINX is 1.0360 E23 atoms/cm3
 Density of compound: MOT1 is 0.6600 E23 atoms/cm3
SIM Command: setdens
Name of new unit? (4 letters -  aborts) mot1
Density of compound in units of 1E23 atoms/cm3 (ABORT): 0.48
 Density of compound: MOT1 is 0.4800 E23 atoms/cm3
SIM Command: setdens sio2 0.66
WARNING: Unit already in table - will override
 Density of compound: SIO2 is 0.6600 E23 atoms/cm3

Return to section level or top level index.


Setdensity
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.


Splot
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 is the most useful format and allows you to view the components of a spectrum arising from a given element. This is especially useful to gain an intuitive feeling for complex overlapping spectra.

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.


Xsect
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.


E2Cof
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.


Absorber
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.


SIM Command: xsect
Old values are:    1H=   0.000000E+00   2H=   0.000000E+00
New 1H value? (unchanged) 4.22
New 2H value? (unchanged) 2.84
SIM Command: e2cof
Coeff 1/E^2 are:   1H=   0.000000E+00   2H=   0.000000E+00
New 1H coeff value? (unchanged) .72 .63
SIM Command: absorb
# of layers in absorber foil? (0) 1
SIM Command: layer 1 comp c 1 h 2 o .5 / thick 10000 /cm2
SIM Command: show
  #    Thickness     Sublayers   Composition  . . .
  1   10000.00 /CM2     auto      C  1.00   H  2.00   O  0.50
 You are now working on layer # 1
SIM Command: status
Straggling is not computed
 Auto-division of layers gives 3000.0 /CM2 maximum sublayer pathlength
 First  1 layers comprise absorber foil
SIM Command: 

Return to section level or top level index.


Load
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.


Scale
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.


Status
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


SIM Command: load high_e.dat
SIM Command: load oxy.adt
Original Cameron (1953) oxygen-16 data, 2-4 MeV
Resonance data:  z1=2  m1=4.00  z2=8  m2=16.00  phi=10.0
SIM Command: matrix si
 Si expected at  1.696 MeV ( 342.3) and height    9.052
Feed me! sim scale
Scale stopping power of which element? (abort) si
 Stopping power of SI is currently scaled by 1.000
New scale factor? (unchanged) 1.3
SIM Command: matrix si
 Si expected at  1.696 MeV ( 342.3) and height    6.963
Up periscope! sim status
Straggling is not computed
 Stopping power of SI is scaled by 1.300
 Auto-division of layers gives 3000.0 /CM2 maximum sublayer pathlength
            ---  Resonance Data Tables  ---
  Z1   M1        Z2   M2        phi      Emin    Emax   # points
   2   4.0        8  16.0      10.0      2.00    4.00     72
  926 points free
SIM Command: 

Return to section level or top level index.


Help
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.


Overlay
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.


Compare
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.


Return and/or Abort
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.


Last modified: November 3, 1996
Michael O. Thompson (mot1@cornell.edu)