Laser Safety Advisor 2000

Version 1.2.2 for AMS 2.08

Ó 2003 Bill Triplett


Contents:

 1. Purpose of the Program

 2. Operating Requirements

 3. Installation

 4. Providing Input

 5. Reading Output

 6. Power User Techniques

 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

 


1. Purpose of the Program

[contents]

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.


2. Operating Requirements

[contents]

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:

http://epsstore.ti.com/webs

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.


3. Installation

[contents]

 

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.


4. Providing Input

[contents]

 

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.


5. Reading Output

[contents]

 

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

 


6. Power User Techniques

[contents]

 

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.

 


7. Using the Function Subprograms

[contents]

 

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.

 


8. The Finer Points of Using Functions

[contents]

 

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

 


9. Why this Software Was Written

[contents]

 

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.

 


10. Ownership

[contents]

 

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.

 


11. Registration

[contents]

 

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.

 


12. Disclaimer

[contents]

 

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.

 


13. Revision History

[contents]

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.