RUMP Enhancements Log File
- Use of the Ziegler2005 stopping powers has been simplified.
- Limits on the number of layers is removed.
This file is to contain changes, enhancements, and now fixes to the RUMP
code from the earlier FORTRAN version. Specifically, it should document
all known differences between results. As of 1/1/94, the basic functions
of the DOS version were completely transferred. Changes now are
enhancements over the DOS version.
MOT - 7/2010
Modified resonance code to read default R33 format files from the ibandl
web site. www-nds.iaea.org/ibandl is now recommended as the default
source for all resonance files. SIM STATUS also now lists the reaction
in conventional format - 16O(a,a)16O
MOT - Wow - haven't documented anything for 3 years!
MOT - 5/21/2007 Minor fix
Still another small problem in the pulse pileup code. Error shows
up only in such environments as Au on C. Pileup not extended far
enough.
MOT - 5/15/2007 Minor enhancement
The search for user DLL's now scans the RBS config path rather than
the GENPLOT config path.
MOT - 4/2/2007 *ERROR - SIGNIFICANT FIX*
The pulse pileup calculation has incorrectly "reduced" the overall
spectrum incorrectly since its first implementation in 1994. (Only
the difference between sum and sum2 in the code). This was found
as part of the IAEA intercomparison with NDF and SIMNRA - which
were correct. As a practical matter, it should not have
significantly impacted any but extremely high currents with high Z
elements and long integration times. In rump, for current*tau
greater than 2000, the effect is less than 1% and would be almost
completely disappear with a change in the correction factor.
RUMP disagrees with NDF/SIMNRA on the absolute level of the pileup
by a factor of approximately 3. Rump uses a triangular shape to
approximate the typical bipolar shaping electronics -- going
through 0 at tau. From there, it is an exact convolution of the
pileup mechanism. NDF and SIMNRA use different approximations to
the pulse shape. Someday will get enough data to clean up.
MOT - 3/19/2007
Added simulation direct ability to include a background in the
simulation. The "background " command in sim will cause the
counts in the specified buffer to be added to all simulations -- just
before the optional addition of noise to the spectrum. This improves
the ability to do fits with multiple/plural scattering addressed as a
set of background counts. Direct result of the IAEA intercomparison
work.
MOT - 2/9/2007
Documented change. Slight change in charge of an electron and
dielectric permittivity of free space (sub 0.1% change). Just to be
consistent with latest values. Modified sigma.c, sim2.c. Now using
the values from NIST 2002 CODATA.
(e^2/4) goes from 1299.242 to 1295.9358 keV^2-barn
(1/q) conversion from barn/sr to internal unit goes from 6.242 to 6.2415
MOT - Numerous undocumented changes - sorry.
MOT - 10/5/05
Modified UserStop format. See new code examples.
MOT - 10/5/05
Added variable "RUTHERFORD_FORWARD" check. If set to any value,
forward scattering is pure Rutherford.
MOT - 3/31/05
Increased the maximum size of a spectrum from 2048 to 16384.
MOT - 8/26/02
Revised error message handling on data file reads. Now will point out
the source of the error when reading RBS files. Helps to discern the
problems in some cases. No impact on 99.99% of the users.
MOT - 3/16/02
Added a new data output/input format - Excel. Actually tab-delimited
format for reading by Excel. SAVEAS *.xls will now write the file in
a tab-delimited format. The first part of the file are headers
containing a full specification of the RUMP headers. Following that
is a four column data output.
Column 1 - channel number (0 through n)
Column 2 - actual counts (from the RUMP file)
Column 3 - converted energy (MeV)
Column 4 - Normalized yield (counts/msr/uC/keV)
If the file is not modified, it may also be read back into RUMP. In
the data section, only the second column is interpreted.
/* Excel format [1.0] from RUMP */
Original File f:\cgs\rump\tests\mb\ast.xls
Spectrum RBS
Identifier Simulation of Si-O/Si
Date
Charge 10.000000
MeV 3.100000
Conversion 4.950000 1.600000
Theta 7.000000
Phi 9.000000
Omega 3.400000
Corr 1.004129
Choff 1.000000
FWHM 35.000000
Current 8.000000
Tau 5.000000
Geometry Cornell
Beam 4He++
Channel Counts Energy (MeV) Normalized Yield
0 0 0.0016 0
1 1 0.00655 0.0130647
2 1 0.0115 0.0130647
249 744 1.23415 8.88451
250 744 1.2391 8.8814
1022 0 5.0605 0
MOT - 3/1/02
Changed slightly the way writes are handled in RUMP. First scan is made
on the specified extension. If this is found in the list of write routines,
then write is made by that format (.rbs => BINARY, .txt => EXCEL, .dat => ASCII)
This makes it easier to specify the output format.
MOT - 10/24/01
Fixed problem with GENPLOT command. The energy conversion failed
on transferring a spectrum to GENPLOT. Problem with macros versus
function calls - I should know better. A freshman programming errror.
PR/MOT - 2/23/01
Change to extrapolation of H and D forward scattering crosssections.
In previous code, if the incident energy were above the limits for
either the Ziegler or Quillet H/D scattering formulas, the code switched
to Rutherford throughout the energy bounds. Now, it will instead just
change to using the 1/E^2 energy dependence of Rutherford above the
valid energy range of both routines. The cross section will be
continuous in energy, just going to simple 1/E^2 above the 4.0 MeV
(Ziegler) or 2.7 MeV (Quillet).
PR/MOT - 2/23/01
Error in Quillot calculations for ERD cross sections. +1.278E-1 is
now corrected to -1.278E-1 in two places of sigma.c.
MOT - 6/26/00
Changed "menu" read/save as routines so that they use the current
working directory when first opened.
MOT - 5/15/00
Fix problem with reading via the drop down menu.
MOT - 4/27/00
Clarified and added non-important option to read and write ASCII
module.
READ -ASCII [-onecolumn | -1column | -twocolumn | -2column]
SAVEAS -ASCII [-onecolumn | -1column | -twocolumn | -2column]
SWALLOW [-onecolumn | -1column | -twocolumn | -2column]
Default is single column mode, each line contains exactly one channel of
data. In two column mode, the first column is taken to be the channel
number and the second is the count data. Swallow expects the data to
follow on the command lines (or macro file), ending with a blank line.
MOT - 4/13/99
Removed "Rutherford Integral" from spectral calculations. It was
creating too many problems with complex resonances and new handling
of cross sections. Fixed some minor problems with resonances, including
forcing code to just switch to Rutherford on either side of a table
range.
MOT - 12/29/99
Added screening correction to Rutherford cross section at low E.
J. L'Ecuyer et al, Nucl. Instr. and Methods 160, 337 (1979)
sigma *= (1 - 0.049*Z1*pow(Z2,4/3)/E)
where E is in keV. This should sligtly reduce the deviation at
low energies for the RUMP simulation tail, but is generally not
visible even at low energies. Will make a few percent difference
in gold and similar heavy metal simulations.
For Si at 3 MeV, the maximum deviation in data at low E is ~0.1%.
For Au at 1 MeV, the deviation is about 3%.
Because of the potential problem this change may create, it can
be turned off by setting a variable NO_SIGMA_SCREEN to any value.
MOT - Modified ASCII read routine so that the first line not recognized
as data columns will be copied into the "ID" buffer. If not line
is found, then the ID will simply be "! " as before.
MOT - Added new stopping power formulations, especially the data of
Kalbitzer's group (Konac particularly for Si). The data is in a
new file "newstop.kal" in the RUMP data directory.
MOT - Default stopping power representation is now a SQRT form rather
than linear. This provides significant improvement over the linear
form, and it seems now to be sufficiently stable to make the
default.
MOT - Aded Kalbitzer format stopping power tables. The extension for a
file of this format is .kal. They can be force loaded (changed)
using the command
CONFIG STOP_LOAD .kal
CONFIG STOP_LOAD -unload
will release the tables so you can revert to RUMP values.
MOT - Changed BACKGROUND command to include a -inplace options so no more
buffers get created. Internally documented using the -? option.
[Also fixed so channels can be entered manually. This hasn't worked
for a LONG time - no one ever complained :-) ]
MOT - Added option to GENPLOT command to allow transfer in
channel rather than energy mode.
GENPLOT [-channel | -energy]
Default, as previous, is -energy.
MOT - Added option to ASCII write to do as two column mode.
SAVEAS -ASCII -TWOCOLUMN
will save it in channel / counts format (plus the headers).
Read will have some problems! This also modifies the
Swallow command so that it can read two-column data.
SWALLOW [-2column]
SAVEAS [-ASCII [-TWOCOLumn] ]
READ [-ASCII [-TWOCOLumn] ]
MOT - As per recommendation (and my agreement), PERT will now set the
correction factor that it computes in a run. The message is
slightly modified to read:
Estimated correction factor set for buffer: 1.0042
as opposed to
Estimated correction factor for buffer: 1.0042
This is now the default behavior.
MOT - CAVEAT: The following work is "in progress". The format may be
modified based on feedback from either Vickridge or Vizkelethy.
Loading resonance files:
SIM RESREAD
This ultimately will be moved out of SIM (where it doesn't
belong) and into CONFIG. But the backward compatibility will
be maintained.
Work on resonance files continues. Resonance files may now
specified in roughly the same format as proposed for IBA reaction
cross sections (I.C. Vickridge 1993). The format has some minor
differences to help RUMP identify files and to permit use of
relative cross-sections.
See the Idaho State University site
http://ibaserver.physics.isu.edu/sigmabase/documents/ian_prop.html
for a copy of the DSIR Physical Sciences Report 33 original text. All
of the tags presented in that document are allowed.
In addition, 4 new tags are defined.
VERSION: DSIR 33a -- Must be first line in file. Identifies
the file as a resonance file conforming
to the DSIR report 33 format (modified).
UNITS: mb/sr -- Specifies the type of data for sigma.
rtr Default is mb/sr. "rtr" means relative
to Rutherford -- ratio of actual cross
section to Rutherford. Useful only
for resonance reactions, eg. 16O(a,a)16O.
DATA: -- Indicates start of an indeterminate # of
data points. Original standard requires
NVALUES: to specify precise number.
NVALUES: -- The NVALUES: tag may be used instead of the
DATA: tag as per original standard. If
a positive number of points is given, then
a maximum of that many data values will be
used. The remainder of the file will be
ignored once this limit is reached. Setting
to 0 or a negative value is equivalent to
the DATA: tag.
END_DATA: -- Optional tag to mark end of data. RUMP
returns to reading header tags after this
tag and thus resonance files may be
"stacked" together (ie. several angles)
In addition, all tag lines may be preceeded by /* or C so that the files
can be read simply by GENPLOT for plotting. Within the data block, blank
lines or lines beginning with the comment character(s) will be ignored.
RUMP interprets only the COMMENT, UNITS, REACTION, DISTRIBUTION, QVALUE,
THETA, ENFACTORS, SIGFACTORS, DATA, and END_DATA tags. Other tags
are simply read and ignored (including the MASSES tag). No specific
order for the tags is required, and tags may be repeated (only last
kept though). Defaults exist for all important tags, corresponding to
oxygen resonance at 168 degree laboratory angle in mb/sr.
Reactions must be fully specified, ie. 16O(4He,4He)16O or 16O(a,a)16O.
If the reaction is not a simple scattering event (Q non-zero or masses
change), it will invoke an error and abort reading the file.
Finally, RUMP requires resonance data to be strictly sorted in ascending
energy. Any point violating this condition (energy less than or equal
to previous point) will simply be discarded. Several of the databases
from the Sandia site have this problem.
WARNING: The COMMENT: tag must be terminated with a blank line. This
is the most common error I made in converting files to this
format.
Example:
VERSION: DSIR 33a
COMMENT: Alphas on O16; 2000-9000 keV; LAB angle = 170;
Cheng et al., 1993 A; RPC;
Ratio to Rutherford vs. alpha lab KE in keV.
NAME: Cheng et al.
ADDRESS1:
ADDRESS2:
ADDRESS3:
ADDRESS4:
ADDRESS5:
ADDRESS6:
SERIAL NUMBER:
REACTION: 16O(a,a)16O
DISTRIBUTION: Energy
MASSES: 16 4 4 16
QVALUE: 0
THETA: 170
SIGFACTORS: 1.0 (SIGMA FACTORS: also permitted tag)
ENFACTORS: 1.0 0.0 (ENERGY FACTORS: also permitted tag)
UNITS: relative
DATA:
2000 1.00
2050 0.98
2100 1.00
.......
8940 3.27
8960 2.29
8980 2.29
9000 9.53
END_DATA:
THETA: 160
DATA:
......
END_DATA:
MOT - Distribution for NT now includes resonance files for (boron, carbon
fluorine, nitrogen, oxygen, and silicon) from the Sandia site.
[See Sandia for updated versions of these files or for the original
reference data]. The actual data has been "edited" to remove duplicate
points and correct obvious errors (transcription). Files are annoted
with changes.
MOT - Added CURRENT as variable for PERT.
MOT - Despite the potential for data faking, SIM now has a command to
add statistical noise to the simulation. Use
SIM NOISE [ON | OFF]
The default is off. When on, statistical noise is added and the
raw data is truncated to integral counts. Useful for comparing
validity of low count peaks.
LOOP 10 RECALC OV 0
The recalc is required to force a new simulation with different
random numbers for the statistical result.
MOT - Getting annoyed hitting COMPRE instead of COMPARE and getting the
COMPRESS command. It is so seldom used that it now requires ALL
8 letters. Should consider making COMPRE and alias for COMPARE.
MOT - It is no longer necessary to specify a normalization window in PERT.
If never given, it defaults to assuming the value given is exactly
correct. Also, as long as NORM is not being used, you can now
vary the CORRECTION parameter over the full extent. This can be
very useful matching full spectra.
MOT - Major changes happening in SIM again.
FUZZ is now enabled on every layer rather than limited -- this also
means that FUZZ now longer gets lost when layers are inserted or
removed. New command:
FUZZY
If amount is <=0 or iterations is zero, same as UNFUZZ.
Units for amount of fuzzing are the same as the layer itself.
UNFUZZy
Cancels fuzzing for this layer
FUZZ [ ... repeat ... / ]
SIM SAVE uses the FUZZY command to re-enable.
PERT changes only slightly.
PERT VARY FUZZ
whereas it used to take an index instead of layer #. New PERT
HAS NOT BEEN extensively TESTED but I don't expect problems.
MOT - Major changes happening in SIM again.
Computers are fast enough that MAX_PATH has been by default
reduced to 200 /cm2 rather than 5000 /cm2. The default value
can be changed using the new command:
DFLT_MAXPATH
This value will be inserted as the MAXPATH for all new sims
(reset command).
MOT - Major changes happening in SIM again.
Global impurity profiles. This is a new feature allowing very
complex impurity profiles to be introduced atop a basic sample
structure. It can be used to implement an element or compound
profiling within the sample.
G_COMPosition - specifies the composition of the global
impurity profile (multiple elements)
G_CURVE - name of a GENPLOT curve that contains the
atomic fraction as a function of depth.
The depth MUST be in units of 10^15 at/cm2.
G_START - Profile starts (x coordinate measured) at
this layer #. Default is 0 which means
the physical surface of the sample. All
absorber layers are ignored. If specified
as non-zero, then X coordinate for profile
is taken to start at that layer # -- or
physical surface -- whichever comes last.
G_MODE - knot fitting mode.
0 is normal cubic interpolation
1 is a linear interpolation (bore-ing)
The actual impurity profile is taken as a spline of the given
curve (knots). A very few points will represent a smooth
profile in default mode. Setting mode can change to piecewise
linear instead of cubic if desired.
This global impurity profile is added into the spectrum AFTER
the diffusing species and matrix and extends across layer
boundaries. It is not affected by FUZZ except for layers
before the G_START.
MOT - Major changes happening in SIM again.
New equation mode - SPLINE. The five coefficients for this
equation are the knots of a spline profile with X coordinates
at (0,1/4,2/4,3/4,1.0) fraction through the layer. See GLOBAL
diffusant equation for more knots on a spline profile.
MOT - Pulse pileup modeling is sufficiently safe now to disable the old
backup mode. Prior to 12/5/98 build, if tau were 0, the routine
would automatically switch to DOS mode compatibility. This no
longer happens and instead no pileup is performed. You must
specifically request DOS mode pileup modeling using the
SIM PILEUP DOS if so desired.
MOT - Major changes in the internal handling of read/write. Should be
generally better -- and certainly more supportable. Let me know
of any problems. Only functional change is:
WRASCII test.asc
WRITE test.asc -ASCII
are no longer exactly identical. Later produces a better file
for reading via either "READ test.asc" or "XEQ test.asc". WRASCII
retains compatability. The latter, however, is subject to
ongoing change to support general ASCII data storage of RBS data.
MOT - Reading multiple data formats (distinguished by extension) is now
cleanly implemented on NT/95 via DLL's loaded with RUMP. Sites can
write their own DLLs to handle reading of individual data formats.
SUNY Albany, Bell Labs, and a WEB-RBS format have been implemented
as examples. See WEB site (www.genplot.com) for download details.
Modified command:
read -CONFIG
read -RELEASE
read -FORMAT
The -CONFIG option will list out all the currently loaded modules.
These modules are read from the entire RumpConfigPath when the first
file read is requested. Any file in the path an extension of ".rdr"
is assumed to be a RUMP reader DLL.
The -FORMAT option overrides the extension determination of
data file format. The ID may be determined from the -CONFIG list.
read test.rbs -format SUNY
will read the file test.rbs assuming the SUNY format despite the
.rbs extension (which normally means RUMP format).
Existing files formats are: SUNY, LUCENT, MCA.
suny.rdr SUNY Albany binary data format .dat
lucent.rdr Lucent Bell Labs ASCII format .mca
mca_read.rdr Livetime read of Cornell MCA .wrbs
If you have mca_read.rdr, try plot 1.wrbs. This will download the
current data in sector 1 of the Cornell 1 MeV accelerator MCA.
MOT - The "description" written with a .lcm file failed due to lack of CRLF.
Code now properly writes a new line as well as the text.
MOT - Documented the STOP_USER package for loading alternate
stopping power calculation routines. See the MyStop directory for
details.
CONFIG STOP_USER [ | -]
Loads the specified dll to calculate stopping powers before resorting
to the Ziegler default. The "-" form deletes the current loaded
dll (if any), and in addition releases any and all stopping power
tables currently defined. This causes all stopping powers to be
recalculated.
MOT - Modified the stopping calculation routine to include a kludge for
element 93 as Mylar. This is a holdover from the DOS code where
Mylar was explicitely added to the tables for FRES users. Forcing
users to use the stopping exception load method is considered
poor compatibility -- just hope no one really wants to start working
with the transuranic elements.
MOT - Added command "VERsion" to print the current revision information.
Serial number verification now implemented.
MOT - Working with the calibration of spectra is a major pain in the butt.
This will change very quickly.
MOT - MAJOR BUG FIX:
Straggling with forward recoil was in real trouble -- a constant was
not being properly set under inconsistent conditions. I think this
has been fixed.
MOT - Added command to SIM:
FRES_ABSORBER
which is synonymous with the ABSORBER command except that in this
form, the absorber foil is ONLY used if the spectrum type is FRES;
if not, the absorber layer is totally ignored. This allows the same
simulation description to be used for the RBS glancing angle and
FRES spectrum without defining/destroying the absorber definition.
MOT - Added command:
SPECtrum [RBS | FRES | PIXE | NUCLEAR]
to set the type of spectrum in a file. This is currently used only
with the stopper foil modified command (see above).
MOT - Modified the read/write to keep the RBS/FRES/PIXE spectrum type
indicator. This will be incorporated with the ABSORBER feature in
SIM so that the absorber need not be added/removed when working with
joint RBS/FRES simulations.
MOT - Fixed problem with STRAGGLE 1 (and possibly other STRAGGLE values)
with "pointer error" or crash. Overwriting via negative indices (bad!).
MOT - Fixed problem with background not doing the proper graphs. It worked,
but the graphing failed.
MOT - Major problem with Pert has been fixed. It looks like it is working
now. Problem existed with Poisson stastics as well as coding errors.
MOT - Added code so that ~C and ~A on PMDRIV screen gets to the RUMP data
information also.
MOT - It has been suggested that PERT SINGLE is supposed to immediately start
a fit on a single parameter. Since I've forgotten about DOS, let's make
it so. PERT SINGLE assumes that an immediate "VARY" operation will be
specified with the requested change. PERT will then immediately do a
fit and return. If any existing "VARY" setups exist, they will be
retained (thus you can mix multiple and single operations).
PERT SINGLE THICK 1 1000 3000
will do an immediate variation on the thickness of layer 1 between 1000
and 3000 units using the existing definitions for error and normalization
windows.
MOT - Re-Fix MATCH command so properly sets the MODIFY (not DIRTY) flag on buffers.
MOT - Fix MATCH command so properly sets the DIRTY flag on buffers.
MOT - New command via Revesz request. Available at the SIM level.
Usage: MATCH [options]
Command sets correction of current buffer so that it matches the integral
of the simulation over the range. Cursor is used if low channel is /.
Options, which may preceed or follow channel numbers include:
-? this message
-Buffer match to a buffer other than simulation
-NOSet just report value, don't set as new CORR factor
-Silent quiet mode
Command changes the correction factor on a spectra so that the integral
of counts over the region matches the current simulation (or another
buffer is so specified).
MOT - Fixed crash in NT on simulation. This error probably also fixed an
error which would show up if you used diffusing species in the top
layer.
MOT - In honor of Roger pointing out the density error, the element
command now accepts a list. "ELEMENT Si,O,Ca,Th230" works.
MOT - MAJOR FIX: Any specific material units (SiO2, AlP, ...) as a
thickness would fail -- defaulting to /CM2 units independent
of the given density. How come no-one reported this? Isn't
anyone doing quantitative work with compounds? Aargh ...
(my personal excuse is that I'm only interested in Si so never
worry about compounds :-) )
MOT - MAJOR CHANGE in how density of compounds is approximated. Now
correctly averages the cm^3/atom instead of atoms/cm^3. This will
change the conversion of convenience units (A, um) to true at/cm^2
in simulations. For compatibility, a backward mode is available
with the command:
CONFIG DENSITY_CALC COMPATIBLE RETURN
which can be inserted into the rump.ini file. The change does not
affect use of CM2, M/CM2, and specific compound densities -- only
physical units in compounds.
Also, to see the calculated density and thickness conversions (both
to at/cm2 and to A, an option is available on SIM SHOW -DETAIL.
MOT - By request, if the ID of a spectrum is empty, the filename will be
associated with the IDS command.
MOT - Fixed plotting so in PORTRAIT mode can still do an ELEMENT command.
MOT - Added ability read and write via pipes "| zcat file.gz" and
automatic handling of gzip'd files (will read and write). On
read from a pipe, the character is changed to ! so that a rewrite
can be trapped and failed (as opposed to desirable pipe write).
However, once a file is marked as a pipe for reading or writing,
it can be done repetatively as desired. These subtleties apply
primarily to binary read/write although ascii read by pipe is
possible also. The gain though is minimal on most RBS files,
1040 bytes vers 1400 bytes (so 30%). But's there for anyone who
wants it.
MOT - Removed listing of internal addresses from PERT listing. Not
terribly relevent to most users.
MOT - Fixed SPLOT so it works on layer numbers. It's about time!
MOT - Fixed the use of sthickness -- the units of this parameter now has
meaning again. Although it was requested, code assumed that the units
were the same as the layer thickness. Sorry.
MOT - The equation problem finally has me annoyed enough to fix. This now
involves some major changes in the way the equations work to make them
consistent as well as increase the quantification of the parameters
which are used. In the current implementation, the quantitative
meaning of the parameters changes with the unit of thickness specified
for the layer. Also, layer and species compositions were unnormalized
so additional factors enter even in the case of the constant form.
Basic concepts: (1) Try to use the natural unit, if one exists, for each
parameter.
(2) In absence of natural unit, use consistent set for
distances, time, surface coverages, etc.
(3) The diffusion specifies the atomic fraction of
the diffusing species throughout the layer
(4) Result should not depend, if possible, on the
sublayer division. This will involve integral
forms of the diffusion equations rather than the
concentration form.
Specifics: (1) diffusivity - cm^2/s
(2) velocity - cm/s
(3) time - seconds
(4) distances - Angstroms
(5) dose/thickness - units can be specified. Default
depends on equation (angstroms or atoms/cm^2)
Internal work in RUMP is almost always based on thicknesses of 1E15
atoms/cm^2, with atomic density used occasionally to convert to the
equivalent thickness. For implants and gaussians, the natural unit is
atoms/cm^2 anyway, and only in the thin-film case is there an ambiguity.
Since most users do not think in atoms/cm^2, while serious workers
always do, it is necessary to have two different possibility values for
the thin film thickness. For this reason, requests for dose or for
thickness (when it can be interpreted as a dose) can be given units
as well.
Old verions of RUMP added species into the layer composition definition
without normalizing the relative values. So a layer of 100 Si with a
species of 1 Sb was equivalent to a layer of 1 Si with 0.01 Sb. This
problem leads now to having the layer concentrations normalized so that
fractions specified in the equations are in atom fraction. A diffusant
fraction of 0.01 SiO2 into an Al2O3 layer is 1/3 of a molecule of SiO2
per 100/5 molecules of Al2O3.
* For THINFILM, GAUSSIAN, IMPLANT and EDGEWORTH, the film thickness
can be given units. If none given, angstroms will be assumed
for thin films and /cm2 for gaussian and edgeworth. It would be
nice to do the same for thickfilm, but the prompts are totally
wrong. Stuck with thickness being Angstroms (or cm) only.
* For SEMI-INFINITE, THICKFILM and BURIED, the default unit for the
interface position has been changed to the angstrom. However, the
code will recognize if a cm unit is entered (if less than 0.01,
then is assumed to be cm).
* For semi-infinite, the direction has been reversed. All species
diffuse from the surface in -- so the species is at the top of
the layer and the matrix is at the bottom. See below for fix.
* For ERFC, SEMI-INF and EXPONENTIAL, the profile can be moved to
the lower edge by specifying a negative concentration for the
species.
* Added a new diffusion equation, BURIED which is for a thin buried
layer. It is equivalent to the GAUSSIAN but takes D and t
values instead of fwhm.
* The sublayer thickness is no longer automatically set when an
equation is specified. Auto mode works instead with a default
subdivision set during creatr -- it is between 5 and 30 sublayers
depending on the type of equation. This may become more complex
in the future to depend on the scale and overall thickness.
* The equation USER is now much more powerful -- a different equation
can be specified for each layer. X is the distance in angstroms
based on the matrix density! If the diffusant becomes sufficiently
concentrated to change that criteria, it will substantially modify
the result.
Formal definitions:
x -> distance (in cm) from "layer surface". Conversion to cm based
on given density or weighted atomic density of the matrix.
CONSTANT - p0 -> fraction used
frac = p0
composition = matrix*(1-frac)+species*frac
LINEAR - p0 -> Cs atomic fraction at surface of layer
p1 -> C0 atomic fraction at bottom of layer
x0 thickness of layer
frac = C0+(Cs-C0)*(x/x0)
ERFC - p0 -> C0 -> maximum fraction
p1 -> D -> diffusivity (cm^2/s)
p2 -> t -> time (s)
frac = C0 * erfc[x/sqrt(4DT)]
composition = matrix*(1-frac)+species*frac
EXPONENTIAL - p0 -> C0 -> maximum fraction
p1 -> D -> diffusivity (cm^2/s)
p2 -> v -> velocity (cm/s)
frac = C0 * exp[-x/(D/v)]
composition = matrix*(1-frac)+species*frac
SEMI_INF - p0 -> C0 -> saturation fraction
p1 -> D -> diffusivity (cm^2/s)
p2 -> t -> time (s)
p3 -> x0 -> interface position (cm)
frac = C0 * { erfc[ (x0-x)/sqrt(4Dt) ] / 2 }
* Concentration shifts from pure matrix near start of layer (x->0)
to fully added matrix+species at bottom of layer (x->maximum)
THIN_FILM - p0 -> Q -> initial thickness
p1 -> D -> diffusivity (cm^2/s)
p2 -> t -> time (s)
frac = 2*Q / sqrt(pi*D*t) * exp(-x^2/Dt)
* Solution to diffusion of Q from surface into depth. Old
versions of RUMP had a factor of 4 error in this equation.
MOT - Added commands
XCOPY XADD XSUBtract
which act like their counterparts except (1) they are hidden and
(2) they do not attempt to update the simulation buffer before
executing. This can be useful on occassions.
Users should also know that SPLOT simulations are stored in buffer -1.
MOT - Modified REGION command so much more flexible (similar to GENPLOT)
REGION
REGION [channel|bottom|x]
REGION [counts |left |y]
REGION [energy | top ]
The lower counts is still ignored, and the specification in
energy is converted to a channel specification based on the current
active buffer. Old format is used if none of the keywords are
used. (key words are searched for unique characters only.)
MOT - Default RBS search path modified in the ginstall.exe program to
include data directory (oops!)
rump\os2\local;rump\os2\data;rump\os2;rump;
MOT - Modified density table handling so new values can be added to a
file. Specific compound densities are now loaded from a file
"density.tab" from the RbsConfigPath. This can have an arbitrary
number of values. Space for an extra SETDENS (currently=10) is
provided for run-time definitions. Need for more will require
editing the file "density.tab".
MOT - Fixed so rump.ini is really obtained from the RUMP config path
or the environment variable. Prior, used default GENPLOT search
path instead of the RUMP search path on initialization. 3/20/95.
MOT - Changed smoothing to use data outside the window for edge points.
Old code (probably also in the F77 version) used a mixed method of
constant extension on the left, but data extension on the right.
MOT - At same time as fixing elem /, also now allow Si29 as well as 29Si and
Si+29 as valid isotope identifiers.
MOT - Fixed problem with "elem /" or "info /". With dynamic memory alloc,
previous request was forgotten so not meaningful to get last. Made
pointer static.
MOT - Per request of HAA group, inheritance on newly read files is based
on the previously active spectrum. This applies only to spectral
parameters such as beam energy, MCA scaling, etc. Defaults will be
applied on RESET, but a read from a file without full specification
will inherit parameters instead of inheriting defaults.
MOT - Fixed minor problem in RbsCopySpectrum having to do with overwrite
on spectral data.
MOT - Per request of RDR, added -ASCII option to the READ command. This
reads data ONLY as ASCII float, arbitrary number per line ignoring
each line at first error. Up to CMAX (currently 2048) points will
be read. All other parameters in the buffer will be left as defaults.
Usage: read -ASCII
Has not been extensively tested, but seems okay dokey.
MOT - Per request of WSB, added PERT GET/SAVE command pairs. This works
identical to the SIM GET/SAVE commands creating an ASCII command
file containing the current settings of the PERT processor. Let me
know if there are any problems with this segment. Default extension
for PERT command files is .PERT.
MOT - Re-enabled the #pragma pack() structure in rdwr_old.c for GNU_C
compiler. This seems to be allowed for at least linux(tm) and permits
reading of ancient file format. Let me know if other machines using
GNU_C fail.
MOT - Enabled the additional compression mode. CONFIG WRITELEVEL 1 will
now enable advanced compression on REWRITE (about 10-40%). This is
version 1.1 of the data file format. Default initially and with
CONFIG WRITELVEL 0 is the DOS compatability file format [1.0]. The
advanced format is required for sparse 2D spectra characteristic of
the TOF detector.
MOT - Started adding support for Time-of-Flight spectrum analyzers. Use
SIM TOF ON to enable.
Ultimately, idea is that all SPECTRUM types must have a basic subset
of parameters, but then how a collection of energy/yield trapezoids
would be handled differently depending on the type of detection
system. SPECTRUM type would be subclassed for each type of detector.
For now, it is just a simple kludge handling the output for Peter to
write the TOF analysis portion.
MOT - Added PARTicle as alias to BEAM and ECONVert as alias to CONVersion
MOT - Fixed Y axis labels - novel concept to have them read properly
MOT - STOPP is now accessed form the CONFIG subprocess.
MOT - old change now documented. Behavior of element
ELement [-Height { / | }]
will draw a marker for element specified at appropriate surface
channel and optionally at the specified height. Any option will
currently work, but preferred option is -Height.
MOT - Added NORMALIZE command to the SIM module
NORMalize [-species]
The sum of the composition will be set to "sum". Any option
causes the diffusing species sum to be done instead of normal comp.
MOT - Changed behavior of some commands which accept cursor settings.
These commands will now first check for a command line value
before going to the cursor. Allows macros to set the values
without having to do an "encursor no" command. The / option
indicates desire to obtain values from the cursor (which may
still be escaped for direct input).
MAIN:
background { / | } [-full | -noplot | -info]
(1) This will behave differently if used to doing "background 2"
(2) / selects cursor as in old mode
expand { / | }
(1) Expand around the specified channels
blowup { / | }
(1) May create problems with old macros
(2) Default expansion factor is now to abort rather than 2X
PERT:
normalize { / | }
(1) the / causes the cursor to be displayed (also default)
(2) Use of options -entry and -nocursor supported but unnecessary
window -reset
(1) Clears all currently defined error windows
(2) error is synonymous with window
window [-add | -multiple] { / | }
(1) the / causes the cursor to be displayed (also default)
(2) Number of error windows currently limited to 10
(3) If -add or -multiple is not specified, first window is
modified. The -add and -multiple add a new window to list.
(4) Use of options -entry and -nocursor supported but unnecessary
MOT - Added configure command to create new stopping power tables with
specific requirements.
CONFIGURE STOP_TABLE RETURN
particle - incident particle (4He, 14N, ...)
emin, emax - range over which the Ziegler data is fit
cutoff - lower energy of simulation cutoffs
You are welcome Jon.
MOT - Fixed so write and rewrite both clear the dirty and modify flags.
MOT - Fixed so read of old PC format files does not leave dirty and modify
set.
MOT - Implemented the full smoothing functions
smooth [-range { / | } ] [-SV | -CONV | -FFT ]
-SV is the default and is a normal 5 point smoothing algorithm
-FFT uses the same FFT smoothing algorithm as GENPLOT
-CONV attempts to smooth with a edge preserving convolution algorithm.
Increasing the number of iterations sharpes the edge - one
iteration is roughly equivalent to -FFT with FWHM/SCALE as width.
Between 5 and 10 iterations is a reasonable compromise.
MOT - Numerous modifications from reports:
(1) symbol and linetype now work like GENPLOT. identify after a
plot will work correctly. ltype -2 always starts from linetype
2 after a new axis - same with negative symbol types.
(2) numerous message spellings errors and missing CRLF fixed.
(3) message warning that feature does not exist for PROFILE
(4) GENPLOT now defaults to passing the currently active buffer.
MOT - Well, background subtraction hadn't been implemented and there had
been no complaints, so when someone mentioned it, I did not feel any
need to remain compatible. Use of the BACKGROUND subtract has changed
significantly.
(1) Polynomial fits to order 8 allowed - weighting used on data with
sqrt(counts) statistics
(2) Default action is to create a new buffer containing only the
region affected by the background subtract. Rest of spectrum
is simply deleted. This buffer has filename equal to original
but with extension replaced by ".cut". This spectrum is
"active" after the background operation. Multiple "cut"
spectra can be generated from one real spectra.
(3) TMPBUF again gets the original spectrum with region of the
background subtraction set to the fit background.
(4) Option "-noplot" recognized and stops the automatic plotting
following the background subtract.
(5) Option "-full" causes the created buffer to contain the full
spectrum with the background cut region sitting in the middle
of the unmodified spectrum.
(5) Option "-info" causes the fit parameters to be printed to the
screen. This uses scaled X coordinates, so may not be usful.
MOT - Fixed creatr function so pulse pileup shows up above the highest
energy peak. Stupid programming error.
MOT - Added a "calibration" clipboard to the buffer editing in XRUMP. The
parameters from one buffer may be copied to the clipboard, and then
pasted into any other buffer. Clipboard can be configured to copy
a limited subset.
MOT - If QUIT from within GENPLOT in STOPP, program halted with an exception
before. Now gracefully exits with only a warning message (problem
identified by Denis Endisch - why were you doing this??)
MOT - Corrected error in forward scattering cross-section. Had M2/M1 where
M1/M2 should have been. (thanks again to Denis Endisch)
MOT - Incorporated changed from Denis Endisch fixing the COMPRESS error.
MOT - Fixed problem in pert when run twice. Dumb programming error.
MOT - Error in stopping power make routine. Never used the range specified
in the table description - always defaulted to the fit range in the
stopp subprocessor. Need a table modified rewrite to STOPP. For the
time being, the table values always override so automatic generation
of tables will work.
MOT - On exit, user is (by default) asked to confirm exit if any buffers
have been modified but not saved. There is a CONFIGURE subcommand
to modify this behavior.
MOT - Modified "get " slightly. First, see if fully qualified
path is already in the buffers. Second, try to read if the file
actually exists. Third, check if an existing buffer has the same
filename, but different directory. If all fail, return failure.
Allows specification of RBS filenames while changing directories.
MOT - Edgeworth distribution limited to positive values only. Negative
concentrations truncated prior to error message.
MOT - New configuration options:
PROMPT [NICE | ABUSIVE] - nice always responds RUMP:
AUTORETURN [ON | OFF] - autoreturn from SIM/PERT/CONFIGURE
MOT - Added new configuration command, FRES_LIMIT, which sets the maximum
Z that will be tracked on simulations in the forward recoil
geometry. Previously limited to H/D only - now can be set to any
Z. Stopping power tables should be automatically generated for any
necessary interactions.
MOT - Rewrote/reorganized major sections, hope nothing broke. Fully
implemented the PERT with both METHOD DOOLITTLE and METHOD THOMPSON.
There are slight differences, but not clear which is "better".
MOT - Added new command processor, CONFIGURE. Has own help listing. It
will become the general interface for all global modifications of
RUMP, such as loading resonance tables, atomic data bases. Currently
permits on-the-fly setting of the number of buffers.
MOT - Increased number of buffers to 20. No reason to retain old limits.
MOT - Added PLX [ENERGY | CHANNEL] command and associated parms entry. This
is done under protest, but requested by some users. Normally RUMP plots
all data against the energy scale so disparous MCA calibrations can be
compared. Plotting against channel number effectively eliminates the
energy calibrations.
MOT - Fixed error with LABEL [OFF BRIEF ON] command.
MOT - Fixed problem in SIM with isotopes. Had printed out 1H as "1 H" which
could not be parsed correctly again on SIM GET. Also fixed problem in
automatic simulation ID generation.
MOT - Added command "DESCription" to the SIM commands. This DESCription
command sets a description of the simulation which overrides the
automatic generation. SIM RESET clears this description. Description
also saved with the .LCM file.
MOT - Added true "IDENTIFY" command in APLOT.C code. In response to Brunco
request.
IDs --> Puts buffer description on plot as legend
IDEn | IDENTIFIer --> Sets description of buffer (old format)
IDENTify --> Similar to the GENPLOT identify command
MOT - Added "DESCription" to command list in BMANIP.C. Replacement command
for old IDENTIFIER command. Use of IDENTIFIER discouraged now.
MOT - Compiler bug discovered in the ANLYZ.C code. #ifdef CSET2 to patch
for moment.
MOT - ************ CHAMPAGNE DAY **************
************ Dec 17, 1993 **************
All SIM functions seem to reproduce their DOS counterparts with
uncanny precision. Normal RBS, FRES, RESONANCE and STRAGGLE
simulations give results identical to parts in 10^5. Only difference
is that first channel has a value in OS/2 whereas it's always 0 in
DOS. Major rewrite of large sections to simplify debugging work.
Much of the last vestige of F77 structure in the code has been squashed.
MOT - Routine tran_adt.c will convert the DOS .adt files into the new
format for OS/2 version. The new version is simple ASCII - they
are neither large enough nor complex enough to warrent a binary
storage format. Just easier to keep it simple stupid.
MOT - Added logical names TMPBUF and SPLOT which with get or pointat will
point to the temporary buffer where SPLOT leaves its results.
However, the temporary buffer will never be listed in BUFFERS command.
MOT - DOS RUMP always did simulations with FIRST set to 1. RUMP will
now do simulations with FIRST equal to the value in the comparison
buffer. Results are identical in energy, but this new mode allows
channel by channel comparison of the original and simulated spectra
in other modules (like GENPLOT).
MOT - Limits removed on number of knots in resonance files. Arbitrary
number and length of resonance files are now supported.
MOT - Limits removed on number of layers/sublayers in sample structure.
MOT - Scaling of individual stopping powers is not available. Will have
to be a new routine since they can by dynamically calculated, and
old 3 table limit is removed.
MOT - (in docs) New pileup routine implemented based on Jon Custer thesis.
I added enough that it should now be quantitative as long as tau is
set properly. This is now the default mode, although the new command
SIM PILEUP [fast | accurate | none]
can be used to select the old mode (fast). Power-on default is
accurate. Setting tau (whose default is 5 uS) to zero will also
select fast mode on a spectrum by spectrum basis.
MOT - Added new parameter to SPECTRUM structure, tau. This is the shaping
time constant prior to the MCA. Used in quantitative determination of
the pulse pileup. (See above).
MOT - New equation added to the SIM module.
EDGEWORTH .
Sigma is true standard deviation. Kurtosis is specified with the
definition where Gaussian is zero.
MOT - Modified prompts to GAUSSIAN equation to reflect that the mean
and FWHM are specified in Angstroms independent of the user units.
REMOVED FEATURES:
==============================================================================
MOT - Reading of the real "old" format RBS files (such as the VAX ones) is
no longer supported. Old Ryan McFarland binary based files will be
read (1.2 version successfully, 1.3 I think will work but I have no
examples to test).
KNOWN LIMITATIONS:
==============================================================================
MOT - All filenames are considered case insensitive. Don't try using
FILE1.rbs as distinct from file1.rbs. I don't like this feature
of UNIX and it won't be supported in RUMP - there!