Laser Safety Advisor 2000
Version 1.2.2 for AMS 2.08
Ó 2003 Bill Triplett
3. Installation
7. Using the
Function Subprograms
8. The Finer
Points of Using Functions
9. Why the
Software Was Written
10. Ownership
11. Registration
12. Disclaimer
13. Revision History
LSA 2000 determines laser hazard
classifications, hazard distances, and minimum optical densities that are
needed for effective laser eye protection.
The methods used in the software comply with guidelines in the ANSI
standard for laser safety, Z136.1-2000.
The ANSI standard defines three methods of
modeling lasers. Depending on specific
characteristics, any one of the three models can generate a more conservative
result. The ANSI standard requires that
comparisons must be made using each of the three modeling methods, and for all
relevant exposure conditions. LSA 2000
performs the necessary comparisons, and produces a top-level summary.
Similar software is sold for the PC for as
much as $500 per copy. LSA 2000 is
simpler to operate, and it produces better results. It more closely duplicates the results that would be obtained by
manually using tables in the ANSI standard.
LSA 2000 also has the unique advantage that it can be used more
conveniently in the field. It runs on a
programmable calculator.
The program's source code and documentation
are copyrighted. Both can be used
freely, but the original archive files cannot be broken apart, modified, or
included as a part of any other product.
These restrictions mainly exist for reasons of safety. Modified versions of the code would be less
likely to exactly duplicate the modeling methods that are currently being used
by qualified laser safety specialists.
If you have any doubts about whether your original archive file has been
modified, you should go to the www.ticalc.org
website and download the most recent update.
The archive file LSA122AMS208.zip
is packaged for use with Advanced Mathematics Software (AMS) version 2.08, or
higher. If your TI-89, TI-92+, or
Voyage 200 has an older operating system, then you will need to upgrade it
before installing the program. It will
not be difficult to upgrade to the newer AMS; you will need a link cable and
access to the Internet. The AMS 2.08
update is free, and it can be found by browsing the following link:
Check your calculator's current AMS version
by pressing the [F1] option on the default menu. Scroll down the [F1] item list and choose "About." On the TI-89, the "About" option
is not visible, initially. Scroll down
to find it.
Before updating your operating system, first
be certain to back up all data and program variables to a PC, or to another
calculator. Upgrading to a newer AMS
will erase all of the programs and variables in your calculator's RAM, so you
must make a copy of your files in order to keep your data. When performing the backup, it is best to
select and send all variables to the PC as individual files, instead of
creating a single TI-89 backup file. In
some cases, a combined backup file created using one version of the AMS will
not restore onto a calculator that has a different version of the operating
system. You should perform the backup
both ways, just to be completely safe.
When the software is loaded
onto the calculator, the transfer process also attempts to load two keyboard
shortcut programs into the MAIN folder.
Before installing the LSA software, first check to see whether you have
any existing shortcut files named MAIN\KBDPRGM1 or MAIN\KBDPRGM2 located in the
calculator's MAIN folder. Press [2nd]
[VAR‑LINK] and expand the MAIN folder.
Scroll down the list of files, and unlock or unarchive any existing
shortcut files with the same names; then rename them. When this is done, installation is as follows:
1. Verify that you have AMS
2.08 running on your calculator.
2. Transfer "LSA122AMS208.89g"
to your TI-89, or "LSA122AMS208.9xg" to your TI-92+ or Voyage 200.
3. From the home screen of
the calculator, enter the LSA\ACTIVATE( ) command.
Step #3 takes care of tokenizing all of the
programs, and it transfers the appropriate files into archive memory. You must not run the LSA software before
performing step #3. The easy way to
perform step #3 is to press [2nd][VAR-LINK], and then scroll down to the LSA
folder. Highlight the LSA folder name
and press the [right arrow] button to expand the folder. Scroll down to the ACTIVATE program name and
press [ENTER], then press the [ ) ] button to add a right closing parenthesis
character to the command. Press [ENTER]
to execute the LSA\ACTIVATE( ) command.
After installing the program,
a custom menu will appear on the calculator.
When a user runs one of the calculator's built-in applications, the
custom menu becomes hidden; it is temporarily replaced by the calculator’s
default menu. If the LSA 2000 program's
custom menu is ever hidden, you can press the [2nd][CUSTOM] button at the home
screen to toggle it back on again.
Start the LSA\DIALOGS( ) program by choosing [F1][1][ENTER] from the
menu. The program will start prompting
for the following input parameters:
1. Wavelength in micrometers.
2. Beam diameter in
centimeters.
3. Divergence in radians.
4. Pulse width in seconds.
5. Pulse repetition frequency
in Hz.
6. Energy of a single pulse
in Joules.
7. Alpha in milliradians.
8. Mu in 1/cm.
This list is
self-explanatory, with the exceptions of alpha and mu. Alpha is usually zero, except in the rare
cases when a laser's energy is being viewed indirectly after passing through a
diffuser, or after the light is scattered by reflection from a rough
surface. The ANSI standard explains the
alpha parameter in detail, but if you don't know an alpha value you can safely
use alpha = zero, which is the worst case (e.g., an unscattered laser, viewed
directly).
Mu is the atmospheric
absorption factor. For short distances
mu can be treated as zero. In cases
when an observer is located several kilometers away from the laser source, there
can be a significant loss of energy in the atmosphere. If mu is unknown, then use mu = zero; this
produces a conservative answer.
When LSA 2000 prompts for mu,
a recommended value is provided in the same display. The recommended value is a conservative number that describes an
exceptionally clear atmosphere for the specific laser's wavelength.
If mu is zero, the calculator
uses fewer steps to compute the hazard distances for each of the models. If mu is not zero, the distance equation
cannot be solved explicitly. In such
cases the calculator is forced to use a more powerful iterative method. Early versions of the software used the
calculator's built in "nSolve" function to find numeric
solutions. The nSolve method required about
three minutes to generate a complete set of hazard distances for all models,
and for all exposure conditions.
Version 1.2.2 of LSA 2000 now includes a compiled "HD.ASM"
module that replaces the calculator's "nSolve" function. This compiled module uses a much faster
numerical method, so there is no longer any particular speed advantage to be
realized by using a zero value for atmospheric absorption.
ANSI laser hazard classifications are based
on a standard set of binoculars that have 5cm input lenses. People sometimes use larger binoculars, so
the program asks whether you want to consider 8cm or 12cm optics. Calculating hazard distances for the larger
binoculars will not change the resulting hazard classification. The hazard classifications defined in the ANSI
standard are strictly based on 5cm optics, skin exposure, and unaided viewing
conditions. The option for processing
larger optics is there so that you can also determine safe operating distances
in conditions where the Navy "big eyes" ship mounted binoculars might
be present.
Immediately after
installation, the defaults for the input parameters are set as follows:
wavelength, lambda = 1.064
micrometers
beam diameter, a = 4 cm
divergence = 0.002 radians
pulse width = 0.001 seconds
pulse repetition frequency = 5
Hertz
total pulse energy = 1 x 10 -
4 Joules
extended source angle, alpha
= 0 milliradians
atmospheric absorption, mu =
5 x 10 - 7 (1/cm)
consider 8cm = "Y"
consider 12cm = "Y"
Accept all of these default
values at the input prompts to arrive at the initial output display screen, as
follows:
M1
Eye RQOD = 0.0
M1
Eye NOHD = 0.000 km
M2
5cm RQOD = .9
M3
5cm NOHD = .072 km
Eye RQOD means the
"required optical density" for viewing at close range without
binoculars. The zero in the top line of
this screen means that an unaided human eye can safely view the laser; no
filtering is needed.
Eye NOHD is the "nominal
ocular hazard distance" for unaided viewing. NOHD specifies the minimum safe viewing distance for a person
wearing no protective goggles. The
laser in this example is safe for an incidental unaided exposure at the closest
of ranges.
The next line shows that the
RQOD is .9 for 5cm optics. This means
that while wearing a set of goggles with an optical density of .9 at the
specific laser's wavelength, a person could safely stand at point blank range
(or at any greater range) while viewing the laser with standard 5cm
binoculars. A larger value for RQOD
means that a darker filter is needed.
At the bottom of this display
screen, 5cm NOHD = .072 km means that a person without safety goggles would
need to stand more than 72 meters away from the source in order to safely view
the laser using 5cm binoculars. People
using binoculars usually do not wear safety goggles, so the only available cure
is usually distance.
The M1, M2, or M3 at the
beginning of each output line identifies which of the three modeling methods
has produced the most conservative result for that specific line item. M1 is a single pulse (SP) model. M2 is a continuous wave (CW) model, and M3
is a repetitively pulsed (RP) model.
Notice that for 5cm optics, M2 generates the most conservative
RQOD. M3 produces the largest 5cm NOHD.
This example shows that there
is no way to pick a single "correct" method of modeling a pulsing
laser system when computing NOHD and RQOD values; every output parameter must
be calculated using all three models and compared on a line by line basis. LSA 2000 does this internally. The next output screen shows larger RQOD and
NOHD values for 8cm and 12cm binoculars.
M2 8cm RQOD = 1.0
M3 8cm HOHD = .118 km
M2
12cm RQOD = 1.0
M3
12cm NOHD = .208 km
The next screen gives the
ANSI hazard classifications for each model.
M1
SP class = 3a-CAUTION
M2
CW class = 3b
M3
RP class = 3b
The laser in the example is a
class 3b system, because 3b is the worst of the three results. M3 produces the most conservative set of
results, so M3 should be used when determining the Accessible Emissions Limit
(AEL) that will be displayed on the next output screen.
Notice that M2 and M3 both
appear to generate identical results when looking at hazard
classification. So, how does the LSA
2000 program decide that M3 is more significant when determining the most
meaningful AEL? In this example, M3
produces a larger hazard distance, and hazard distance is used as the
tiebreaker for the three models.
If two or more of the models
happen to produce the same maximum hazard classification, then NOHD values are
compared for naked eye viewing. If NOHD
values for naked eye viewing also result in a tie, then hazard distances are
compared for 5cm aided viewing conditions.
If all three parameters produce a tie, then the program chooses the
lowest M number of the equally ranked models.
In this example M3 wins, so the subsequent AEL screen appears as
follows:
Model
= 3
Class
= 3b
AEL
= 150.0E-3 Joules
Qf
= 55.09E-6 Joules
AEL is not displayed for the
other models. This single output screen
completely explains why the overall laser classification is 3b. It shows that the most relevant model is M3,
and the total effective energy that could get into an observer's eye during an
exposure (Qf) is less than the M3 AEL for a class 3b device; therefore, this
laser qualifies as a class 3b system.
The effective energy or power
displayed on the AEL output screen will always be less than the AEL, except
when the output screen describes a class 4 system. For a class 4 laser, the program can only show the (exceeded)
class 3b AEL for comparison, because there is no such thing as a class 4
AEL. In other words, there is no upper
limit to how powerful a laser can be while still qualifying as a class 4
device.
The next output screen shows
the laser's energy and power. Qo is the
output energy per pulse. The Greek
letter Phi represents power in laser terminology, so [Phi]o is the symbol for
power in an individual laser pulse. The
value [Phi]avg is the average output power.
Energy and power figures are displayed followed by a list of some of the
constants used for internal calculations.
tmin
= 50.00E-6 seconds
n = 50.
k = 1.
Most users will not need to
know these three values, but a trained Laser Safety Specialist (LSS) can use
them to manually check the automated analysis.
The next output parameters are as follows:
MPEsp = 50.61E-6 J/cm^2
MPEexp
= 5.000E-3 W/cm^2
MPEtsp
= 50.61E-6 J/cm^2
These intermediate Maximum
Permissible Exposure (MPE) figures are used as inputs into equations for
determining the corrected MPE values for models 1, 2, and 3. MPEsp is the single pulse MPE. MPEexp is the exposure MPE. MPEtsp is the thermal single pulse MPE. The program finishes by displaying the
corrected MPE values for each of the three modeling methods:
M1
MPE = 50.61E-6 J/cm^2
M2
MPE = 100.0E-6 W/cm^2
M3
MPE = 19.03E-6 J/cm^2
You can press the [ENTER]
button and cycle through all of the output screens in a perpetual loop. Pressing the [ESC] button breaks out of the
display cycle. This means that if you
miss reading one of the output values, there is no need to stop the program and
run it again. Just keep cycling the
output screens.
The [Green Diamond][1]
keyboard shortcut is a faster way to start the program. If you decide to run the analysis again,
without changing any of the input parameters, the program will notice that the
inputs have not changed, and it will skip the repetition of calculations. It jumps forward to display stored results.
As an alternative to the
LSA\DIALOGS( ) program, the LSA\LASER data variable can be directly edited
using the calculator's built in data/matrix editor. This can be a more convenient method of entering laser
parameters.
The LSA\LASER variable is set
as the default editing file each time LSA runs. This means that if you only want to change one parameter, you can
start the data/matrix editor on the [APPS] menu, and just choose
"Current."
After you edit the LSA\LASER
data variable, you should press the [HOME] button to return to the home screen. From the home screen, you can start the
analysis of the new data by using another keyboard shortcut. Pressing the [Green Diamond][2] shortcut
will skip past the input prompts, and it will immediately start the
analysis. Using these two keyboard shortcuts,
it is not necessary to have the custom menu visible at the top of the
calculator's screen.
If an analysis begins, and no new data has
been entered, the [Green Diamond][2] shortcut will jump directly to the display
of stored values. This makes it easy to
quickly access figures for a laser that you have recently analyzed.
When entering numbers in
scientific notation, by default the TI calculators require clumsy
restrictions. For numbers with negative
exponents, you are supposed to enter the negation symbol "(-)"
instead of using the normal minus button.
I disliked this "feature" enough that I modified my program to
parse all numeric inputs and make corrections without operator action. While processing the input prompts, the
program can automatically accept either type of negative symbol at the start of
a negative exponent.
On the TI-92+ and Voyage 200
calculators, the "EE" button for entering numbers in scientific
notation is not available as a convenient top level button. This really bugged me, so my program has
been keyed to accept anything that looks like an exponent symbol. Instead of typing the "EE" button,
you can type an alphanumeric letter "E" in either upper or lower
case. You can even use a pair of
alphanumeric "E" characters, in any combination of case. Note that this high level parsing will only
apply when running the LSA\DIALOGS( ) program.
If you directly edit the LSA\LASER data variable to provide input
values, then you must deal with the normal restrictions for valid numeric inputs.
When the program asks a yes
or no question, any answer that does not contain an upper or lower case letter
"y" will be treated as a "no" response. On the TI-89, the "y" button is
easy to access, but the "n" button is not, so on that machine you can
answer "no" by typing a letter "x" into the prompt.
You can use the function keys
of the calculator to find MPE values directly.
The easiest way to do this is by storing values for lambda, t, and alpha
in variables in the calculator's current working directory before accessing the
function subprograms on the custom menu.
For example, suppose lambda = .532 micrometers, t=50 seconds, and alpha
= 50 milliradians. This is the problem
shown in the worked example (#59) on page 116 of the ANSI Z136.1-2000.
The necessary symbols for the
Greek variable names are listed on the custom menu, under the [F4] button. Use the [F4] menu to store numbers into the
variables by using the following keystrokes:
[5] [0] [STO] [F4] [1]
[ENTER]
This stores 50 milliradians
into the alpha variable.
[.] [5] [3] [2] [STO] [F4]
[2] [ENTER]
This stores .532 micrometers
into the lambda variable.
[5] [0] [STO] [T] [ENTER]
This stores 50 seconds into
the t variable. Notice that the [T]
button is a dedicated button on the calculator's keypad.
After entering these values,
the example in the ANSI standard can be solved in less than five seconds. This is a remarkable feat, considering the
complexity of the example problem, and the amount of work that would be needed
to solve the same problem manually.
After the starting values are stored, use the following sequence:
[F2] [2] [ENTER]
This executes the
LSA\T5B(lambda,t,alpha) function. The
T5B( ) function calculates values that would be listed in table 5b of the ANSI
standard.
The LSA\T5B(lambda,t,alpha)
command exactly reproduces all of the work shown on page 116. Just be aware that the programmed functions
corresponding to ANSI tables 5a and 5b will always return output values in
units of Joules/cm^2. The ANSI tables
sometimes list the output values in Watts/cm^2, and sometimes in Joules/cm^2. If you want to see your MPE value listed in
Watts/cm^2, divide by time:
[F2] [2] [/] [T] [ENTER]
This set of keystrokes
returns the extended source MPE value of 25.41 mW/cm^2, just like the worked
example.
Example #59 in the published
standard shows that it is necessary to compute the extended source MPE based on
thermal effects, then compute a separate MPE based on photochemical effects,
and then compare the two values. The
correct answer is which ever represents the worst case. The T5B( ) function automatically performs
both calculations, internally, and compares the results before returning the
worst case.
All of the programmed
functions under the calculator's [F2] button use the same input variables in
the current working directory. This
means that after using one of the programmed functions you can quickly lookup
results from the other functions by choosing the other function names from the
[F2] menu and pressing [ENTER]. When
performing a manual laser hazard analysis, a trained LSS will usually need to
visit most of the corresponding ANSI tables, so these programmed functions can
save a great deal of time while allowing a completely custom analysis.
The lookup functions all
produce numbers that have the same units that would be used in the equivalent
ANSI tables, except that the functions always return their MPE values in units
of Joules/cm^2, as shown in the example above.
When manually operated, the
function programs do not directly access the lambda, t, and alpha values that
are stored in the data variable named LSA\LASER. This allows an operator to leave the LSA\LASER input values
untouched while separately using the function programs to perform a manual analysis
for comparison.
Function programs can also be
started by explicitly entering numbers as arguments inside the parenthesis, in
place of the variable names. The
functions can be treated just like any other math functions that require
numeric arguments, and they can even be embedded in equation expressions.
If you are familiar with the
graphing capabilities of the TI-89 calculator then you can choose a wavelength
and an exposure time, and then have the calculator automatically generate a
graph of MPE versus alpha. You would
only need to set the graphing window scale to an appropriate range, and then
create a graph equation that references one of the function subprograms. Try assigning values for lambda and t in the
current directory, and then substituting the independent graph variable “x” as
the argument for alpha.
On the custom menu, the
function key [F2] is labeled “Lookup.”
This is because the "Lookup" menu allows you to quickly access
values that could be obtained (much more slowly) by manually looking up numbers
in paper tables. LSA 2000 also
generates a separate unique set of output tables that are retained in the
calculator's memory when performing an automated analysis. The output tables are stored as matrix
variables with names that are listed under the [F3] "Table" option on
the custom menu.
If you access the [F3] menu,
and select an output table, then the matrix variable's name will be copied into
the command line. Pressing [ENTER] will
cause the contents of the selected matrix to be displayed in the calculator’s
history area. This works just as if you
had typed the matrix variable's name into the command line. You can use the arrow keys to move the
highlight up into the history area, and highlight a displayed matrix. Then, scroll to the right to see more of the
numbers. If a selected matrix is too
tall to fit into the display, then while it is highlighted you can use the TI‑89's
[SHIFT] [DOWN ARROW] key to scroll down and see more of the numbers. Otherwise, the down arrow key would just
move the highlight back down to the command entry line. On the TI-89, the [SHIFT] button is black,
with an upward pointing white arrow.
For scrolling the contents of a selected matrix, the TI‑92+ uses a
blue button with a picture of a hand, instead of using a black shift
button. Otherwise, the scrolling
function is identical.
It is beyond the scope of
this user’s guide to explain all of the numbers that can appear in these output
tables. The [F3] key is available for
advanced users (certified laser safety specialists). Such users might require access to more detailed information when
closely examining and verifying the results of an automated analysis. An average user will almost certainly use
the program more quickly, and simply, by entering the required laser parameters
and reading the very first output display screen.
The first output screen is
usually all you need. It tells you
exactly how far away you need to be standing in order to be safe without
wearing any protective eyewear. It also
tells you exactly how high the optical density will need to be in your
protective eyewear (at the specific wavelength) so that no harm can come from
being hit directly in the eye at close range (other than psychological shock).
I developed this software
because I had discovered cases where other laser analysis programs did not
provide exactly the same answers that I had obtained manually by using tables
in the published ANSI standard.
Most government agencies use
an Air Force program called LHAZ to convert laser parameters into NOHD and RQOD
values. LHAZ is usually accepted as
being the final word when choosing protective eyewear, and when planning the
locations of test equipment for outdoor laser operations.
LHAZ seems to approximate MPE
values. It seems to generate figures
that are usually slightly more conservative than the actual numbers that are
defined in the ANSI tables. These MPE
approximations are not a serious problem.
At worst, they would only result in people wearing slightly stronger
protective eyewear than would be absolutely necessary. This would cause no harm.
In other cases, I have been
surprised to find that LHAZ seems to produce results that are *LESS*
conservative than the ANSI standard.
The most notable example has been with the calculation of NOHD. To be fair to the creators of LHAZ, finding
a value for NOHD is difficult. It
involves looking up constants from tables in the ANSI standard, and then
feeding the constants into a very bad-tempered equation. I will avoid reproducing the offensive
equation in this user's guide, but the expression is replete with logarithms
and exponentials. The hazard distance
term appears on both sides of the equals sign, and the expression cannot be
simplified.
Finding an accurate value for
NOHD requires using iterative numeric approximation techniques. The problem with using a numeric approach is
that some specific combinations of input values can occasionally produce a
relationship with discontinuities. The
expression for hazard distance can sometimes produce imaginary numbers. In other cases, small errors in the math
functions that are used to approximate logarithms and exponentials can build
with successive iterations, and produce large approximation errors in the
results.
In a recent operation when my
organization planned to fly a high-powered laser on a Navy aircraft, LHAZ
generated a NOHD value that was almost 50 percent smaller than the figure that
I had generated with a manual analysis.
I was so surprised by this result that I started over. I made certain that I was using the most
recently updated version of LHAZ. I
looked up the constants from the printed ANSI tables, and fed the values into the
hazard distance expression three times.
I asked another certified LSS
in my organization to review the system.
Our results agreed. Ultimately,
we took the list of parameters to the chairman of the ANSI standards committee. He verified our calculations manually. His verification does not mean that he
endorses my LSA 2000 program, or that he thinks it is a better product. He merely confirms that the output from LHAZ
is sometimes incorrect.
After this set of adventures,
I became intrigued with the idea of writing a program that would follow exactly
the same method of analysis that I would use manually. I became certified as an LSS, and I
discovered that there was no Navy sponsor interested in paying me to develop a
program to accurately reproduce the analysis methods that I had been trained to
use. In my professional capacity as a
Flight Test Engineer, when I am required to perform an analysis, I am expected
to do it manually - or use LHAZ.
A manual analysis can be very
slow. If a specialist knows exactly
what to do, the job can still require several hours of button smashing to
accomplish all of the manual calculations for a single system. Therefore, as a hobby project and as a
public service, I decided to take a short vacation away from my Navy job and
create the LSA 2000 program.
I am presently revising the
software to run directly under Windows.
Actually, I started the programming project in a PC environment. I switched over to the TI-89's programming
language shortly after I discovered that my TI-89 had better numeric accuracy
compared to some of the math functions in my PC programming libraries.
I ran a few experiments to
test the accuracy of the calculator, and then I switched over to developing the
code on the new programming platform. Making
this laser analysis software fit into the TI-89 calculator’s memory has been
something akin to building a nuclear submarine in a bottle, but it has been a
fun challenge. The calculator is able
to support all of the necessary functions in a convenient package.
Before writing the LSA 2000
program, I checked with my Navy legal council to see whether I would own the
finished product. The answer is yes; I
own the software.
I am a Navy employee, but I
own the LSA 2000 program because no Navy resources (either mechanical or human)
have been used for the development of LSA 2000. My training and my certification as an LSS do not qualify as Navy
resources being used to develop the program, because no time has been spent
developing the program during my certification training, or on the job.
For the Navy's purposes, my
training for how to perform an analysis has been provided only to show me how
to accomplish a manual analysis. I
still perform the calculations manually when I analyze a laser during my office
hours, so the Navy has received (in full) what it has paid for by sending me to
training. As long as I am not divulging
national secrets, what I do with my math and programming skills during nights
and weekends is my own business. The
main limitation is that I cannot include a copy of the published ANSI standard
as a part of this software package. If
a user wants that, then they need to buy the document from the ANSI standards
organization.
My Navy duties keep me busy
with other demanding projects, and no sponsor seems interested in paying me to
write or update the program’s code during the working day; therefore, I am
firmly resolved to spending zero office time working on the development of this
software. This product will be
maintained as an evening hobby. In most
cases, it only receives my attention after the family has gone to sleep.
Another interesting legal
requirement is that while I own the software I am not allowed to directly
market it as a product to the U.S. government, my employer. A third party commercial organization could
purchase the program from me, revise it, and then market it to my present
employer. The strange irony is that I
am not allowed to do any such marketing directly, which would obviously cut
costs for the government.
The simple virtue of being a
government entity does not automatically give any agency the right to use, market,
distribute, modify, or reverse Engineer the source code without my permission.
If you run this program, then
you should register. Please send all
license requests to my commercial email address at triplett@gmpexpress.net with
LSA as the subject. Please include a
physical mailing address, an email address, and a daytime telephone number.
After registration, you will
receive a license number. I will only
answer technical questions about the software if emailed messages with
questions also contain valid license numbers in the messages. Please do not send requests for other
programs, and please do not send laser parameters for me to analyze for you.
You are free to distribute
copies of this program to other users.
All of the original program files and this documentation must be
distributed in the originally packaged archive, without modification. You are not allowed to include this program
or the documentation in any other distributed product without my permission.
LSA 2000 is not a substitute
for a certified LSS. The user assumes
responsibility for all risks associated with performing a laser hazard analysis,
and I make no warranty for the output of the program.
Even though LSA 2000 is a
superior product, and even though it has consistently reproduced the results of
my manual calculations, it can still be wrong.
The best way to analyze a system
is to find two certified laser safety specialists. Have both specialists independently examine your laser, manually,
without consulting each other. Remember
that if there is agreement among the results of the two experts, they might
still be wrong.
If you can't get your
specialists to agree, then you should get in touch with the ANSI standards
committee for laser safety. Their
organization is available on the web, and their qualified experts can be hired
to perform analyses, and assist with collecting test data.
Version 1.1:
The original archive file, LSA208a.zip, was
posted to ticalc.org on March 23, 2003.
The archive file was updated on March 25th to give the program a slightly
neater user interface. The final update
of LSA208a.zip on April 6th contained no further change to the program; it just
had better documentation. The user’s
guide included the first explanation of the programmed “lookup” functions.
Version 1.2.2:
The archive file "LSA122AMS208.zip"
for version 1.2.2 was posted to ticalc.org on May 12, 2003. Version 1.2.2 contains versions of code for both
the TI-89 and the TI-92+ calculators.
The TI-92+ version takes advantage of the larger display of the TI-92+
and Voyage 200 calculators, and it uses fewer output display screens. The biggest improvements in the analytic
engine fall into two categories. One,
the program is much faster because it bypasses using the “nSolve” function when
generating numeric solutions for implicit equations. Two, the program is much better at screening out nonsensical
input combinations that might otherwise cause division by zero errors if
processed. The archive file
"LSA122AMS208.zip" was updated most recently on May 19 to fix a
hyperlink in the user's guide by removing an extra "space" character
in the hyperlink. This was overlooked
in the previous revision, because I was not aware that archive files uploaded
to WWW.TICALC.ORG cannot contain space characters in their file names.
Planned:
I still have not added a feature to allow
analyzing systems that have irregularly shaped beam cross sections. The current version is designed to work with
the most common case, the case where a beam's cross section has a circular
Gaussian distribution. Look for an
eventual update that will handle a variety of other distributions. Another possibility is that I might create a
version of LSA 2000 that can work with older calculator operating systems. The TI-89 Calculator operating systems
before AMS 2.08 can be handled if I develop my own patch to turn off the
automatic alpha lock feature in the older AMS versions. For now, just be sure to use an operating
system greater than or equal to AMS 2.08.
Bill Triplett,
May 19, 2003.