SIMION® Industry standard charged particle optics simulation software.
Newsflash: SIMION 8.1.1 is here: dielectrics, new examples + preview of permeability; ASMS2012 posters; major improvements to enhanced surface accuracy feature coming soon (details in Check for Updates).
About | Documentation | Community/Support | Downloads | Ordering

SIMION Software Change Log

For the latest list of changes with links to issue reports, see the online version of the change log, http://simion.com/changes .

  • The latest SIMION 8.1 test release is 8.1.1.0-20120430 (binary and full installer + E.A.).
  • The latest SIMION 8.1 production release is 8.1.1.1-20120514 (binary and full installer).
  • The latest SIMION 8.0 production release is 8.0.7.48-20120030 (binary only).
  • The latest SIMION 8.0 production release is 8.0.4.00-20080101 (binary and full installer).
  • The latest SIMION 7.0 production release is 7.0.5.00-20070525.

Key: X=fix, A=addition, C=change, (lowercase)=minor, *=user-requested, B=backported to 8.0

8.1.1.1-20120514

  • A SLTools(STL->PA): New solid strategy: solid under surface normals in STL->PA conversion provides much of the same accuracy as no extra solid points but ensures electrodes are solid. This is now the default strategy. See solid strategy. [*B]
  • A SLTools(STL->PA): New option to overlap/compare STL and PA objects in “STL->PA” View output window, available via “PA” and “STL” checkboxes. Useful for checking conversion accuracy. ref
  • X SLTools(STL->PA): Fix non-“square cells” with “region rotate” defined. mm/gu sizes were being applied to wrong axes, causing obvious distortions to geometric aspect ratio.
  • A SIMION Example: random_fly2: new example of reloading a FLY2 file from a workbench user program and passing adjustable variables to it.
  • A Doc(surface_enhancement): new page on surface accuracy improvement features.
  • X GUI(marking): Fix mark selections losing focus about five seconds after start of dragging mouse on Modify and View screens. Affects Vista/Win7 (not XP) with SIMION 7.0-8.1.1.0. (Details: was due to Vista “ghost window” feature in PeekMessage.) [*B]
  • x GUI(Refine): Fix Refine window controls disabled when loading IOB from batch mode (simion.exe example.iob or simion.command 'example.iob') or Windows shortcut. [*B]
  • x Print: Fix “scaling factor” on Print Options screen getting reset to 1. Affects WMF/EMF/PNG/BMP/JPG outputs in ~8.0.5-8.1.1.0 [*my-20120402,B]
  • 8.0.8.1-20120514 also released with backported bug fixes.

8.1.1.0-20120430-TEST

This service pack release adds dielectric material support for Refine, a new “field_emission” example illustrating multi-PA refines and emission from curved surfaces, new API functions for accessing workbench fields, a variety of new examples and documentation, and other features. “Early access mode” is also enabled, allowing previewing new magnetic permeability and magnetic vector potential capabilities in Refine slated for SIMION 8.2.

SIMION “early access mode” is now enabled to allow early preview access to a few new features slated for SIMION 8.2:

8.1.0.48-20120130

  • X GUI(View): Fixed View screen crashing in drawing certain PA instance rotations (Issue I588). Affected 7.0 - 8.1.0.47 in rare cases, though more frequently since 8.0.7-TEST5. [*][B] Related also to particle splat detection (Issue I223).
  • x API(simion.command): Fix possible crash indirectly resulting from command raising exception.
  • Example(ionfunnel): Allow RF adjustment in funnel2 example and warn about DC adjustments. Add funnel GEM.
  • a Doc(emittance): Add beam emittance description.
  • a Doc(cfd): Add notes on use with CFD programs.
  • c Doc(fast_scale_extension): Expand/clarify notes on fast scalable solution feature.
  • c Doc(demotour): Update old Tour of the SIMION Demo article.
  • c Doc(magnetic_potential): Add more notes on magnetic potential theory.
  • 8.0.7.48-20120130 also released with backported bug fixes.

8.1.0.47-20120111

  • A Example(pseudopotential): New example for pseudo-potential calc/plotting in RF trap.
  • x Refine(Poisson): Trivial improvements in Aniso Poisson Refine convergence speed. In only initial (skipped) iterations, corrections were made to Poisson space-charge contributions near electrode surfaces in PA’s with anisotropically scaled cells. Although this change could improve Refine speed some (in practice, it does not seem to), it does not affect final result correctness and therefore is unlikely noticible.

8.1.0.46-20120103-TEST

This fixes some issues in 8.1.0.45.
  • X SL Tools: fix crash on PA viewing. Broken recently in 8.1.0.45.
  • x internal: updated support DLLs to latest versions.

8.1.0.45-20120102-TEST

SUMMARY: This release has significant updates to the Poisson capabilities, including new examples showing optimized time-independent space-charge mode, (experimental) vector magnetic potential, and RF. Some updates/fixes are also made in various areas, including field plotting.
  • A Refine(poisson): Poisson solver can refine .PA# and .PA0 files now (not just .PA files). See Poisson Solver in SIMION.
  • A Refine(poisson): (experimental) Added vector magnetic potential solving (experimental support). See Magnetic Potential and examplespoissonmagnetic_vector_potential.
  • A Refine(poisson): Unit scaling factor can be configured in pa:refine. Allows the Poisson solver to be used more generally for things other than electric fields (e.g. vector magnetic fields, gravity fields, or heat). See the pa:refine “units” API in Supplemental Help.
  • A Example(poisson): Updated piclib library to support a new ‘current’ solving mode, where particles traced represent currents, space-charge is assumed time-independent, and refines are performed between reruns. This can be much more efficient than before. Various restructuring of the piclib code and example file structure has also been made. See Poisson Solver in SIMION > “Computing charge density from trajectories”. Also see updated pierce and new pipe examples.
  • A Example(poisson): Added new sub-examples: pipe_with_charge, pipe_with_beam, RF octupole, and static_chargesphere_simple (a simpler static charge example), and magnetic_vector_potential. Renamed field_2dpla/field_2dcyl examples. Added palib library.
  • A Programming(variables): New sim_grouped and sim_repulsion reserved variables. to control grouped mode and charge repulsion type. See Workbench Program Extensions in SIMION 8.1.
  • C Example(contour): contourlib81 significantly refactored, and new vmin/max/v0/v1/vautoscale/vscale fields.
  • c Help(Supplemental): Cleaned up listings of API functions in Help Index.
  • c FastAdjust: Fast adjust no longer automatically reloads .PA0 from disk if changed in memory (e.g. Poisson Refine). Affects GUI and pa:fast_adjust.
  • a GUI(PRG): User Program button on Particles tab now opens any old .prg files too [*tz20110826]
  • c API(simion.pas): Setting pa:size no longer clears array if array size unchanged.
  • c FLY2/style: add trailing new lines when saving fly2 files.
  • a CrashDump: Enabled 64-bit crash traceback reporter (previously only available on 32-bit).
  • c GUI: Autocomplete full file names in Data Recording and Print Options screens.
  • c internal: Updated GUI library.
  • X Poission: Fixed occasional PA corruption (non-electrode points changed to electrode points) at locations where mouse is hovering (voltage display) when refining a PA from a user program in the View screen. Affected poisson piclib enabled examples in particular.
  • x IOB(load): Fixed extraneous warning about ng mismatch on magnetic PA load.
  • x API(simion.pas): Fixed pa:refine historical_memory_factor argument wrongly raising error.
  • x GUI(View): Fixed Dots speed slider was reversed. Since 8.1.0.

8.1.0.42-20111213-TEST

8.1.0.41-20111207-TEST

  • A Example(lens_properties): added particle_spread_measurement sub-example. [*]
  • a Example(geometry): add torus example
  • x Example(poisson): rename C_per_mm_per_particle to C_per_m_per_particle. [*as20111207]
  • x GUI(Windowing): fix dialog box sizing quirks (e.g. very tall), particularly for multiple monitors or partly off-screen windows. Affects >= 8.1.0.4. [*bm20111207]

8.1.0.40-20111205-TEST

SUMMARY: New workbench user programming segments are available to simplify user programming, and many of the examples have been updated accordingly. See the much improved “geometry_optimize”, “tune”, “spectrum”, and “lens_properties” examples in particular. SIMION can now automatically create PA files from GEM file during IOB loading. The gas flow (collision_sds\test3.iob and faims) have been updated updated to take advantage of SIMION 8.1’s ability to use PA files for defining and visualizing gas flows. Various other bug fixes and usability improvements were made.

DETAILS:

  • A Programming(segments): A new flym user program segment provides a simpler way to express a series of re-runs (by calling run). Example:

    simion.workbench_program()
    local V1
    function segment.flym()           for i=1,10 do V1 = i; run() end   end
    function segment.fast_adjust()    adj_elect01 = V1                  end
    

    See Workbench Program Extensions in SIMION 8.1 for details. A number of the examples have been updated to use these new segments: Example(geometry_optimize) Example(spectrum) Example(tune) Example(faims) Example(lens_properties).

  • A Programming(segments): New initialize_run and terminate_run user program segments are called exactly once prior/after run. See Workbench Program Extensions in SIMION 8.1 for details. A number of the examples have been updated to use these new segments, thereby simplifying and improving the robustness of the code: Example(emittance) Example(excel) Example(lens_properties) Example(spectrum) Example(tune) Example(electrostatic_induction).

  • A IOB(GEM): PA files can now be automatically created from GEM files on loading IOB’s. For example, if test.iob is loaded, and test.iob references lens.pa0, but no lens.pa0 nor lens.pa# exists on disk, but a lens.gem does exist, then upon user confirmation, the lens.gem will be used to create the lens.pa#, and lens.pa# will then be refined to create the lens.pa0.

  • A PA(Format): A new ‘unrefinable’ flag can now be set in the .PA file to safeguard against accidental refining of certain PA’s (e.g. suppress prompts to refine on IOB loading). A typical example is a .PA file that is refined and then cropped (“Crop”) (to reduce RAM during fly’m) but should not again be refined since doing so would discard the effect of the boundary conditions that were cropped out. Another example is in using the feature to store gas flow (pressure, temperature, velocity) profiles in PA files, as the latest collision_sds\test3.iob example does, in which case Laplace is not applicable. This can be set upon “Crop” or via pa.refinable.

  • X PA(Refine): Fixed “No Adjustable Potentials Found” error on fast adjusting a PA# file with all non-positive valued electrodes (e.g. examplesimsims.pa#). Was regression in 8.0.6-TEST17 through 8.0.7.31 (8.1.0.31). [*bm20111205]

  • X Recording: Fixed corrupted Data Recording Events flag (Ion’s Start or Ion’s Every Time Step events) Issue I587. Affects 8.0.0 and possibly 7.0. [B]

  • x GUI(Program Test): Show Xref Listing for PRG files didn’t display array type (and could crash) for ADEFS/ADEFA vars listed under Array Variables Defined. Affects 8.0.0 (not 7.0.5). [B]

  • x Programming(segments): Fixed various problems if errors raised inside segments. For example: function segment.terminate() error 'opps' end

    • Fixed: Any error raised in the terminate segment was not immediately aborting the run; rather, the terminate segment continued to be called for remaining particles, leading to lots of error messages. [B]
    • Fixed: Any error raised in the initialize segment was not always causing a failure status at the end of the Fly’m. This only affected Fly’ms in GUI mode (not non-GUI batch mode). [B]
    • Fixed: Particle memory leaked if error raised in init_p_values. Might only be noticed in simulations with lots of particles. [B]
  • x Programming(startup): Traceback (not crash) if startup program raises error. [B]

  • x GUI(View): Fix crash on loading workbench from Load button on Workbench tab. Only affects 8.0.7 (e.g. 8.0.7.22) not 8.1. [B][*ts20111115]

  • C Rerun: Rerun state is reset at end of Fly’m to value at start of Fly’m. Related to Issue I489. [*][B]

  • c GUI(Refine): On refine complete, display “Delta=0.001 V” rather than “Error 0.001” since new users can misinterpret “error” as failure or as accuracy against theory, when actually it is a maximum absolute change in potential between iterations. [B][*or20111020]

  • c GUI(Refine): Improve error message “Failed saving PA file: Access is denied.”. This error message typically occurs on attempt to refine a PA# file in a directory you don’t have write permission to, such as c:Program FilesSIMION-8.1examples . SIMION now gives a more meaningful error message: The operating system is not allowing you to write the file QUAD.PA#. Hint: Copy the folder C:\Program Files\SIMION-8.1\examples\quad to some location you have write access to, such as your personal Documents folder. The Windows Program Files folder typically allows write access only to administrative users. [*or20111020]

  • c GUI(FastAdjust): Display notes about meaning of electrode #0 when fast adjusting basic (.pa) array. [*or20111020]

  • A Example(solenoid): Add toroid example too.

  • C Example(contour) (contourlib81) - Added x,y,z options to plot for convenience - Added npointsx,npointsy,npointsz options - Moved dot to end of vector; center lines on scalar - Added missing solenoid81.iob example

  • C Example(collision_sds):

    • A Support storage of gas flows in SIMION PA files (see test3.iob).
    • A Incorporate SIMION 8.1 ‘contourlib81’ gas flow plotting (see test2.iob/test3.iob).
    • c In reading array text files, avoid problems with Unix-style line endings and NaN values. Also faster read_file_numbers.
    • c Disable SDS when pressure is zero (rather than raise error), like HS1.
    • c Extracted out arraylib and textfilelib into separate files.
  • C Example(faims)

    • X Fix treatment of sign on mobility constants for negative ions when SDS_faims_mode=1. Behavior is now consistent with SDS_faims_mode=0. [*mo20111112]
    • X squarewavelib: Improved precision loss in square waveform timing (see README).
    • A Added cylindrical_transverse sub-example (flow around axis).
    • a Added cylindrical focusing discussion to README.
    • c Enable Poiseuille flow via adjustable variable (on by default) in examples.
    • See also collision_sds changes above.
  • A Example(tune): Added new tuning sub-examples: tune_series, tune_simplex, tune_random, tune_binaryoptlib

  • C Example(spectrum) Example(geometry_optimize) Example(tune) Example(faims) Example(lens_properties): Uses new “flym” workbench program segment to simplify/improve the code.

  • C Example(emittance) Example(excel) Example(lens_properties) Example(spectrum) Example(tune) Example(electrostatic_induction): Uses new initialize_run / terminate_run workbench program segments.

  • a Doc(ram_and_memory): add notes on Hyper-V dynamic memory.

  • C Doc(manual): Rev-5 (Nov 2011) of the 8.0/8.1 manual covering 8.1.0.31 is now shipping (changes listed at bottom).

8.1.0.31-20111015-TEST

  • A Lua(Libraries): Added Lua extension module DLL support in 64-bit version. Previously, only the 32-bit version provided the necessary DLL.
  • C Example(extension): Updated example for 64-bit and newer compilers + more README documentation.
  • A Lua(Libraries): Added some core Lua modules: LuaFileSystem, LuaSocket, lpack, and LPeg (both 32-bit and 64-bit versions). See Programming API for SIMION.

8.1.0.30-20111008-TEST

  • A PA(64-bit): Now supporting huge 190GB PA files (~20 billion points). Previous 8.1.0 releases were only designed to support 16GB per PA file.
  • A SIMION on Amazon EC2: added usage notes. Note: Remote access to 68 GB RAM systems can currently be rented for only ~$2/hour on Amazon EC2 (high memory instances).
  • X PA/IOB(aniso): Fixed PA origin point was rescaled even if user said No to the question “Physical grid cell sizes in array [...] changed by a factor of [...] change PA origin point [...]?”) on viewing an IOB after changing mm/gu scale stored in PA file.
  • a Example(gem): Add GEM file of cylinder with bend in the middle (“elbow”). [*]

8.1.0.22-20110919

  • X PA(64-bit): Fixed .PA# files larger than 4 GB can refuse to refine with error “Fast Adjust Refining Aborted” prior to start of refine. Did not affect basic .PA files. Nor did it affect .PA# files smaller than 4GB generating .PA[0-9] solution arrays summing to >4GB. [r.21] [*bb20110914]
  • X PA: PA state flags (e.g. “unsaved [*]” and “unrefined [!]”) are now handled differently in the implementation. This corrects a number of bugs relating to Main screen PA list flags [*!] not updating properly, as well as prompts to save any unsaved PAs on closing. The problem was more noticeable in SIMION 8.1 when using the PA API to edit arrays in memory. [B]
  • X PA(aniso): Fixed refined check on loading 2D cylindrical basic (.pa style) arrays with anisotropically scaled grid cells.
  • X GEM(PA/aniso)/Critical: Fixed GEM file within/notin commands’ handling of shifting surfaces by 0.5 grid unit (gu) in the direction of the surface normal in the case of anisotropically scaled grid cell feature. [r.22] See manual section “I.2.1. Classes of Instructions: Within class” for details on this 0.5 gu adjustment. Previously, the 0.5 gu adjustment was measured only in units of the X direction grid unit size but now is estimated in the direction of the surface normal. The within_inside*/notin_inside* commands, which normally don’t use this adjustment, were not affected (except with points3d). For example, this previously made the surface 10 gu (11 grid points) thick, when it should have been 0 gu (1 grid point) thick: pa_define(51,51,1, cylindrical, none, electrostatic,, 10, 1) e(1) { fill { within { box2d(0,25, 500,25) } } }
  • x GEM(Macro): Improved error message when GEM macro processor does not have write permission to GEM folder. Previous error was "simion/preprocessor.lua:219: attempt to index local 'output' (a boolean value)" [B]
  • x IOB: Removed extraneous warning on ng magnetic scale factor mismatch on loading certain IOBs with non-magnetic PAs (e.g. Example(tof)). Affected >= 8.1.0.16 and 8.0.7.16. [B]
  • X Programming: Fixed IOB’s with PRG programs may give the error “Failure in running Lua segment. attempt to call a nil value stack traceback:” after loading another IOB with a Lua program. Affects 8.0.6 (not 8.0.5). [B]
  • A API(simionx.MField): Added mfield:draw method to draw wires on the SIMION View screen. contour, solenoid, helmholtz_coil examples now use this.
  • A API(simion.experimental.display): added this object to save and restore View screen display state. Experimental. See Programming API documentation.
  • A API(simion.pas): Added pa.refined and pa.saved properties, which indicate whether the array is considered refined and saved respectively. (get/set)
  • x API(simion.pas): Fixed pa:refine solutions parameter cause crash. Affected version >= 2011-07-11. [*mh20110908]
  • c API(simion.pas): pa.filename may now be nil (in get or set) if the array in memory is not to be associated with a file on disk.
  • X API(simion.pas): Fixed pa:save when PA is in packed format (e.g. in Modify screen). Previously, electrode points would be lost. [r.22]
  • c API(simion.pas): Removed deprecated simion.pas:clear (was renamed simion.pas:close).
  • c API(simion.pas): pa:clear now resets internal max_voltage to default 100000.
  • C GUI(Messagebox): Improved messagebox positioning, keeping near window and mouse.
  • X GUI(I/O): Fixed continual “Cancel file operation?” prompts on closing frame. This would occur if a file operation is performed during frame closing, as may occur if the Modify screen is opened and the PA is unsaved. [r.22] Affected ~8.0.6 and related problem in 8.0.5. [B]
  • X GUI(keyboard/program): Fixed no escape from simion.run_stop() and simion.sleep(). Since 8.0.5-TEST37, simion.sleep() won’t escape (ESC key) from a user program, and simion.run_stop() won’t escape from command bar or user program. [*sb20110824/T1154] [B]
  • X GUI(disable): Disable main screen buttons during long running operations such as IOB load, refine, and fast adjust (including via programs), to prevent crashing if clicked. [*bb20110917]
  • c GUI(View): Fly’m button text color changed for readability. [*tz20110827] [B]
  • c GUI(Main): Program Test button state is now updated on activating SIMION window (e.g. after creating PRG file in another application). [B]
  • x GUI(About): Fixed Help>About menu rearranging screens like Fast Adjust/Refine/Recording. [*ew20110804] [r.22] [B]
  • x GUI(NewPA): Fixed 2D planar symmetry tooltip description on new PA screen. [*tz20110822]
  • A Example(spectrum): new example demonstrating voltage scan and acquisition and plotting of spectrum
  • A Example(mfield_adjust): new example demonstrating basic usage of mfield_adjust segment to programmatically define a magnetic field
  • A Example(excel): Added excellib library, simplified Excel plotting library
  • A Example(gnuplot): New gnuplot example to plot in gnuplot rather than Excel. Most examples that plot to Excel can now plot to gnuplot as well now.
  • A Example(contour): Added contourlib81 library for directly plotting field vectors on the View screen without particle flying tricks. solenoid81 example added too.
  • A Example(helmholtz_coil): Added three-axis helmholz coils support; draws coil wires; uses contourlib81 library to draw magnetic field vectors
  • A Example(octupole): Added README comments on mirroring, symmetry, and ways to reduce memory usage by sharing electrode solution arrays.
  • x Doc(magnets): updated page; Fixed some spellings

8.0.7.22-TEST

  • Incorporates fixes in 8.1.0.22 marked with [B].

8.1.0.18-20110822 (First 8.1 Production Release)

  • 8.1 changes: Fixed –num-threads command line option might prevent SIMION from starting.
  • [!] 64-bit SIMION now experimentally supported on Linux via Wine64.
  • Doc(linux) Doc(mac_os): moved into supplemental docs
8.0.7.18 (and 8.1.0.18)

    pa0/compatibility: improve error message "Missing electrode positions" when
      PA0 electrode number exceeds maximum supported by current version of SIMION.

8.1.0.17-RC1-20110819 (release candidate)

    install: some directory structure reorganization:
      - 32-bit binary files moved into x32 subdirectory on 64-bit installs.
      - moved supplementary chm file into docs subfolder
      - allow SIMION executable to be in subdirectory of main program folder.
      - fixed line endings
    install: fix some software versioning issues
    Examples(geometry): added cma2d.gem and cma2dp.gem (ideal
      cylindrical mirror analyzers)
    Examples(experimental\enhanced_refine) - add "experimental" enhanced Refine accuracy
      for non-grid unit aligned electrodes example
    doc: add more notes on multicore performance
	  
8.0.7.17-TEST (and 8.1.0.17-RC1)

    System DLLs (not including Lua module DLLs) are now loaded from
      the "\lib" (not "\lib\lua") subdirectory of SIMION.
    Fixes to 8.0.7-TEST:
      [critical] Fix .PA0 corruption on saving when electrode number > ~30. Broken since 8.0.7.16.

8.1.0.16-TEST-20110817

    8.1 Fixes:
      contouring: correction on aniso-PA 3D contour line spacing
    8.1 Changes:
      API(simion.pas): pa:save now raises on error.
        Renamed pa:rescale to pa:resample.
        Corrected documentation on some error handling behaviors.
      supplemental help: better organize table of contents

8.0.7.16-TEST (and 8.1.0.16-TEST)

    Defects:
      [critical] IOB sometimes was saving in SIMION 8.1.0 (IOB mode 2) format
        when it should have been saving in mode 1 format.
        Affected 8.0.7.15-TEST and 8.1.0.15-TEST mostly.
      Improvement in IOB loading robustness for future compatibility.

8.1.0.15-TEST-20110816

    8.1 Changes:
      [IMPORTANT!]
      GEM/aniso-PA: Default units in GEM files are now mm rather than gu.
        Since default cell size is 1 gu = 1 mm, compatibility is maintained with
        SIMION 8.0.  The locate statment in the below aniso-PA example should be removed:
          pa_define($(R_mm/dx_mm+1),$(R_mm/dy_mm+1),$(R_mm/dz_mm+1),
                    planar, xyz, electrostatic,, $(dx_mm),$(dy_mm),$(dz_mm))
          ; locate(0,0,0,, 0,0,0, $(1/dx_mm),$(1/dy_mm),$(1/dz_mm)) {
            electrode(1) { fill { within { sphere(0,0,0, $(R_mm)) } }
          ;}
        To use gu rather than mm, specify "gu" (without quotes) in the 11-th parameter
        to pa_define.  For details, see the anisotropically_scaled_pas section of
        the supplemental help file.
        [*bb20110720: http://simion.com/discuss/topic/1134-anisotropic-scaling-issue/ ]
      .PA0 format for >= 16GB arrays implemented.

8.0.7.15-TEST (and 8.1.0.15-TEST)

    Recording/GUI: Fixed "Delimiter" control not accepting user selection.
      Affected >= 8.0.6-TEST7. [*jb20110814]

8.1.0.14-TEST-20110815

    [IMPORTANT!] The Aniostropically scaled PAs and Poisson solver changed in
                 ways that break earlier 8.1/early access.
  
    8.1 Changes:
      [!]Poisson solver: Charge density array values now must be in C/mm^3 units
         not C/(gu_x*gu_y*mm_z).  Also Poisson solver now requires the physical sizes
         (in mm) of grid cells to be specified in the potential array and charge array
         files.  See the poisson_solver help page for more details.        
      [!]aniso-PA: The "scale" factor and "PA working origin" (Z/Y/ZWo) parameters
         on the View>PAs>Positioning panel have changed in meaning for PAs that use
         SIMION 8.1's capability for PA file to store inside themselves an
         explicit grid cell size in mm other than (1 mm/gu)^3.  Now, the PA instance
         scale factor multiplies the grid unit size defined inside the PA.  For example,
         if the cell size (dx_mm,dy_mm,dz_mm) in the PA file is (3,5,10) mm and the
         PA instance scaling factor is 6, then the physical cell size would be
         (18,30,60) mm (not (6,10,20) mm as before).  Furthermore, the PA origin is
         now in units of mm prior to the application of any scaling factor
         (not gu as before).  This change still preserves compatibility with
         SIMION 8.0 PAs, which always had (1 mm/gu)^3 represented in the PA file itself.
         See the anisotropically_scaled_pas help page for more details.
      [!]aniso-PA: The "ng" magnetic scaling factor is now in units of mm as defined
         in the PA file (rather than grid units).  Any subsequent scaling of instances
         of the PA on the workbench continue to have no effect on this though.
         This change still preserves compatibility with SIMION 8.0 PAs, which always
         had (1 mm/gu)^3 represented in the PA file itself.
         See the anisotropically_scaled_pas help page for more details.
      Double/Halve: These functions now update grid cell sizes in mm accordingly.
      API(simion.pas): Added pa.symmetry_type variable (similar to pa.symmetry but
        without mirroring info)
      API(simion.wb): instance.mm_per_gu variable renamed to instance.scale
        due to the above change in meaning for the scale factor.
      Disable antimirroring option in GUI (will be delayed to 8.1.1/8.1.2).
      SL Libraries: ng changed from int to double, and only include
        first 17 bits of ng in mirror (SIMION 8.1 compatibility)
    8.1 Fixes:
      API: pa_coords_to_wb_coords/wb_coords_to_pa_coords/inst:pa_to_wb_coords/
           inst:wb_to_pa_coords functions were incorrectly rescaling the vector
           in anisotropically scaled PAs. [critical]
      Copy function (View PAs) tab now implemented for anisotropically scaled PAs.
      Examples(poisson): Removed incorrect "* PIC_scale" in piclib charge density
        scaling factor.  This affects only 2D cylindrical arrays that have
        a lower resolution charge density array (i.e. PIC_scale not 1).
      versioning: (minor) fixed version numbers on EXE's.

8.0.7.14-TEST-20110815 (and 8.1.0-TEST14)

    versioning: SIMION versioning number scheme changed from e.g. "8.0.7-TEST14" to
      "8.0.7.14-TEST".
    Examples(collision_hs1) - Removed caching of mean-free-path calculation.
      This optimization didn't improve speed much and could even decrease speed.
      The optimization was also more error prone if certain variables like
      _gas_mass_amy and _sigma_m2 were changed during the run.
    8.0 Fixes:
      Copy function (View PAs tab) slowness fixed.  This affected versions >= 8.0.5-TEST27.
      Fixed reporting errors on loading 8.1 data files.

8.1.0-TEST13-20110811

    8.1 Changes:
      API: x_mm_per_gu/y_mm_per_gu/z_mm_per_gu renamed to
           dx_mm/dy_mm/dz_mm in simion.pa, SL Libraries, and SL Tools,
           and batch mode interfaces.
      API: remove undocumented simion.EARLY_ACCESS
      GEM/aniso-PA: pa_define dz_mm, if omitted, now always defaults to dy_mm,
        never dx_mm.
      Examples: remove early access mode calls.
    8.1 Fixes:
      API(screen print): Fixed simion.print_screen/simion.printer instabilities.
        These are used in geometry_optimize 8.1 features.
      API(simion.pas): Fixed pa:crop,pa:refine,pa:fast_adjust may cause
        instabilities if they raise an error.

8.1.0-TEST12-20110810

    setup: New software installer for SIMION 8.1.
    8.1 Fixes:
      flym/batch-mode: "fly" batch mode command was not honoring trajectory options
        like --grouped and --trajectory-quality when operated in GUI mode (i.e. without
        --nogui).  This only affected 8.1betas (and early access). [*kc20110810]
        [severity: critical]
      Resolved incompatibility with having 32-bit and 64-bit SIMION 8.1 executables
        in the same folder.
    Examples: added examples\geometry\sphere_aniso.gem - simple example of
      GEM for anisotropically scaled PA.
    Examples: added examples\geometry\sector.gem - magnetic sector example
    Examples: added examples\geometry\uniform_bfield.gem - uniform magnetic field example
    Incorporates 8.0.7-TEST12 changes also.

8.0.7-TEST12-20110810

    View: Various particle trajectory options now are reset to defaults on IOB
      reload rather than on exiting/re-entering the View.  These include
      TQual, Grouped, Rerun, Use Programs, Record Data, Repulsion,
      Retain Trajectories, Time Markers, and Pause Step/Event.
      Pause Step/Event are still reset on (re-)entering View.
      (Previously Timer Markers and Pause Event were only reset on program startup.)
	  [category: UI defect]

8.1.0-TEST11-20110805

    8.1 Fixes:
      aniso-PA/GUI/OpenGL - Modify 3D rendering of anisotropic PAs fixed
        (cylindrical case, texture, and mouse coordinates)
      rec - fixed warning about early access in "split data recording output
            into multiple files" option. [*ew20110805]
    SL Tools has been upgrade to support SIMION 8.1:
      aniso-PA - Anisotropically scaled PAs now supported in viewing and STL/Text <-> PA functions.
      64-bit support added.
      Also includes 8.0.7-TEST11 enhancements, such as improved STL->PA CAD conversion
        accuracy (Issue I339).
    SL Libraries: 64-bit support added.
    Examples: added two_cylinder.stl.zip (two coaxial cylinder STL file) to \examples\geometry
    Incorporates 8.0.7-TEST11 changes also.

8.0.7-TEST11-20110805

    GUI/OpenGL - In PA rendering (Modify 3D or SL Tools View), "points" checkbox
      now displays all electrode surface points.  Useful for visualizing grid spacing
      as well as non-solid electrode points (which otherwise might not render).
    SL Tools:
      STL->PA [IMPORTANT] - Improved STL->PA CAD conversion accuracy, with exact unit alignment.
        The new option "Solid strategy" = "No extra solid points" achieves best
        accuracy, but see the Issue I339 report.  Issue I339 [*]
      Major reorganization of STL->PA screen and its command-line options.
        This is intended to be more clear and also support 8.1 extensions.
      Fixed keyboard focus problem on STL->PA screen.  Affected SL Tools 1.1.3.
      Also includes above OpenGL change.
      SL Tools version numbering changed to match SIMION.
      Add --version command line parameter to display version.
    GUI/Particles - "Coordinates relative" drop down now includes units "mm"
      or "gu" for clarity. [*]

8.0.7-TEST10-20110803

    Internal: minor changes.

8.1.0-TEST9-20110730

    Additions:
      GUI/Data Recording - "Record data" checkbox now automatically becomes checked
        upon altering any Data Recording screen option (for convenience). [*tz]
      examples - Added tandem_van_de_graaff - Illustrates Tandem Van de Graaff system,
        with electron stripping when ions pass through a foil.  Contributed by Theo Zouros.
      examples - Added examples\geometry\parallel_plate_capacitor_2d.gem (idealized 2D
        parallel plate capacitor or analyzer).
    8.1 Fixes:
      ansio-PA - View 3D Iso screen now draws anisotropically scaled arrays properly. [*]
        (Note: Anisotropically scaled arrays now drawn with the Constrn optimization disabled).
      ansio-PA - Force mm/gu in y and z to be identical in cylindrical aniotropically scaled PAs.
        Affects New PA screen, GEM, gem2pa, simion.pas, and PA loading.
      GUI/GEM - Added separate scale X/Y/Z fields to GEM screen for anisotropic scaling.
    Incorporates 8.0.7-TEST6/TEST7/TEST8/TEST9 changes also.
	
8.0.7-TEST9-20110730

    GUI/view/important - Fixed distortions in drawing PA's in non-constrained 3D View screen
    (Issue I586).  Affected >= 8.0.6-TEST17.
    GEM: GEM files containing no fill definitions now only trigger a warning
      rather than an error ("Failed compiling GEM file[...] ERROR: No Fill Definitions Found").
      This allows creating empty PAs using GEM files. [*20110729tz]
    GUI/file: File dialog box now opens with current directory (rather than last
      selected directory) if an IOB or PA was opened from command line or Windows
      file associations. [*20110729tz]

8.0.7-TEST8-20110728

    GUI/View - marker color field on Particles tab is now always enabled, even
      if time markers are disabled.
    Internal - cleanup of View screen rendering code (should not have visible changes).

8.0.7-TEST7-20110727

    GUI/Modify - Fixed off-by half grid cell mouse cursor positioning.  Affected
      SIMION >= 8.0.0.
    GUI/GEM - Fixed "scale" field on GEM screen was only scaling in X direction.
      Affected >= 8.0.6-TEST7. [*]
      http://simion.com/discuss/topic/1139-simion-806-rc3-20110704exe-possible-bug

8.0.7-TEST6-20110726

    GUI/Data Recording - minor improvements to "Undo"/"Cancel" buttons to restore
      file name and record data settings to those prior to opening window.
      Also improved width/precision field tooltips for clarity.
    GUI/Data Recording - rearrange Format for Recorded Data panel to be
      slightly more logical.
    GUI/fastadj - Increase max potential from +-9999999.9999 V to +-1.0E+8 V [*]
      on Modify and Fast Adjust screens, as well as fastadj batch mode command.
	  
8.1.0-TEST5-20110723

    64bit,PA: Fix corruption of 64-bit PAs on loading/saving.
    GEM: Fixed locate X,Y,Z scalings to be applied after rotation (Issue I585) [*]
         Affects anisotropically scaled PAs.
    simion.pas API: Fix pa:point corruption when potential exceeds max_voltage in packed array.
	simion.pas API: Fix pa:potential corruption when potential exceeds max_voltage in packed array.
    Examples: poisson - add 3D examples and cleanup some (2011-07-19)
    Help: add new pages on general electrodynamics topics
    Incorporates 8.0.7-TEST5 changes also.

8.0.7-TEST5-20110723

    core,rotation: Eliminate small numerical defects in 90 degree rotations, occurring in
      GEM files and rotation functions like azimuth_rotate.  (Issue I522) [*]
    core,minor: No longer trim extra spaces around file names when handling various SIMION file types.
      Although these spaces are likely undesirable, there's no need to complicate
      file name handling either.  For example, " test.pa" previously failed to load.

8.1.0-TEST4-20110714

    This release largely completes the unimplemented parts of the
    Poisson, anisotropic scaling, and proper Neumann boundary enhancements to Refine:
      Refine: 3D Poisson solver implemented.
      Refine: Anisotropic cases of Poisson (2D planar, 2D cylindrical, and 3D) implemented.
              (Issue I536)
      Refine: Anisotropic cases of 2D cylindrical Laplace implemented.
      Refine: Proper Neumann boundaries on all array edges. Issue I372 [*]
    Fixes in beta features:
      API: Fixed pa.mirror_z was returning pa.mirror_x (in simion.pas interface)
    Incorporates 8.0.6 and 8.0.7-TEST2 changes also.

8.1.0-TEST3-20110628

    core: Updated internal physical constants to CODATA2010 (Issue I494).
    library: simionx.Constants also updated to CODATA2010
      (and including CODATA2006/2002/1998/1986 values too).
    Docs: Supplementary documentation and info web pages merged, into CHM file.
    
8.1.0-TEST2-20110617

    Improve PA# refining speed by reducing number of PA# loads from disk.
	Improve View screen rendering speed (multicore).
    Updates to license keys and software update.
    Software license updated for 8.0 and clarified in minor ways.
	Incorporates 8.0.6-TEST17 changes also.

8.1.0-TEST1

    First 8.1.0beta release.  For a summary of new
    features, see http://simion.com/info/simion81.html .
  
    64-bit CPU support.  Both 32-bit and 64-bit builds of the SIMION
      executable are provided.
    Parallel refines (multicore/multi-CPU support) - Refine potential
      arrays faster.
    Faster Lua virtual machine (LuaJIT) (currently disabled)
    Rectangular grid cells (anisotropically scaled arrays) - 
      mm/gu scaling can now be different in X, Y, and Z directions.
    [gui] PA parameter screen redesigned for better clarity and to add
      more 8.1 options.
    CODATA2006 constants (Issue I494) - only partially-implemented
	Add option to omit relativistic effects (Issue I579)[*]
	
	GUI: View > Particles tab rearranged slightly to be more logical.

8.0.7-TEST3-20110718

    core/refine - For "pa+" files, fixed ASSERT error if scalable_electrodes[i][j]
      is negative and exceeds magnitude of all other values for same i and different j
      (Issue I584) [*]
    internal/refactor - major internal changes related to 8.1 (should be invisible in 8.0)

8.0.7-TEST2-nonreleased

    GUI/Modify: Display 16 digits of precision when display voltage in status bar
      (Note: useful for SIMION 8.1 charge density arrays)
    Fixes:
      GUI/Modify: Status bar sometimes displayed Mags rather than Volts for some mark types.

8.0.7-TEST1-20110704

    Internal: minor changes to how some derived physical constants are computed.
      Should have negligible effect, well within CODATA1986 error ranges.
      This is related to the move to CODATA2010 constants in 8.1.0.

8.0.6-RC2-20110704 (production release)

    This release has been more thoroughly tested.  It also includes fixes for Linux
      and Mac OS using Wine/CrossOver.
    Fixes:
      GUI/OpenGL/Wine: Fixed OpenGL 3D Modify window in CrossOver Mac (Issue I277)
           Also, removed workaround for now resolved Wine OpenGL canvas bug (winebug#2398)
      GUI/OpenGL/Wine: Fixed OpenGL 3D Modify window in Linux/Wine.  Broken in 8.0.6-TEST6.
      GUI/Wine: Fixed Check for Updates button not displaying on CrossOver Mac OSX (Vista bottle).
           Broken in 8.0.6-TEST16.
      GUI/Keyboard/Wine: Fixed keyboard shortcuts in Linux/Wine (focus problem).  Broken in 8.0.6-TEST7.
      GUI/Keyboard: Fixed command bar keyboard shortcut (":"). Broken in 8.0.6-TEST16.
      GUI: Fixed Modify 3D "Mouse Help" button crash.
    Changes:
      GUI: main screen Docs button now optionally loads simion.chm if present (for 8.1)
      GUI: Modify screen point type control now initially set to electrode (for convenience) (minor)
    Internal: update GUI library
    SL Tools 1.1.3-20110704 - includes above OpenGL fixes.

8.0.6-TEST17-20110620

    [minor] remove displaying 123 on startup (started in 8.0.6-TEST16)
    Fixed imprecise error message "Failed saving PA file: A" (Issue I580) [*]
    [prg] In PRG code, ARCL from adj_elect crashes (Issue I581) (since 8.0.6-TEST12)
    Fly'm: Fixed/minor: Trajectory CV related values (for positive T.Qual values) were
      potentially not being reinitialized between particle integrations, which
      may have (unconfirmed) caused very small anomalies in time-steps at the
      very start of trajectory integration. (Issue I582) (likely since before 7.0)
    GUI: Fix in Modify 3D view, Faces/Lines/Points checkboxes sometimes missing
      (since 8.0.6-TEST7) (Issue I583)

8.0.6-TEST16-20110520

    [internal] updated GUI library.

8.0.6-TEST15-20110421

    [gui/minor] Display version number in Help About menu command. [*]

Note: the "8.1 early access" lines refer to changes being made to the
upcomming 8.1 version that can be tested for a limited time by 8.0 users
(for further details, see Issue I421).

8.0.6-TEST14-20110319

    8.1 Early Access:
      Lua PA API: Fix crash on pa:potential_vc or pa:field_vc functions
        with non-fast adjustable PAs (Issue I578) [*]

8.0.6-TEST13-20110228

    [internal] update to latest LuaCOM 2011-02-19.

    faims-20110225 (examples\faims)
    collision_sds.lua - Fixed FAIMS example
      pressure/temperature load_array coordinates. (Issue I576)
    collsion_sds-20110225 (examples\collision_sds)
      collision_sds.lua - if d_ion and ko both undefined, estimate both
        rather than raising error.  The FAIMS version already did this.
      collision_sds.lua - Incorporate various changes from SDS-FAIMS
        model (see changes in README.html).
    electrostatic_induction-20110226 - inductionlib.lua -
      more efficiently utilize fast adjust PA memory in induction
      calculation [*] (Issue I577]
  
    8.1 Early Access:
      [core,programming] In pa:potential_vc(x,y,z, t) and pa:field_vc(x,y,z, t),
        the table t now accepts an additional "exclusive=true"
        field which causes all electrodes not mentioned in the table
        to be set to 0 V.  These electrode solution arrays
        are not loaded into memory.  Also, solution arrays for electrode
        numbers not mentioned in t are no longer automatically unloaded. (Issue I422)

8.0.6-TEST12-20110204

    This release mainly corrects some fast adjust related defects.
    [prog/change] Reserved variables adj_elect1 .. adj_elect9 are now synonyms for
      adj_elect01 .. adj_elect09 in user programs.  Also adj_pole1 .. adj_pole9
      are now symonoyms for adj_pole01 .. adj_pole09.
      This improves consistency.
    [example/expand] Add "drag_mobility.iob" to the "drag" examples,
       calibrating the drag coefficient to a mobility constant,
       just like SDS does but without diffusion.
    [fadj/defect] Fix "Illegal Fastadj Potential Count" error on
      fast adjusting array using all 128 solution arrays (0..127).  (Issue I572)
    [fadj/defect] Fix .pa_ corruption when using .pa+ file with .pa# file
      having integer electrode numbers exceeding fast adjustable limit (Issue I574)
    [fadj/defect] Fast adjust screen crash/error on more than five electrodes (Issue I573) [*]
    [fadj/gui] Add scroll to fast adjust screen when there are many adjustable potentials.
    [defect] Fix possible Remove All PAs from RAM stack corruption.
    Various internal changes.

8.1.0-beta 20110203

    [fadj/change] Increased maximum number of fast adjustable
      electrodes from 127 to 1000. (Issue I127).  Note:
      rarely is this many needed.

8.0.6-TEST11-20110201

    [prog/change] #adj_elect in user programs now returns the maximum
      electrode number in the current array.  Previously it returned
      the number of contiguous electrodes starting at #1, which wasn't
      as useful.  This only affects arrays with skipped electrodes.
      (Issue I429).
    [fly2/defect] Globals Lua functions not accessible in FLY2 files. [*] (Issue I568)
    [examples/collision][examples/faims]
	  In collsion_sds.lua fixed "ion's x coord outside array" check (Issue I566). [*]

    8.1 Early access:
	  [program] Improve "Programatically draw 3D line segments on View screen"
	    (Issue I564) to work in initialize segments. [*]
      Various internal changes.

8.0.6-TEST10-20101216

    Fixes and minor improvements:
    [io-performance/fix] File loading slowness introduced in
      8.0.5-TEST8 (Issue I468)
    [gui/fix] Fast adjust screen controls don't show input focus,
      since 8.0.6-TEST7 (Issue I559)
    [gui/fix] Error: icon bundle doesn't contain any suitable icon
      [*] (Issue I561)
    [gui/fix] SL Tools button broken [*] (Issue I555)
    [gui/fix] Particle trajectory color corruption.
      Affected >= 8.0.6-TEST38 (Issue I563)
    [trajectorycalc/fix] Clip detection (e.g. to determine which part of particle
      trajectory intersects PA grid cell) made slightly more robust
      (possibly related to Issue I223)
    [gui/fix] Command bar history corruption on repeated commands.
      Affected >= 8.0.6-TEST7. (Issue I565)
    [internal/minor] substantial internal refactoring of Refine
    [examples/fix] FAIMS - velocity field wrong when Grouped flying.
    [examples/accuracy] FAIMS quick cycles feature made more accurate.
    [examples/minor] SDS example - some cleanup in collision_sds.lua comments.

    Additions:
    [io-debug] "simion.debug.allow_asynchronous_io=false" can now be used to
      disable asynchronous I/O for debugging purposes (Issue I468)
		
    8.1 Early access:
      Additions:
      [refine] In 2D Poisson refine, always treat left/bottom boundaries as
        pure Neumann boundaries (mirror planes). (Issue I372/Issue I482)
        (Note: the same is not yet enabled for regular Laplace refines.)
      [program] Programatically draw 3D line segments on View screen
        (useful for custom drawing and contouring - Issue I178) [*] (Issue I564)
      [example] FAIMS adds contourlib.lua for contouring flow fields.
	 
8.0.6-TEST9 2010-10-25

    [gui-memory/fix] GDI handle memory leakage on screen refresh.
      [*] (Issue I557)

8.0.6-TEST8 2010-10-22

    This release mainly fixes GUI quirks introduced in 8.0.6-TEST7.

    [gui/fix] Text controls having up/down bottoms not updating properly
        in 8.0.6-TEST7; causing various Modify and View screen problems.
	[*] (Issue I554)
    [gui/fix] Launching text editor was broken in 8.0.6-TEST7 due to
        extraneous quotes in file names.  [*] (Issue I555).
    [gui/fix] Variables tab initially zero width in 8.0.6-TEST7
        [*] (Issue I556)
    [internal/minor] update luacom to 2009-10-20 version
    [gui/minor] fix progress statusbar not displaying 100% at end of file operation

8.0.6-TEST7 2010-10-18
  
    This release contains major internal changes.  GUI is not as stable.
  
    [contour,defect] Fixed small anomaly in gradient contours for maximum
      positive z in 3D arrays (Issue I552).
    [gui,defect] Focus gets hidden on tab traversal in View Variables panel
      (Issue I361).
    [internal] substantial internal changes to contouring.
    [internal] updated compiler, GUI libraries, and core programming libraries.
    [internal] updated luacom to 2009-09-11 version.

    8.1:
      [example] Added excel\append_chart.lua example - 
        demonstrates appending data to existing worksheet/chart
      [example] Added examples\geometry\quad_hex.gem (joined
        quadrupole / hexapole) [*]
      [gui] preliminary framework for locale support (translations).

8.0.6-TEST6 ?

    Early access:
      Change pa:refine min iterations from 100 to 1.
      [enhancement,modify]
        Double/Halve extended to multiply or divide X,Y,Z independently
        by arbitrary positive integers. Issue I536.
        Also added corresponding pa:rescale - Issue I422.
      pa:refine convergence objective maximum limit no longer imposed. (Issue I422)
      undocumented - aniso (Issue I536)
      undocumented - surfrefine (Issue I542)
      pa:field_vc corrected for magnetic arrays (magnetic field was not
        properly scaled by ng) (Issue I422)
    Note: major internal changes to Refine.
    [example] new test_surface example, similar to test_plane example but
      using spherical test surface.[*]
    [example] new helmholtz_coil example (based on solenoid example)
    [example] collision_sds.lua
      Fix handling velocity arrays with cylindrical symmetry (Issue I549)
    [example] add examples\geometry\turning_quad.gem (DC turning quad)
        http://simion.com/discuss/topic/984- [*]
    [example] examples\drag\drag.lua now supports non-zero background
      gas velocity (like the SDS model already does). [*]

8.0.6-TEST5 [20100106] r3013

    Early access:
      [enhancement,defect,wb,lua]
      Various fixes to simion.wb and simion.wb.instances, to ensure
        changes are propagated to the fly'm and GUI. Issue I496 [*]

8.0.6-TEST4 [20100105] r3006

    Early access:
      [batch,defect] Batch mode exited in fly batch mode command under
       early access. Issue I539 [*]
      [batch,pa,defect]
       Basic PAs loaded in batch mode may display a not refined flag
       (!) in the PA list. Issue I540 [*]

8.0.6-TEST3 [20100104] r3001

    [pa,defect] "expected electrode point for adjustable electrode" on
      exiting Modify with .PA0 file.  Issue I537
    [batch,enhancement] allow some SIMION options (e.g. --noprompt)
       to simion.command.  Issue I538. [*]

8.0.6-TEST1 [20100108] r2972

    simion "--noprompt" command-line option now works in GUI mode
      as well (i.e. without "--nogui" option).

    [example.enhance] - add excel\tof_vs_ion.iob/lua [*] example
      (plots TOF v.s. ion number)

    Early Access
      Fixed Moving PA instances from Lua not effective in non-GUI mode.
      Issue I535 [*]      

8.0.5

  8.0.5 [20100104] r2970
    Release version.

  8.0.5-TEST38 [20100102] r2959
    [doc,defect]        Clarify FieldArray documentation, on constructor
                        and CSV syntax. [*]
    [examples,add]      Add sinusoidal.gem - sinusoidal shape using
                          GEM macros [*]
    [examples,enhance]  collision_hs1 - Allow easier customization via
                          HS1.pressure, HS1.temperature, and
                          HS1.velocity[_x|_y|_z] variables.
                          Recalc mean-free-path on pressure or temp change.
                          See collision_hs1\test2.iob + lua.
    [examples,enhance]  collision_sds - add test-sds-hs1.iob
                          comparing SDS and HS1
    [examples,bender_cut] new example, split and crop large system into
                          into two arrays.
    [examples,gauss_law] add cylinder shape to FieldArray.pm.

  8.0.5-TEST37 [20090921] r2897
    [gui,enhancement]   Make Log window monospaced font.  Issue I531 [*]
    [gui,enhancement]   Improved log window behavior on clicking. Issue I532.
    [gui,defect]        Keyboard tabbing problems. Issue I361 [*]

  8.0.5-TEST36 [20090911]
    [crop,defect]       Fixed cropping PA may wrongly remove Z mirroring.
                        Issue I531 [*]
    [gui,enhancement]   Make Log window monospaced font.  Issue I531 [*]

  8.0.5-TEST35 [20090903] r2887
    [core,defect]       Fixed 2-4 GB RAM usage (/LARGEADDRESSAWARE /3GB).
                        Issue I530. [*]

  20090829
  [examples,gui]        Added ionfunnel\funnel3.iob example
                        (more convenient to adjust voltages).

  8.0.5-TEST34 [20090706]
    [recording,defect]  Generate error if can't write data recording file
                        (previously was silent)
    [gui,defect]        "Record data" and "Pause event" controls not
                        properly updated.  Issue I528.
    [examples,gem]      fixed pa_define syntax in tetrahedron.gem
                        and cone.gem (minor)

  8.1 Early Access
     [beta,prog]       New "ion_run" reserved variable. Issue I529.
     [recording,feature] Allow splitting data recording output into
                         multiple files. Issue I231

  8.0.5-TEST32 [20090520]
    [gem,defect]        PA empty or truncated when importing from GEM.
                        Issue I527. [*]
    [gem,defect]        Fix crash upon "No Fill Definitions Found" during
                        GEM processing.  Issue I526.
    [examples,gem]      Add hexapole gem : examples\gem\hexapole.gem [*]

  8.1 Early Access
     [beta,prog]       New simion.print_screen() function to print current image.
                       Issue I521.
     [beta,gui]        If GUI enabled, "fly" batch mode command (Issue I182) runs
                       in View screen.
     [beta,print]      Printing to BMP, PNG, and JPG files now supported. (Issue I523)
     [beta,example,prog] Added Lua versions of pa2text and swirl examples.


  8.0.5-TEST32 [20090314]
    (also early access mode changes)

    [core,defect]       Error on fast adjusting a cropped PA containing
                        fast scalable (.pa_). [*]
    [examples,compat]   Python 3.0 (Python 3000) compatibility on examples. (Issue I524)
    [fly2,defect]       Don't crash on edge case particles { { } } [minor]

  8.0.5-TEST31 - no change (early access mode reset)

  8.0.5-TEST30 [20081125] r2789
    [core,defect]       Asynchronous file I/O: Fixed freeze on PA load/save,
                        particularly under Win2K and Linux/Wine.
                        Updates Issue I468 [r30][*]
    [example,change]    "trap" example code organization improved.
                        Added HS1 collision model example (group_hs1.iob).[*]
                        See Changes section in README.html.
    [example,change]    HS1 collision_hs1.lua - now returns table HS1.

    (also early access mode changes -- see below)

  8.1 Early Access
     [beta,prog]       simion.pas:clear renamed simion.pas:close. Issue I422.

  8.0.5-TEST29 [20081111] r2776
    [core,defect]       Asynchronous file I/O improvements:
                        Load PA files without applying read lock.
                        Confirm cancel request by user.
                        Updates Issue I468 [r29]
    [core,defect]       Report error on failure to load bytes from PA file.
                        (error handling) [r29]
    [core,implementation] Improved IOB load/save robustness (minor). [29]

  8.1 Early Access
    TEST29 [20081111]
     [beta,prog]       pa:close now raises on error.
                       pa.filename now contains long filename Issue I422.

  8.0.5-TEST28 [20081104] r2747
    [core,defect]       Fix crash/leak on failure to allocate PA from
                        reserved memory.  [r28].  Updates Issue I363.
    [gui,enhancement]   Improve GEM error messages. [r28]
    [gui,defect]        Fix "PAs require X MB RAM" -- was reporting in units
                        of 10^6 bytes not 2^20 bytes [r28]

  8.1 Early Access

     [beta,prog]       Access memory dump (simion.debug.memory_dump)
                       Issue I518.

  8.0.5-TEST27 [20081024] r2735
    [gui,enhancement]   Before user is first prompted in batch mode, display
                        message that "--noprompt" command-line option can be used.
                        All add new "!" option to disable further prompts at
                        runtime [r27]  Updates Issue I299.
    [prog,defect-7.0]   Fixed: Random number generator seed() function freezes
                        when not preceded by rand(). Issue I514. [r27]
    [gui,defect]        Fixed: Conditional crash on entering View. Issue I517.
                        [*][r27]
    [core,defect]       Fixed: Electrode solution arrays for .PA0 files are now
                        loaded into the reserved memory pool (when
                        "--reserved-memory" command-line option enabled) rather
                        than the standard memory pool. [r27] Updates Issue I363.
    [core,defect]       Fixed: "Illegal Fastadj Potential Count" error after fast
                        adjust failure. Issue I508 [*][r25]
    [prog,defect]       Fixed: tostring(simion.VERSION(s)) now works properly.
                        [r27].  Updates Issue I398.
    [prog,defect]       Fixed: missing errno include for pa.cpp in SL Libraries.
                        Issue I516 [*]
    [prog,defect]       Fixed: SL Libraries pa.cpp - wrong error message in
                        PA::check_nx (minor)
    [file,defect]       Improved corrupt file detection on PA load. [r27]
    [examples,added]    Particle jumping trick example added
                        ("nonideal_grid/particle_jump"). [*] Issue I515

  8.1 Early Access
     [beta,prog]       field simion.wb.instances[i].mm_per_grid_unit has been
                       renamed simion.wb.instances[i].mm_per_gu. Issue I496.
     [beta,prog-pa]    simion.pas:open now returns nothing on success and
                       raises on error.
                       pa:load now raises on error.  Issue I422.

  8.0.5-TEST26 [20081010] r2642
    [prog,change]       Define behavior of adj_elect[i] and adj_electXX for
                        non-existent electrode numbers in PRG code.
                        Updated Issue I429. [r26]
    [prog,detect]       PRG user program fails with error when adj_elect
                        not defined in previously loaded workbench.
                        Issue I512. 7.0-compat. [r26]
    [config,defect]     Crash if failure to write to FILES.GUI directory
                        Issue I218 [r26]

    Internal: Fairly extensive code refactoring (lint)--should not cause any
    external changes. (see Issue I527)

  8.1 Early Access
      [beta,core]      Allow workbench size to be non-integral or smaller than 1
                       mm^3.  Issue I513 [r26][*]
      [examples,added] PA instance jumping trick example added
                       ("nonideal_grid/pa_jump"). [*] Issue I515

  8.0.5-TEST25 [20080919] r2482
    [example,defect]   In examples\test_plane\testplanelib.lua, robustness
                       improvements to avoid particle locking up
                       near test plane. Issue I221.2 [*][2008-07-24]
    [prog,defect-8.0]  Upgrade Lua from 5.1.3 to 5.1.4
                       (bug fix only release). Issue I404 [r1]
    [prog,enhancement] Add standalone Lua interpreter lua.exe
                       Issue I511 [r25]
    [core,defect]      Fixed crash on loading workbench with contours.
                       Issue I507 [r25][*]

  8.0.5-TEST24 [20080723]
    [core,defect]      Fixed crash on loading workbench with contours.
                       Issue I507 [r24][*]
    [example,expand]   Added cross.gem (two 90 degree pipes) to
                       "geometry" examples [*] [2008-07-22]
    [example,enhanced] The type of contour a particle traces is now
                       determined implicitly and individually by
                       the particle's mass. [2008-07-22]
    [core,enhancement] Some improvements in crash report (Issue I505) [r24]
    [core,defect]      Fixed crash on failure to write temporary
                       trajectory file (.trj).  Issue I506 [r24][*]
  8.0.5-TEST23 [20080718]
    [core,enhancement] New crash reporting feature. Issue I505 [r23]
    [core,enhancement] Reduced simion.exe binary size by ~ 600KB [r23]
    [gui,enhancement]  Particle definition screen (.FLY2) - group
                       panel size increased[*]; display condensed for
                       arithmetic/line; loading speed increased [r23]
    [gui,defect-8.0]   Particle definition screen layout cut-off.
                       Issue I504 [r23][*]
    [implementation]   Major refactoring of GEM file processing code [r23]
  8.0.5-TEST22 [20080530]

  8.1 Early Access
      [beta,core]      Fast Parallel .PA# refines (one solution per CPU core)
                       Issue I503 [r22]

  8.0.5-TEST21 [20080527]
    [prog,enhance]     Define behavior of adj_elect[i] and adj_electXX for
                       non-existent electrode numbers and #adj_elect.
                       Issue I429 [r2][r21][*]
    [prog,defect-8.0]  Crash on accessing adj_elect[N] or adj_electN where N
                       not a valid electrode number Issue I476 [*][r2][r21]
    [gui,defect-8.0]   Fix spelling Guass->Gauss on data recording
                       screen (eloy-20080522) [r21][*]
    [prog,defect-8.0]  Fix "illegal start for seg" error. Issue I509 [r21]

  8.1 Early Access
      [beta,prog-pa]   New pa.electrode_numbers field is an array of fast
                       adjustable electrode numbers.  Issue I422 [r21]
      [beta,prog-pa]   New methods: instance:pa_to_wb_coords and wb_to_pa_coords,
                       instance:pa_to_wb_orient, instance:wb_to_pa_orient,
                       instance:pa_to_array_coords.  Issue I422 [r21]
      [beta,example]   bradbury_nielsen_grid. Issue I502 [r21]
      [beta,prog-pa]   no crash in fast_adjust with pa:potential_vc/field_vc
                       with table that triggers electrode solution array unload
                       Issue I422 [r21] (t8).

  8.0.5-TEST20 [20080513]

  8.1 Early Access
      [beta,prog-pa]   pa.symmetry values changed to 
                         "2dcylindrical", "2dcylindrical[x]",
                         "2dplanar","2dplanar[x]","2dplanar[y]","2dplanar[xy]",
                         "3dplanar","3dplanar[x]","3dplanar[y]","3dplanar[xy]",
                         "3dplanar[z]","3dplanar[xz]","3dplanar[yz]",
                         "3dplanar[xyz]"  Issue I422 [r20]
      [beta,prog-pa]   pa:potential_vc and pa:field_vc now take an optional
                       table parameter to specify fast adjust electrode
                       potentials (similar to the fast_adjust segment):
                         potential = pa:potential_vc(10,0,0, {[1]=100,[2]=-100})
                         ex,ey,ez = pa:field_vc(10,0,0, {[1]=100, [2]=-100})
                       (used by new electrostatic_induction example). Issue I422
                       [r20]
      [beta,prog]      New ion_effective_charge reserved variable.
                       Issue I452.3 [r20]
      [beta,example]   New induced current/charge example
                       ("electrostatic_induction"). Issue I499 [r20][*]

  8.0.5-TEST19 [20080430]
    [prog,enhance]     simion.VERSION now contains a version object and
                       permits comparisons. Issue I398 [r19]

  8.1 Early Access
      [beta,prog-wb]   fixed: simion.wb was nil if simion.early_access() called
                       when IOB already loaded (affected 8.0.5-TEST18 only)
                       Issue I496 [r19]

  8.0.5-TEST18 [20080426]
    [prog,defect-8.0]  Upgrade luacom to CVS version (2008-04-18) Issue I495
                       [r18]
    [prog,defect-8.0]  SIMION startup script (simion.lua) now loaded after
                       GUI initialized [r18]
    [gui,enhance]      Pause message added to statusbar upon pausing Fly'm
                       due to "Pause step" or "Pause event" checked. [r18]

  8.1 Early Access
      [beta,prog-pa]   Fixed array corruption when doing
                       simion.pas[n]:fast_adjust{...}, particuarly inside View
                       screen.  Issue I422.1  Issue I422 [r5][*](8.1) [r18]
      [beta,prog-pa]   v = pa(x,y,z) -- Applying the call operator to the array
                       is identical to pa:potential_vc.  Issue I422 [r18]
      [beta,prog]      Resize SIMION window programatically (simion.window)
                       Issue I498 [r18][*]
      [beta,prog-wb]   Manipulating workbenches from Lua in SIMION [r18]

  8.0.5-TEST17 [20080416]

  8.1 Early Access
      [beta,core]      Allow workbench IOB files to contain PAs in a
                       different directory. Issue I220.3 [r17][*]

  8.0.5-TEST16 [20080405]
    [gui,defect-8.0]   Keyboard input and shortcut / accelerator key conflicts
                       lacking proper conflict resolution and precedence.
                       Issue I492 [r16][*]
    [implementation]   Now compiling under Visual C++ 2008 (was 2005) before.
                       (minor effect) [r16]
    [implementation]   Upgrade to boost 1.35.0. (minor effect) [r16]
  8.0.5-TEST15 [20080331]

  8.1 Early Access
      [beta,prog]      New sim_repulsion_amount reserved variable. Issue I452.2
                       [r15][*]

  8.0.5-TEST14 [20080327]
    [prog,enhance]     simion.import() now accepts parameters to forward to
                       loaded function. Issue I444.2 [r14]
  8.0.5-TEST13 [20080327]

  8.1 Early Access
      [beta,core]      Refine extended to solve the Poisson Equation Issue I482
                       [r5][r13] Update: 2008-04-14: Fixed a fairly critical
                       error in piclib library in the Poisson examples.  The
                       following should be added to the top of
                       segment.other_actions (just after the "if PIC_enable == 0
                       then return end"): "if ion_time_of_flight <=
                       ion_time_of_birth then return end".
      [beta,prog-pa]   pa:clear() sets all points to 0V nonelectrodes.
                       Issue I422 [r13]
      [beta,prog-pa]   pa:potential_add(xi,yi,zi, val) adds potential
                       val to potential at point (xi,yi,zi). Issue I422 [r12]
      [beta,prog-pa]   pa:copy(pasrc) copies all points from pasrc to pa
                       assuming array size identical. Issue I422 [r12]

  8.0.5-TEST12 [20080324]
    [prog,enhance]     Improved detection of undefined variables
                       ("checkglobals") Issue I490 [r12]
    [gui,enhance]      Add more underscores to controls for shortcut access
                       keys. Issue I90 [r11][r12][*]
    [gui,enhance]      Automatically toggle out of PE View when clicking
                       XY/ZY/XZ/3DIso/Load/Save buttons. Issue I270.2 [r12]
    [gui,defect-7.0]   Drawing flags in PAs list get misordered when
                       L+/L-/Add/Del used. Issue I344.2 [r12]
    [example,new]      New field lines/vector plotting example ('contour')
                       Issue I178.2 [r12][*]
    [example,new]      New example: Applies user program to record data on
                       multiple non-orthogonal test planes ('test_plane')
                       Issue I221.2  [r11]
  8.0.5-TEST11 [20080320]    (only early access mode changes)
  8.0.5-TEST10 [20080319]
    [prog,enhance]     sim_trajectory_quality now accessible at the top-level
                       of a workbench program. Issue I370.3 [r10][*]
    [prog,enhance]     Improve Lua output handling (for data recording file)
                       - f:write method now implemented
                       - seek, flush, and setvbuf methods now implemented
                         (useful for output buffering control) Issue I335
                         [r10][*]
    [prog,defect-8.0]  ion_instance no longer accessible from top-level of
                       workbench program. Issue I487 [r10] (minor)
    [prog,defect-8.0]  "Data Recording file not closed if Lua workbench
                       program fails at top-level." Issue I488 [r10][*]
  8.0.5-TEST9 [20080319]
    [gui,enhance]      Autoloading/saving issues: Issue I317
                       - Single dialog box now presented for selecting autoload
                         files to save with IOB file. Issue I317.4  [r9]
                       - Auto-save/load contour files (.con) with workbench
                         (.iob) file. Issue I317.3 [r9]
                       - Save workbench Lua program when saving IOB under new
                         name. Issue I317.2 [r9][*]
    [gui,change]       Increased command-bar history size to 50. Issue I397.2
                       [r9]
    [gui,change]       Lua commands with errors now saved in the history
                       buffer of the command bar. Issue I397.3 [*][r9]
    [gui,defect-8.0]   Prevent current directory changing when loading
                       .con/.rec/.fly/.fly2/.ion/.pa files outside the current
                       directory. Issue I220.2 [r9][*]

  8.1 Early Access
      [beta,prog-pa]   pa:refine if long running now updates screen and
                       responds to abort requests. Issue I422.2 [r9]

  8.0.5-TEST8 [20080311]
    [prog,defect-8.0]  ion_charge and ion_cwf variables broken in PRG
                       Issue I485 [r8][*] (sim_trajectory_quality also
                       now supported in PRG -- Issue I370.2)
    [prog,defect-TEST] error message report wrong variable name upon
                       read access denied to adj_elect (8.0.5-TEST4 to
                       TEST7) [r8] (minor)
  8.0.5-TEST7 [20080307]
    [gui,enhance]      Allow dot/marker size in View to be increased.
                       Issue I483 [r7][*]
  8.0.5-TEST6 [20080229]
    [gui,defect-TEST]  Fixed frame becomes disabled if Run Lua Program
                       raises an error. (8.0.5-TEST1 to TEST5) [r6]

  8.0.5-TEST5 [20080227]
    [core,CRITICAL-8.0]Fixed problem where array with fast proportional
                       scalable electrodes was not fast adjusted properly when
                       loaded from an IOB file Issue I172.2 [r5]
    [gui,change]       Prompt "One (or More) Array Dimension is less than 11...
                       Proceed with Refine Now? (Y=YES,N=NO)" default changed
                       to YES. (minor) [r5]
  8.0.5-TEST4 [20080211]
    [gui,enhance]      Reduce minimum PA mm/gu scaling from 1E-5 to 1E-6.
                       Issue I478 [r4][*]
  8.0.5-TEST3 [20080128]
    [core,defect-7.0]  Precision ignored if width is zero in data recording.
                       Issue I477 [r3][*]
  8.0.5-TEST2 [20080126]    (only early access mode changes)
  8.0.5-TEST1 [20080122]
    [core,enhance]     Improve responsiveness on PA load/save (Asynchronous I/O).
                       Issue I468 [r1][*]
    [core,defect-8.0]  Fail saving an array larger than 64MB on a network share.
                       Issue I467 [r1]

    [prog,defect-8.0]  Upgrade Lua from 5.1.2 to 5.1.3 (bug fix only release).
                       Issue I404 [r1]
  8.0.5-TEST[?]
    [prog,enhance]     New SIMION Libraries: simionx.Constants. Issue I400.3
    [example,new]      New example: Particle Teleportation across multiple
                       SIMION processes ("multiprocess") Issue I484
    [example,enhance]  significant code quality enhancements to SDS
                       atmospheric pressure collision model (sds). (2008-04-24/
                       2008-04-26 / 2008-05-08 / 2008-05-24) Issue I497

  8.1 Early Access
      [beta,prog-pa]   Manipulating PAs from Lua inside SIMION: Issue I422
      [beta,prog-wb]   Manipulating workbenches from Lua in SIMION. Issue I496

  Key:
    [*] User requested.
    [rX] is revision 8.0.5-TESTX.

8.0.4 2008-01-01 (RELEASE VERSION)

  Enhancements:
    Issue I414 - Allow PA# electrodes number to be non-sequential [r4][r8]
    Issue I313 - Add Crop function in Modify [r5][*]
    Issue I420 - New Bessel functions in SIMION Lua libraries. [r6]
    Issue I406 - New simion.status Lua function to display text on
                 status bar [r1][*]
    Issue I407 - Custom distributions in FLY2 [r2]
    Issue I392 - Display full Lua stack traceback on error (improved)
    Issue I415 - Allow PE/Contour views of PA's with no electrode
                 points. [r5][r9][*]
    Issue I418 - Allow opening workbench user program from Particles
                 tab in View. [r6][*]
    Issue I421 - New "early access" mode for accessing 8.1 features. [r7]
    Issue I422 - Manipulating PAs from Lua inside SIMION
                 [r7][r21][r22] [earlyaccess]
    Issue I424 - New gem2pa command line options to override pa_define [r9]
    Issue I426 - In FLY2, new "window" standard_beam attribute. [r10]
    Issue I235 - Report calculation time for flying ions at end of
                 run. [r12][*]
    Issue I435 - When Fly'm terminates, display number of trajectories
                 flown. [r12][*]
    Issue I296 - Support variable substitution and macros in GEM files
                 [r13][*]
                 Illustrated with new example: geometry/macro.gem
    Issue I364 - Click sound whenever long-running task completes [r14][*]
    Issue I437 - Eliminate unnecessary .PA# reloading in Refine (performance)
                 [r14][*]
    Issue I413 - Allow resume of a terminated PA# refine. [r14][*]
    Issue I438 - Extend az/el angle range in particle definitions from
                 +-180 to +-360 degrees. [r15][*]
    Issue I314 - Support tab character delimiter in data recording. [r16][*]
    Issue I444 - simion.import() now returns return values [r17]
    Issue I448 - Preserve adjustable electrode potentials when replacing
                 PA in View. [r17][*]
    Issue I255 - Loading IOB/PA files from Windows explorer file
                 associations or command-line. [r17][r18][*]
    Issue I450 - Lua expressions supported in text box controls. [r18]
    Issue I451 - Add line_distribution to FLY2 GUI [r18]
    Issue I452 - Add charge weighting factor (CWF) to Data Recording
                 output and add new ion_cwf reserved variable. [r19][*]
    Issue I262 - Force Lua garbage collection at begin/end of Fly'm and on
                 removing all PAs from RAM (e.g. closing file handles) [r19][*]
    Issue I457 - Charge weighting factor (CWF) permitted range changed
                 to [0, 1E+30].  [r20][*]
    Issue I458 - New "--temp-path" command-line option for modifying default
                 path for temporary trajectory files. [r21][*]
    Issue I128.1-Reallocate block of memory if PA being loaded
                 into block does not fit. [r21]
    Minor: GUI layout changes in Modify, New, command-line [r18],
           batch mode without --nogui now loads GUI [r18]
    New SIMION Libraries (Issue I400): simionx.Type, simionx.Integration,
      simionx.FieldAnalysis, simionx.Format. [r12]
    Updated SIMION Supplementary Docs format [r21]
    Issue I479 - Default program folder name is now "SIMION-8.0" rather
      than "SIMION 8.0" (avoids spaces) [r22]

    Issue I428 - New charge repulsion examples ("repulsion") [r10]
    Issue I439 - New RF octupole ion guide example - examples/octupole. [r15]
    Issue I442 - New lens property examples. [r16]
    Issue I460 - Updated gauss_law example [r21] [uses earlyaccess]
    Issue I462 - Add simion.sleep(seconds) function. [r25]
    Issue I463 - Formal support for Windows version of SIMION on Intel-based
                 Mac OS X

  Defects in 8.0:
    Issue I440 - KE precision error when defining very low speed or
                 momentum in FLY2. [r16][critical]

    Issue I417 - Printing .WMF files broken [r6]
    Issue I408 - False "The Data Recording (or Trajectory) File Has
                 Filled Your Disk" message in batch mode. [r3]
    Issue I410 - Crash on flying in batch mode when "Describe Ions"
                 data recording option enabled. [r4][*]
    Issue I411 - GEM files with include statements and UNIX line
                 terminators may give false compilation errors. [r4]
    Issue I412 - "File name too long" error message when printing. [r4][*]
    Issue I416 - Annotation (.ANN) file incompatibility between version
                 7 and 8.0.0. [r6][useful]
    Issue I423 - "No Potential Change Requested" displayed when loading
                 an IOB. [r8]
    Issue I425 - Automatically increase a PA's max_voltage in SL
                 Libraries and SL Tools [r9]
    Issue I431 - Lua _G table wasn't shared between batch mode program and
                 workbench program in non-GUI mode [r11][useful]
    Issue I436 - Unrefined status ("!") not display correctly after fast
                 adjusting PA# file (minor) [r12]
    Issue I443 - Canceling PAs|Rpl or Saving .REC file stops display update.
                 [r17][r19] [minor]
    Issue I446 - Convert Lua errors to strings. [r17] [minor]
    Issue I445 - Fast Adjust Voltages sometimes disabled on View screen. [r17]
    Issue I447 - print() or print '' not output blank line [r17] [minor]
    Issue I335 - Lua standard input support re-enabled in non-GUI mode
                 [r18][r23]
    Issue I454 - Prohibited access to reserved variables not triggering error,
                 or error message identifies wrong variable name. [r19]
    Issue I455 - simion.redraw_screen() crashes if executed after exiting
                 Modify/View screen. [r19]
    Issue I461 - Particle flying gets very slow after switching tab in View
                 under Wine/Linux. [r24]
    Issue I348 - View Variables tab list cut off and not updated in display.
                 [r25]

  Defects in 7.0:
    Issue I453 - Modifying ion_charge can cause charge repulsion effects
                 to be wrong. [r19][critical]

    Issue I419 - Performance test 6_cylindrical_pa_test docs should
                 indicate radius 300 mm not 30 mm. [r6]
    Issue I430 - Longest time-step calculation incorrectly handles mm/gu
                 scale factor (usually minor) [r11][*]
    Issue I433 - Last field in ION file dropped if new-line or
                 white-space missing at end of file. [r12][*]
    Issue I434 - Pressing Keep twice in View clears trajectories
                 (minor) [r12][*]
    Issue I449 - Preserve "nz use" value upon replacing 2D PA in View
                 (minor) [r18]
    Issue I456 - ION definitions with parameters out of range can be
                 loaded without warning and truncated by the particle
                 definition screen. [r20][*]

  Defects in SL Tools:
    Issue I432 - SL Tools crashes if STL file name (or wildcard
                 pattern '%') specified does not match any files. [r12][*]
    Issue I459 - SL Libraries pa.field_real gives wrong signs for negative y
                 or z in cylindrical symmetry. [critical]

  Early Access:
    Issue I427 - New multipole expansion cofficient calculation example.
                 ("multipole_expansion") [r10][r21]

  Defects in Tests versions
    [r20] - fix "Lua Program Running" status does not dissappear in [r19]
    [r20] - fix simion.pas[n] functions handling NaN (e.g. field_vc).
    [r23] - fix problem print() not going to rec output file [r18] I335

  Internal (should not have visible effects):
    Refactoring trajectory code [r10]

  [*] User requested.
  [rX] is revision 8.0.3-TESTX.

8.0.3-20070526

  SIMION 8.0 Program Enhancements
    Issue I172 - Support for multiple fast proportional
                 scalable electrode sets (see "ionfunnel" example"
                 and SIMION Docs on "Additional Fast Scalable
                 Electrodes in SIMION 8.0.3") [r10]
    Issue I397 - Add command-bar history. [r7]
    Issue I228 - Allow Log window data to be copied to the clipboard. [r7]
    Issue I364 - Flash taskbar icon and sound upon completion of
                 long-running function. [r6][*]
    Issue I391 - Display full GEM and PRG errors immediately
                 (without requiring user to enter debugger)
    Issue I392 - Display full Lua stack traceback on error.
    Issue I370 - Add new "sim_trajectory_quality" reserved variable readable
                 and writable in the initialize, other_actions, and terminate
                 segments.  Controls trajectory quality factor
                 (-500 to +500). [*]
    Issue I398 - New simion.VERSION variable. [r8]
    Issue I399 - Add lua51.dll (proxies lua5.1.dll) for improved Lua
                 module compatibility.
  New libraries: (Issue I400)
    simionx.MField - Biot-Savart calculations
                     (see "solenoid" example).
    simionx.FieldArray - magnetic field import and interpolation
                         from grid in ASCII text file. (see "field_array"
                         example).
    simionx.CachedField - Represents a given field whose values are
                          computed and cached in a given field array.
                          (see "solenoid" example)
    simionx.Optimization - Issue I309 - simplex optimizer
                           (see "hda" example).
    simionx.SpecialFunctions - special math functions
                               Also, simionx.Support.
    See "Libraries API Reference" in "Help|Browse Documentation" for details.
  SL Tools/SL Libraries Enhancements:
    Issue I363 - Increase SL Tools and SL Libraries from 50 million
                 (SIMION 7) to 200 million (SIMION 8).
                 New command-line option (e.g. --reserved-memory=1.8G) [*]
    Issue I401 - Order of magnitude increased PA load/save performance
                 in SL Tools and SL Libraries for C++
  New examples: (Issue I402)
    ims - ion mobility (IMS) example
    ionfunnel - ion funnel example
    hda - hemispherical deflection analyzer example,
      which includes simplex optimization and Excel surface plotting. [*]
    solenoid - solenoid magnetic field Biot-Savart example
    field_array - loading magnetic field array from ASCII data file example
    child_particles - multiple child particles example [*]
    collision_sds - SDS atmospheric pressure collision model.
  Updated examples/documentation:
    Improve documentation of quad\quad.lua (Issue I402). [*]
      -- also replace quad*.fly with quad*.fly2 to eliminate code.
      -- minor fix to PE update when flying non-grouped:
         abs(ion_time_of_flight - last_pe_update) >= pe_update_each_usec
      -- add tstep_adjust for improved robustness
    Issue I403 - New "SIMION Libraries API" Documentation in HTML
                ("Libraries API Reference" in "Help|Browse Documentation")
    Issue I405 - "sharing violation" opening results.csv in
      geometry_optimize.lua under Linux (find handle needs closed)
    License addition concerning source code.
  Minor:
    ":" and Esc shortcut keys move in and out of command bar. [r6]
    Reduce flicker on Particle Definitions screen.
    Add missing tooltips and make blue color in status bar.
    Increase size of TQual field (was too small).
    "Particles | Define and Recording" screens open in tabs. [r6]
    In PAs tab, add instance numbers. [r6]
    Eliminate "PA is Empty:  Create A New PA?" question when Modifying
      and empty PA. [r6]
    Increase default brightness of OpenGL view. [r6]
    New empty array is considered refined. [r6]
  SIMION 8.0 Defects:
    Issue I404 - Update Lua to 5.1.2 (bugfixes only update).
    Issue I367 - Command-line errors not always displaying/trapping.
    Issue I374 - "Use programs" checkbox out of sync. [*]
    Issue I375 - False warning that .PA/.PA# file is electrode solution
                 file upon entering Modify if file has bad "short"
                 8.3-format name. [*]
    Issue I377 - Particle definitions for FLY2 sometimes wrongly displayed
                 "(special)"
    Issue I378 - "Clear All" disabled on FLY2 Particle Definitions screen
    Issue I376 - Lua file locked, preventing editing. [*]
    Issue I389 - Checking "Rerun" does not clear trajectories.
    Issue I393 - Open file dialog box in current working directory. [r6]
    Issue I394 - GEM "include" command fails unless .gem extension given
                 in file name. [r6]
    Issue I395 - Execution of command 'C:\Program Files\SIMION 8.0\sltools.exe'
                 failed (error 193: unknown error c1) [r7]
    Issue I258 - Log window cleared after running print() commands in
                 top-level of Lua program. [r7]
    Issue I396 - Programs still compiled if "Use programs" disabled. [r7]
    Issue I89  - "enable data recording" on Data Recording screen not
                 reset on dialog cancel.
  SIMION 7.0 Defects
    Issue I115 - SIMION may crash on startup if another SIMION7 or
      SIMION8 running and 1000 GUI*.TMP files exist in C:\FILES.GUI.
      Also patched in 7.0.5. [r9]
    Issue I390 - Buffer overflow on certain bad GEM syntax (minor) [r6]
      Also patched in 7.0.5.

  [*] User requested.
  [r6] updated in 8.0.3-TEST5+6
  [r7] updated in 8.0.3-TEST7
  [r8] updated in 8.0.3-TEST8 (note: includes simionx API changes too)
  [r9] updated in 8.0.3-TEST9
  [r10]updated in 8.0.3-TEST10 (note: .PA+ fixes)

8.0.2-2007-02-12

  Summary:
    This version makes a number of things easier for the user,
    corrects some defects, and provides new secondary emissions
    and C/C++ extension examples.  A convenient new feature is
    it can auto-refine PAs when loading the IOB examples, and
    it also more actively warns the user when doing likely
    unreasonable things.  Example docs and code structure,
    particularly the trap, drag, and collision_hs1 examples
    have been enhanced. A slight change in semantics of adjustable
    variable assignment makes user adjustment of adjustable variables
    in the trap example more reliable.

  Enhancements
    Issue I351 - In main screen, non-refined PAs are now marked with "!".
    Issue I341 - Simplified auto-refining of PAs during IOB loading. [!]
    Issue I343 - Warn on attempt to modify/refine/view wrong PA type.
    Issue I350 - Remove warning on entering View with PA file not on disk.
    Issue I336 - Display error on attempt to run workbench Lua program
                 outside workbench (improved) [*]
    Issue I293 - New "Update PA" on GEM file screen to erase and insert in
                 one step.
    Issue I359 - Lua now binary compatible with C/C++ extension modules.[!]
    - In View, PE button now also located on display bar.
    - Doc button in Workbench tab in View and also Load IOB and
      Browse Files dialog boxes can now open README.html
      and other README.* files.
    - Improve PA memory allocation failure message.
    - Record simion.command() command executed in log.
    - Other various minor GUI improvements.
    - New demo version build.
    - allow simion.command() to be run outside of "Run Lua Program"
      invocation, such as in command bar.
    Examples:
    - New secondary emissions example. [!]
    - New extension example (calling C/C++ from Lua)(Issue 354) [!]
    - Improve text of README.html files in examples.
    - In example drag\drag.lua, comments expanded on derivation.
    - In example trap\trap.lua, mode now configurable via adjustable variable.
    - In example trap\util.lua, explain derivation of trap constants
      and refactor code. 
    - In example geometry_optimization\geometry_optimize.lua,
      display results.csv in Notepad.
    - In example collision_hs1\collision_hs1.lua, cleanup use of
      locals and enhance KE average calculation. Make PA planar.
  Changes
    Issue I353 - Change in behavior of adjustable variable assignments in
      Lua affecting current v.s. default values.
  Defects in 8.0
    Programming/Batch Mode
      Issue I357 - Prevent simion.command() calls from having side-effects
                   such as leaving additional PAs around in memory and
                   parameters modified. [!]  Following two issues are related.
      Issue I358 - "fly" batch mode command not raising Lua error on failure.
      Issue I355 - "fastadj" command in batch mode program may cause
                   subsequent command to terminate when run in GUI mode. [*]
      Issue I357 - run_stop() now disables window frame (prevents other
                   user actions) and properly functions in non-GUI batch mode.
      Issue I348 - View Variables tab list cut off and not updated in display.[*]
                   Relative IOB path path now accepted in "fly" batch mode command
                   (see Issue I220)
    GUI
      Issue I58  - Ensure ESC key cancel actions in View screen. [!]
      Issue I346 - Mouse remains locked in window upon task switching
                   with CTRL key down. [*]
      Issue I356 - Warning "too many ions for list size" can display when
                   loading ION file containing list size ions. [*]
      Issue I344 - View PAs tab instance list not updated on loading IOB.
    Installation
      Issue I360 - Install/run fails if C: drive does not exist for
                   FILES.GUI directory.
    Examples
      Issue I362 - HS1 collision model did not accurately thermalize. [!][*]
      Issue I358 - Example quad\quad.lua not using _quad_entrance_voltage,
                   _quad_axis_voltage, and _quad_detector_voltage variables.[!]
      Issue I349 - Example tune\tune.lua doesn't update PE surface between
                   flights (minor)
      Issue I352 - Example trap\util.lua fast_adjust segment test
                   first incorrectly (minor/efficiency)
      See also Issue I353 relating to trap example.

  Internals: reduce use of packed structs, 7.0 buffer correction.
  Other notes: This is a report that SIMION runs well on Intel Macs
    under CrossOver Mac (http://www.simion.com/info/Mac_OS). [*]

  [*] User requested. [!] important or particularly significant

8.0.1-2006-12-26

  Enhancements
    Issue I299 - New "--noprompt" command-line option to disable
                 prompting in batch mode. [*]
    Issue I229 - Allow log window to open in separate larger window. [*]
    Issue I335 - Improve Lua output handling (e.g. print()
                 function output to log window).
    Issue I336 - Display error on attempt to run workbench Lua
                 program outside workbench.
    - Added SciTE setup info to "Editing SIMION Text Files" document.

  Defects in 8.0
    Issue I333 - Zoom was reset after fast adjust. [*]
    Issue I322 - Data recording crossing plane window sizing problem. [*]
    Issue I326 - Crash if initial particle params out of range.
    Issue I337 - Fix Window-style line editings in some Lua files [minor]

  Defects in 7.0
    Issue I331 - Acceleration error in overlap of electrostatic
                 PA with magnetic PA of higher grid density.  Also
                 patched in 7.0.4. [CRITICAL] [*]

  [*] User requested.

8.0.0-2006-11-18

  Production release.

8.0rc7-2006-11-17

  Resolved I277 - Workaround Wine/Linux bug 2398 (OpenGL client window).
  Remove click sounds on Modify window button mouse over.
  Add simion.key file in installation.

8.0rc6-2006-11-16

  Resolved I276 - Display double buffering broken under Linux/Wine.

8.0rc5-2006-11-15

  Resolved I142 - Key input commands (KEY?,R/S,key(),run_stop()) freeze.
  Resolved I239 - Immediately splat FLY2 particles with parameters out of range.

8.0rc4-2006-11-14

  Handling of non-SSE2 CPUS improved in installation.
  Removed unused SL compiler library files fully from install.
  Cleaned up docs on SIMION text editor plugins.
  Cleaned examples documentation a bit.
  Update welcome page.
  Reenabled SSE2 on GUI module.

8.0rc3-2006-11-13

  Gracefully handle non-SSE2 CPUs.
  Warn on attempting to install on Win9X.

8.0rc2-2006-11-11

  Added Docs and SL Tools (Issue I131) buttons to main screen.
    (note also SL libraries, Issue I472)
  Installer available.

8.0beta14k-2006-11-04

  Default to electrons in FLY2 file if mass/charge not specified.

8.0beta14j-2006-11-02

  Some View screen control rearrangements.
  Resolved Issue I253 - Make print button visible in View when Hide selected.
  Fixed sizing of positioning info list on PAs tab in View.

8.0beta14i-2006-11-02

  Added missing tooltips on View and other screens.
  Fixed Issue I154 - On data recording and particle definition
    screen, coordinates display in status bar when mouse moves.
  Fixed Issue I269 - 3D view display stops updating after
    exiting data recording screen.
  Fixed Issue I270 - XY,ZY,XZ,3D ISO iso buttons were
    not disabled in PE view.
  Fixed Issue I271 - In Modify, ctrl+right click to replace
    was ignored if focus not on 3D (simgui) window.
  Fixed Issue I272 - In Modify 3D (OpenGL) window crashes
    if closed when converting to polygons.

8.0beta14h-2006-11-02

  Fixed I267 - FLY2 coordinates relative to not preserving.

8.0beta14g-2006-11-01

  - Modify screen rearranged slightly according to manual.
  - Some more tooltips added.

8.0beta14f-2006-10-31

  - Replaced exact angle button with constrain checkbox in View
  - Fixed Issue I266 - Alt key ignored after right mouse down
      on window scroll button without focus in 3D view screens 
  - Fixed Issue I59 - Flying ions as dots goes at high speed
      if mouse not directly over 3D view window (simgui window).

8.0beta14e-2006-10-31

  - FLY2
    - rename gaussian3d {mean_x = 0, mean_y = 0, mean_z = 0,
        stdev_x = 0, stdev_y = 0, stdev_z = 0} -->
        gaussian3d {mean = vector(0,0,0), stdev = vector(0,0,0)}
    - new coordinates attribute on particles { }. coordinate system is
      now preserved on save/load.
  - Update on I212 - if no units comment line given in ION file, now defaults
      to WB coordinates mm (0).  Was PA instance 1 gu coordinates (1)
      in earlier betas and undefined behavior in 7.0.

8.0beta14d-2006-10-31

  - FLY2
    - cylinder_distribution implemented
    - rename axis_direction --> axis  
    - remove underscores from GUI  
    - fixed "text" (now "(special)") in FLY2 GUI - used for
      sequences and distributions int the FLY2 file but not listed in the GUI
    - "edit as text" now works for writing, not just reading

8.0beta14c-2006-10-28

  - Resolved I263 - Disable sounds by default in batch mode operation.

8.0beta14b-2006-10-28

  - Fixed 8.0beta14 error in .fly loading

8.0beta14-2006-10-26

  - FLY2 changes:
     rename linear_sequence --> arithmetic_sequence
     rename line3d_sequence --> line_sequence
     rename vertex_angle --> half_angle
     rename disc_distribution --> circle_sequence { fill = true, ... }
     rename cone_distribution --> cone_direction_distribution {fill = true }
     rename cone_edge_distribution --> cone_direction_distribution
     new line_distribution type
     new sphere_distribution type
     line_sequence/line_distribution now editable in the GUI.
     NOTE: cylinder_distribution not yet functional.
  - new Check for Updates button on main screen.

8.0beta13w-2006-10-26

  - Increased max ions default from 500 to 1000.
  - Moved PE controls to Contours tab.
  - Open button on Browse Files edits text files.

8.0beta13t-2006-10-19

  - Changes
    - adj_elect[0] and adj_pole[0] now same as adj_elect00 and adj_pole00

8.0beta13s-2006-10-17

  - Changes
    - Lua workbench user programs now require a
      "simion.workbench_program()" statement at the top of the program.
      Lua segments also require a "segment." prepended to the name.
      Example:
        simion.workbench_program()
        function segment.other_actions()
          print(ion_time_of_flight)
        end
    - These variables have been renamed in Lua programs:
        rerun_flym                --> sim_rerun_flym
        update_pe_surface         --> sim_update_pe_surface
        trajectory_image_control  --> sim_trajectory_image_control
        retain_changed_potentials --> sim_retain_changed_potentials
      Old versions have been deprecated with error.
    - ion_instance not visible in init_p_values segment.
  - Defects in beta:
    - Fixed Issue I257 - Crash on Lua print() outside of
      segment when loading IOB.
    - More robust update of PRG variables in debugger.

8.0beta13q-20061016

  - Defects in beta:
    - Read/write protections on user variables (p.I-21 sim7 manual)
      now active.

8.0beta13p-2006-10-20061014

  - Enhancements:
    - Lua commands now work in command bar.
    - Lua local adjustable variables are now case sensitive
      (were case insensitive).  In PRG, adjustables remain
      case preserving.
  - Detects in beta:
    - Fixed Issue I94 - Variables tab and Lua variables
        synchronization problems.

8.0beta13n-2006-10-07

  - Defects in beta:
    - Fixed Issue I248 - Lua stack overflow on syntax error
      in user program called by simion.import.
    - Fixed Issue I249 - Status bar cleared on hovering mouse over
      window with tooltip.
    - Fixed Issue I250 - Particle definition and other filenames
      not display when loaded from IOB.
  - Enhancements:
    - Addressed Issue I247 - Refine max iteration limit and default
      increased to 1E7, and other refine screen issues.

8.0-beta13?

  - Added simion/extra.lua

8.0-beta13f-20060927

  More FLY2 enhancements

8.0-beta13d-20060926

  More FLY2 enhancements

8.0-beta13c-20060923

  - Enhancements
    - Issue I215 - Support Lorentzian distribution in FLY2
    - Issue I227 - Add "fly --restore-potentials=b" command-line option.
  - Defects in earlier 8.0betas - FLY2 fixes.

8.0-beta13-20060920

  - Enhancements
    - Resolved Issue I17 - Prevent display flicker with double buffering.
    - Moved Log Window into new "Log" tab in View screen.
  - Defects in earlier 8.0betas:
    - Fixed I224 (and I65,I86) - Loss of view definitions on entering workbench tab.

8.0-beta12h-20060920

  - Defects in 7.0:
    - Fixed Issue I223 - Particles may skip through PA at el=180deg.
      (currently only patched in 8.0, not 7.0)

8.0-beta12g-20060919

  - Fixed Issue I219 -  Various printing screen issues
    - labels, color, annotations.
  - Fixed Issue I222 - Double/halve functions refuse to run.

8.0-beta12-20060909

  - Experimental:
    FLY2 support is *partially* implemented (but certainly
    not ready for production use yet).  See "group 2" on the
    partical definitions screen to try it out.
  - Detects in 7.0:
    - I212 - Minor changes to ION file parsing for improved robustness
      (patch not made to 7.0)

8.0-BETA11f-20060904

  - New features
    - I209 - [+-] keys zoom in/out in on Modify OpenGL view.
    - I210 - Isometric view option on Modify OpenGL view.
  - Defects in ealier 7.1/8.0 betas:
    - Fixed Issue I207 - Key shortcuts bypass field validation (killfocus).
    - Fixed Issue I208 - User preferences (FILES.GUI) ignored in batch mode.
    - Partially fixed Issue I211 - Verbosity of batch mode output.

8.0-BETA11e-20060901

  - Defects in earlier 7.1/8.0 betas:
    - Fixed Issue I205 - "No such file or directory" when loading file.
  - Experimental:
    - more progress on .FLY2 particle definition support (not yet functional!)
  - Debug: Add debug code for Issue I206 -
      "highest_parent_object - no highest_parent found error"

8.0-BETA11d-20060830

  - New features:
    - IOB file name displays in title bar (I204).
  - Defects in earlier 7.1/8.0 betas:
    - Fixed Issue I203 - Down/up arrow keys in data fields skip data validation.

8.0-BETA11c-20060829

  - New example GEM: examples/gem/tetrahedron.gem
  - Defects in earlier 7.1/8.0 betas:
    - Fixed "--reserved-memory" option broken in beta11.
    - Fixed incompatibility in pre-Windows 2000 OSs (GetConsoleWindow).
  - Experimental:
    - Issue I471 - Initial .FLY2 particle definition support (not yet
      functional!).
      This is the "Grouped 2" option on the particle definition screen.
      This should be ready in beta12.
      http://www.simion.com/beta/fly2.html

8.0-BETA11-20060812

  - New command-line capabilities:
    - "fly" command more fully implemented
      "--particles", "--recording", "--repulsion", "--repulsion-amount",
      "--retain-trajectories", "--adjustable", "--markers", "--marker-color"
    - New "lua" command to transparently invoke the Lua interpreter.
    - new "--version" option
  - New "Run Lua Program" button on main screen.  Useful for running
    batch mode programs from the GUI.
  - New built-in Lua functions:
    - simion.command(string) - invoke command via command-line like API
    - simion.import(filename) - import one SIMION lua program into another.
  - New/updated Lua examples:
    - [NEW] "geometry_optimization" - geometry optimization
    - [NEW] "emittance" - calculation of emittance
    - [NEW] "excel" - plots phase plot in Excel
    - [sort of NEW] "collision_hs1" - collision model based on SL version
    - "tune" - voltage optimization (based on SL/PRG versions)
    - "einzel" - einzel lens (largely unchanged from 7.0)
    - "drag" - stokes' law example (converted to Lua + more docs)
    - "gem" examples: cone.gem and tune.gem
    - "tof" example (largely unchanged from 7.0)
    - "trap" example (converted to Lua and refactored)
    - "buncher" example (converted to Lua / partially to C++)
    - "quad" example (converted to Lua)
    - "sims" example (largely unchanged from 7.0)
    - "icr" example (converted to Lua and refactored)
    - "rfdemo" example (converted to Lua, fix voltage calc in area example)
    - "random" example (converted to Lua)
    - "misc" examples (largely unchanged from 7.0)
    - "magnet" examples (largely unchanged from 7.0)
    - "performance_tests" examples (currently unchanged from 7.0)
  - HTML documentation: see README.html in the main program data folder.
  - Lua now includes Luacom (COM interface) for controlling other
      programs.  See "excel" (Microsoft Excel) example.
  - Internal
    - upgraded Lua to 5.1.1.
    - upgraded Boost program options to CVS version.

8.0-BETA10-2006-08-05

  This release further expands the batch mode (command-line)
  capabilities.
  - New command-line capabilities:
    - "refine" command - refine a PA.
    - "fastadj" command - fast adjust a PA.
    - "fly" command (partially implemented) - fly IOB file.
    - "--editor" option - text editor to use
  - Detects from earlier 8.0 betas:
    - Improved status bar display.

8.0-BETA9-2006-07-29

  This release provides initial batch mode (command-line) capabilities
  (Issue I130), and properly supports up to almost 200 point PAs via the
  --reserved-memory command-line option.  If also resolves various
  defects and has internal changes.
  - New features
    - New command-line interface / console mode (in progress)
    - New command-line options:
      - "--reserved-memory=size" allowing
        PA sizes of ~1.85GB to be obtained on Windows XP.
      - "--nogui" non-GUI, console mode.
      - "gem2pa" - convert GEM to PA file.
      - "--default-num-points" and "--default-num-particles"
    - Enabled SSE2 CPU extensions on optimized build
      (slight performance improvement)
    - Converted many toggle buttons to checkboxes.
  - Changes from 7.0:
    - Command-line format differs. Do "simion.exe --help" for details.
      Previously was "SIMION 1000000 #2000 !" (p. B-3, SIMION 7.0 manual).
    - SIMION_EDITOR environment variable.  GUI_EDITOR is deprecated
      and GUI_FILENAMES is now ignored (long names are standard now).
  - Defects from earlier 7.1/8.0 betas
    - Fixed Issue I200 - Secondary keys do not work on gui window.
    - Fixed Issue I202 - Extra .PA extension added when saving .PA#
                         files under Win2K
  - Defects from 7.0
    - Fixed Issue I201 - GEM file includes don't properly
      resolve paths in other directories. (not patched in 7.0)
  - Implementation:
    - now compiling with wxWidgets 2.6.3.
    - GEM code refactoring.

8.0-BETA8-2006-06-20

  This release provides major new capabilities such as Lua programming,
  increased limits, performance enhancements, and initial OpenGL viewing
  in Modify.  It also resolved numerous defects.
  - New features
    - Incorporating Lua programming language, with preliminary Lua
      scripting for user programs (subject to change). Issue I470.
    - Increased maximum PA size limit from 50 million (~500MB) to
      effectively ~200 million (~2GB)--or ~300 million (~3GB) for
      WinXP having the /3GB option enabled. (I163)
      This is not very well tested at the moment but seems to work.
      The /3GB option is not yet tested at all but may work.
      (http://support.microsoft.com/kb/833721)
    - Increased maximum number of ions in memory from 500 thousand
      (~84 MB) to 10 million (~1.7 GB) (I164)
    - Implementation: Now compiling under Visual C++ 2005 (was Visual
      C++ 6 before).  This provides measurably better performance
      and roughly ~20-40% reductions in run-time from SIMION 7.0.0.
      (Issue I185)
    - More compact layout on View screen and "Hide" button that
      collapses top panel.  (I177)
    - OpenGL viewing of PAs in Modify (incorporated from SL Toolkit).
    - Updated fast adjust screen GUI.
    - Resolved issue I98 - On fast adjust screen, elminate
      "you didn't respond to any potential changes" warning.
  - Defects also incorporated into 7.0:
    - Fixed issue I168 - In SIMION data recording, electric potential
      (E) records magnetic potential whenever a magnetic PA of 2D
      planar symmetry is active.
      http://www.simion.com/discuss/viewtopic?t=341
      Also patched in 7.0.1-2006-04-10.
    - Resolved issue I170 - SIMION may freeze on startup with the
      message "Initializing Random Number Generator".
      Also patched in 7.0.3-2006-04-25.
    - Resolved issue I171 - SIMION may crash when calling the "seed"
      function in a PRG user program.
      Also patched in 7.0.3-2006-04-25.
    - Resolved issue I191 - Long file names (greater than 8+3=11 characters)
      may cause error messages.
      Also patched in 7.0.4.
    - Resolved issue I192 - Buffer corruption when saving IOB of file
      length slightly more than 12 chars.
      Also patched in 7.0.4.
  - Defects in earlier 7.1/8.0 betas:
    - Fixed initialization of random number generator from active.tbl.
    - Fixed assert on loading PAs with ng <= 0 (e.g. DETECT.PA).
    - Fixed I193 - Only 12 characters of filenames are displayed in PA
      and PA instance lists
    - Fixed I195 - On adding a new PA instance to the IOB, angular info 
      (Rotation, Elevation & Azimuth) not read into prompt box.
    - Fixed I194 - Memo information not displayed.
    - Fixed I143 - User program enable/disable switch missing in View.
    - Fixed I11 - Time marker controls were temporarily removed in View screen.
    - Fixed I162 - "mm" label not display on ion definition screen.
    - Fixed I167 - Sounds not supressed when the SIMION window is deactivatived.
    - Fixed I137 - In fast adjust screen, focus not moved to panel on electrode selected.
    - Fixed I199 - On first opening file dialog box, file name is string of spaces.

7.1-BETA7-2006-02-04

  This release resovles various defects.
  - Defects in earlier 7.1betas:
    - Fixed data recording monitor slowness and overflow problems (I144)
    - Fixed PA list on main screen not always updated (I50)
    - Fixed variable corruption in debugger (I159)
    - Fixed non-adjustable variables displaying in Variables tab in View (I161)
    - Fixed "Double" button not working (I74)
    - Fixed design defects on file selection dialog boxes (I150)
  - Defects in 7.0:
    - Fixed other variables not initialized in debugger (I157)

7.1-BETA6-2006-02-03

  This release expands the maximum number of electrodes, makes
  various GUI improvements, and resolves some defects.
  - New features:
    - Maximum adjustable electrodes increased from 31 to 128.
      New adj_elect31..127 and adj_pole31..127 reserved variables
      added as well as new adj_elect and adj_pole reserved arrays.
      (see http://www.simion.com/info/Max_Electrodes for full details).
      (I127)
    - GEM screen redesigned.
    - Some Modify screen layout changes, e.g. point type.
  - Defects in earlier 7.1betas:
    - Reduced minimum size of graphic window (I29)
    - Fixed progress bar (I39)
  - Detects in 7.0:
    - Fixed "Illegal Fastadj Potential Count in test.pa0"
      when loading IOB with maximum adjustable electrodes (I158).

7.1-BETA5-2006-01-17

  This release makes various GUI improvements and resolves some defects.
  - Main screen rearranged more.
  - Validate value when enter key pressed in text/spin controls (I18)
  - Defects in ealier 7.1betas:
    - Improve performance and reduce flicker when changing screens
    - Eliminate multiple-flicker upon starting Fly in View
    - Fixed accelerator key conflicts with text/spin controls (I37)
    - Fixed focus issues with view toggle button in fast adjust screen (I141)

7.1-BETA4-2006-01-10

  ## User-visible changes:

  - Precision on numeric fields is now properly implemented (I111).
  - Print options screen redesigned (I14).
  - Fixed update of coordinate/potentials in status bar on mouse
    hover over View/Modify screens (I73).
  - Improve toggle button behavior (disable XP hover effect) (I149)
  - Coloring added on panels (I151) as well as to OK/Cancel buttons.
  - Variables panel on View screen is now two columns (I152).
  - Various small layout improvements: View/Def/Welcome screens.

7.1-BETA3-2005-12-30

  ## User-visible changes:

  - "compile/debug" screen redesigned (2005-12-28), including
    placing variable list inline.
  - "options/customize" and "color/palette" screens redesigned (2005-12-30)
  - "fast adjust" screen redesigned. (2005-12-24)
  - Rearranged main and view screens since last beta. (2005-12-30)
  - Added IOB filename to main screen. (2005-12-29)
  - Various fixes in mouse handling in beta (2005-12-24)

7.1-BETA2-2005-12-22 (22005-08 through 2005-12-22) - djm

  Summary:
    SIMION Project is now maintained by Scientific Instrument
    Services, Inc. (SIS).  The main change is a large change to the
    GUI framework.

  ## User-visible changes:

  * Incorporate new GUI framework utilizing native controls:
    - most screens have been redesigned
    - native mouse cursor
    - native file manager (replaces GUI File Manager)
    - native controls (buttons, text boxes, list boxes, etc.)
    - native message box for help boxes.
    - native windows colors for dialog background and WinXP themes
    - mouse scroll wheel and up/down keys increment/decrement
      numeric fields.
    - changed help system
      - new tooltip help displays in status bar upon mouse hover over control.
    (Issue I473)

  * Remove outdated software:
    * Remove walk-about (GUI File Manager) and EDY programs.

  * Other GUI changes:
    * Add menubar on window frame.
    * Add statusbar on window frame (status messages).
    * New about box with licensing info.
    * Remove "general help" (largely outdated info on the old GUI)
    * [main] Rearrange main screen buttons, including
      * Moved double/halve functions from main screen into Modify screen.
      * Removed "End SIMION" button on main screen (redundant)
      * Removed button "Old" (redundant with "Load")
      * Some relabeling: GUI File Manager, Test & Debug Selected PAs
      * In PA List (Main screen), changed items now have "*" appended
        rather than a red box.
    * [modify] the "set" button now uses a dialog box (more conventional).
    * [view] When loading IOB file, assume yes for these questions (don't ask):
      - Restore Potentials To Values Active When .IOB Was Saved?
      - Auto-Load Matching .REC File?
      - Auto-Load Matching .ION File?
      - Auto-Load Matching .FLY File?
    * [view] Moved data recording link from ion definition screen to view screen.
      FIX:what about time markers?
    * [view] Combined "Resume Ion Flying after a Pause"
      and "Integrate Trajectory a Single Step" buttons into one
      ">" button.  Single step trajectory integration is also
      not automatically turned off when ion flight starts.
    * [view] AdjV tab can now can be used before ion flight
      to display and edit adjustable variables.
      Adjustable variables are now not displayed when starting the fly.
    * [view] On Contour, minor changes to GUI behavior.
    * [view] 3D Zoom behavior modified -- moved functionality to View
      panel (and removed Z3D tab).
    * [view] Tabs rearranged some. Including
     - AdjV --> Variables and PAs --> PAs (Fields)
    * [settings] Removed various font settings (x/y offset
      and special characters).  removed scan on/off.  removed etched/normal
      text.  removed mouse sensitivity.  removed delays panel.
    * Disable undocumented CTRL+ALT behavior (show cross-hairs cursor)

  * Bug/defect fixes:
    * fixed: file directory limit errors (GUI File Manager was replaced)
    * fixed: integer overflow when creating a new PA and specifying
      certain large dimensions (e.g. 90000 x 90000 x 1) (minor)

  * Logic changes:
    * [view,adjv] Changes to the way adjustable variables are saved before/after ion
      flights in order to allow AdjV tab to be accessed before ion flights.

  * Other
    * Support for beta versions.
    * Updated copyright.

  ## Developer-visible changes:

  * Incorporate the wxWidgets GUI framework (www.wxwidgets.org), including
    - incorporate SIMION message loop into the wxWidgets message loop
      (simion_main.cpp and mouse.c)
    - wxWidgets for main screen and various controls and dialog boxes
  * Improve coding:
    - replace "struct" with "typedef struct"
    - reduce usage of void *
    - cleanup of comments to be more doxygen-like (e.g. gui.h)
  * Many files converted to C++ (particularly GUI code)
  * Compile/link changes (changes made only to MSVC++6 project, simion.dsp):
    - Compile globally with 8-byte struct alignment (previously was
      1-byte), while adding pshpack.h and poppack.h around structures.
    - Add Debug builds.
    - Compile against static, multithreaded C run-time library (same as
      wxWidgets) (previously was static, single-threaded).
    - removed timelock from build
  * Remove dahl contact info.
  * Remove scrollbars on simgui client window.

7.0.5-2007-05-25

  - Issue I115 - SIMION may crash on startup if another SIMION7 or
      SIMION8 running and 1000 GUI*.TMP files exist in C:\FILES.GUI.
  - Issue I390 - Buffer overflow on certain bad GEM syntax (minor)

7.0.4-2006-12-26

  - Resolved Issue I331 - Acceleration error in overlap of electrostatic
      PA with magnetic PA of higher grid density. [CRITICAL]
  - Resolved issue I191 - Long file names (greater than 8+3=11 characters)
    may cause error messages.
  - Resolved issue I192 - Buffer corruption when saving IOB of file
    length slightly more than 12 chars.

7.0.3-2006-04-25

  - Resolved issue I170 - SIMION may freeze on startup with the
    message "Initializing Random Number Generator".
  - Resolved issue I171 - SIMION may crash when calling the "seed"
    function in a PRG user program.
  - Compiled with Open Watcom 1.5.

7.0.2-2006-04-15

  - Partly resolved issue I169 - The GUI File Manager has a limit
    of 3000 directories and becomes unresponsive on a long running
    directory scan.
    http://www.simion.com/discuss/viewtopic?t=21

7.0.1-2006-04-10

  - Fixed issue I168 - In SIMION data recording, electric potential
    (E) records magnetic potential whenever a magnetic PA of 2D
    planar symmetry is active.
    http://www.simion.com/discuss/viewtopic?t=341
  - Updated legal and contact info.
  - Added file version info.
  - Compiled under newer version of Watcom compiler (Open Watcom 1.3).
    SIMION 7.0.0 used Watcom 11.

7.0-2005-05-23

  SIMION 7.0, David Dahl, Idaho National Engineering and Environmental Lab (INEEL)

===============================================
  SIMION 8.0/8.1 Manual - Changes and Errata
===============================================

Rev-6 (not yet printed)
  Index - add reserved variables to index.

Rev-5 (Nov 2011) Covering SIMION 8.1.0.31.

  In general, replace mention of SIMION 8.0 with 8.1.

  2-5 - "mV^2" should be "mv^2"

  2-5 - clarify "mass (in)dependent" comments as
    discussed in http://www.simion.com/discuss/viewtopic?p=3250 [*]

  2-6 - ths->the

  2-16 - Replace mention of the "c:\Program Files\SIMION-8.0\mystuff"
    directory (which standard users don't have write permission to on
    Windows 7/Vista) with user's personal Documents or Desktop folder.

  2-16 - 'On convenient' -> 'One convenient'

  5-30 - Added (under the Copy function): "If you want to change the
  potential of a copied element, refer to the description of the
  Replace function given earlier." [*]davido

  7-10 - "Important: Any potential changes via User programs are ignored!"
    is incorrect.  They are not ignored.  Details:
    http://simion.com/discuss/topic/1027-/page__view__findpost__p__3898

  D-5 - Warn user to make a copy of entire examples folder into a personal
    folder user has write access to since most examples write to their own
    folders and Windows 8/7/Vista does not permit write access to
    c:\Program Files .

  E-1 - Note added BMP/PNG/JPG support.

  H-3 - update Refine equations for 8.1.

  H-15 - "coefficient of variation squared" -> "coefficient of variation".
     "four" -> "four+one".  "1/(accuracy level)" -> "1/quality".
     "typically 1/2 or 0.5" -> "quality typically 3".
     [* http://www.simion.com/discuss/viewtopic?p=3305 ]

  I-15 - In the hyperbola equation, "(y-yx)2/ry2 - (x-xc)2/rx2=1",
    superscripts should be used.

  I-22 - In the parabola equation, the "2" in "(x-xv)2"
    should be superscripted.

  M-1 - Add --num-threads option.

  M-3 - Add gem2pa options: dx_mm, dy_mm, dz_mm, scalex, scaley, and scalez.

  M-4 - "--ny-d" -> "--ny=d"

  M-8 - describe INI_GUI environment variable - If this variable is set,
     SIMION will store its program settings and temporary files
     (i.e. FILES.GUI) in this directory.

SIMION Manual Rev-4 (Jan 2008)- Covering SIMION version 8.0.4

  This revision updated some parts of the text for 8.0.4, fixes some
  typos, and improves some of the descriptions.

  2-13 - Note that "adjustable electrode/pole potentials must
          not be skipped (e.g. 1,2,4,5)" restriction was removed
          in 8.0.4 -- Issue I414
  2-13 - Note that 8.0.3 allows multiple fast scaling solutions,
         which are useful for ion funnels and resistor chains.  See
         Issue I172.
  2-20 - Add: "(and possibly also an exclamation ! symbol to indicate unrefined)"
  5-32 - Describe Crop function - Issue I313.
  6-10 - Remove "Any skipped electrode values (e.g. 1,2,3,6,7,8) will abort..."
  6-10 - ".PA2-9 & A-U (numbers 2-30)" changed to ".PA2-.PA127 (numbers 2-127)"
  6-10 - As of 8.0.3, multiple sets of fast scalable electrodes can be
         defined: see Issue I172.
  9-8 - Mention collision_sds example.
  A - Updated for 8.0.4 system requirements -- Issue I474.
  B-1 - Link to Linux and Mac OS X instructions:
    Linux: http://simion.com/issue/469; Mac OS X: Issue I463.
  B-1 - Add comment: Allocating arrays greating than
    approximately 1.3 GB may require starting SIMION with the
    --reserved-memory program option (see Command Line Appendix and
    Issue I163). One way to do so is
    to modify the Windows shortcut that starts SIMION (right click it and
    select Properties) so that the Target reads something like this:
      "C:\Program Files\SIMION-8.0\simion.exe" --reserved-memory 1.8G
  C-3 - Suggest entering "print(sqrt(2))" in the command bar also.
  C-3 - Typo: Reference to Figure C.7 should be C.6.
  C-9 - Correction: Active button -> Enable check box (old comment)
  C-8 - Correction: Remove old "If the square on the button....compensating for it." comment.
  F-2 - Add: GEM files containing macros (Issue I296)
        will be preprocessed and written to a .processed.gem file.
  F-8 - Note that .PA0 extensions were made in 8.0.3 (Issue I172).
  H-13 - Note that a useful analysis of SIMION's charge repulsion capabilities
        is in the README.html file in the SIMION "repulsion" example.
  H-16 - Typo: Remove "USEE".
  I-1,I-5 - 8.0.4 added Lua macro and variable substitution
        support.  See Issue I296 .
  I-10,I-11,I-12,I-15,I-22,I-24,  - "zmin is 10^6" should instead read "zmin is -10^6".
         (regression--was correct in 7.0 manual)
  3-10,6-6 - 30 fast electrodes should be 127 (noted by eloy)
  K-12 - Describe new "window" attribute: Issue I426
  K-15 - Note that defining custom disitributions is explained in
         Issue I407
  K-21 - K.9.14 line_distribution should read
         "Creates uniformly random points along a line segment",
         remove parameter "n", and remove comment
         '-- or specify "step = vector(1,-1,2/9)' in example.
  K-23 - Describe new "window" attribute: Issue I426
  L-16 - Typo: Remove empty "Changing Adjustable Variables While Ions are Flying"
  L-16,L-17 - Add ion_cwf reserved variable - Issue I452
  L-16,L-17 - Add sim_trajectory_quality reserved variable - Issue I370
  L-20 - simplify flow diagram.  Issue I304.
  L-31 - Note that simion.import differs a bit from Lua's own built-in dofile
         and require functions in that the imported code is executed
         inside the environment of the SIMION workbench user program.
  L-3,L-40 - Note new simion.pas interface (Issue I422)
         and SIMION Libraries (Issue I400).
  L-33 - Add missing simion.import doc.
  L-35 - Add new simion.VERSION variable - Issue I398
         Add new simion.sleep function - Issue I462
         Add new simion.status function - Issue I406"
         Moved simion.key, simion.run_stop, and simion.redraw_screen
           into section L.4.1 and remove "only legal in"
  M-2 - Remove /3GB note
  M-2 - Add --temp-path command line option - Issue I458
  M-3 - Add new gem2pa comment line options - Issue I424
  M-4 - Add refine --skipped-point option - Issue I424
  N - updated for 8.0.4 changes.


SIMION Manual Rev-3 (March 2007) - Covering SIMION version 8.0.2

  1-3  - Note that the latest list of 8.0.x version changes is
         online at http://www.simion.com/changes .

  2-24,8-1,8-2,8-8,8-10,H-9,H-10,H-11,H-12,K-2,K-23,L-16,L-27,
  L-33,L-35,L-52,L-53
       - Change "amu" to "u" (standard symbol for unified atomic mass unit).

  6-4  - Note that further information related to the "ground can"
         and defining PA boundary conditions can be found in
         http://www.simion.com/info/First_Uniqueness_Theorem 

  8-27 - Note that log tab is detachable in 8.0.1.

  9-7  - Correction: Replace "message" with "print".

  9-7  - Correction: Remove "(print) legal in initialize, other_actions,
         and terminate segments"

  9-7  - Formatting correction: print(string."3.142")  -->
         print(string.format("%0.3f", 3.141592))

  H-7  - Change "-" before "base array" and "electrode array"
         to "in" (so as not to confuse with subtractions).
         http://www.simion.com/discuss/viewtopic?p=1248#1248

  J-1  - Add note: Details on SL Tools (STL CAD import) is
         available separately in the additional electronic documentation
         (Help | Browse Documentation menu in SIMION).

  K-13 - Remove old comment: "when direct support for FLY2 files
         is added to [SIMION]".

  L    - Correction: some general grammar/spelling/formatting issues.

  L-2  - Add reference to Chapter 9 for user programming tips.

  L-2,L-4,L-72 - Update comments on C/C++ interface:
         As of version 8.0.2, C/C++ code is callable via the Lua
         extension interface.  See SIMION's "extension" example (in the
         examples/extension folder).  A simpler method, with
         more overhead, is the Lua os.execute() function.  COM
         calling is also supported via LuaCOM--see "excel" examples.
         (SL Remote is not available nor needed in Lua.)

  L-3  - Mention the new "Beginning Lua Programming" book:
         More recently released was the book Beginning Lua
         Programming, which provides a more detailed and somewhat
         more novice oriented introduction to Lua.
         http://www.lua.org/docs.html

  L-4  - Correction: Add missing "--" in code comment line:
         "-- Here's some variable I define".

  L-6  - Add note that print also works in bottom task bar (as of 8.0.1).
         For example, "print(factorial(5))".

  L-8,L-40 - Add note that SL Libraries docs can be found in the additional
         electronic documentation (Help|Browse Documentation menu item).

  L-8  - Note new "extension" (C/C++) calling example and that additional
         examples are described in the additional electronic documentation
         (Help|Browse Documentation menu item).

  L-8  - Add note: You will be automatically prompted to refine
         upon first loading an IOB with unrefined PAs (as of 8.0.2).

  L-12,L-66 - Note that workbench user programs can differentiate
         between PA instances by testing the ion_instance variable.

  L-16 - Clarify meaning of adj_elect00 variable:
         adj_elect and adj_pole are array variables with elements aliased
         to the adj_elect00-adj_elect127 and adj_pole00-adj_pole127--you
         may use whichever form is most convenient....  The adj_elect00 (or
         adj_pole00) reserved variable (you can think of it as electrode
         #0) is special and supports control of fast scaling electrodes in
         .PA0 fast adjust files (it refers to the voltage of maximum
         magnitude in the fast scalable set).

  L-21 - Replace: "Message and R/S" with "print and run_stop".

  L-27 - Formatting correction:
         'string."Ion %d neutralized at (x,y,z)=(0,0,0)"' -->
         'print(string.format("Ion %d neutralized at (x,y,z)=(%d,%d,%d)",
                              ion_number, ion_px_mm, ion_py_mm, ion_pz_mm))'

  L-29 - Clarify that writing to reserved functions is allowed
         (e.g. "cos = sin" is allowed), though it can be undesirable.

  L-67 - Add note: "pow(x,y)" can also be written as "x^y".

  L-70 - Formatting correction:
         'string."0.00000"' --> 'string.format("%0.5f", math.pi)'

  L-70 - Formatting correction:
         'if x  = y" --> "if x ~= y"   (under "X!=Y")

  L-72 - Remove: reference to deprecated Lua "mod" function.

  M-1  - Describe new "--noprompt" main option:
         Disables prompting user in batch mode (uses default choice).
         If specified, then --nogui must be specified as well.
         This option is new in version 8.0.1.

  N-1  - Add note: Lua can also call into C/C++ or COM.

  N-2  - Add note: 8.0.2 adds new secondary emission and C/C++ extension
         examples.

  Additional notes (not documented):
  In 8.0.1, ion_split == -4 (ion killed) may also occur if
    particles start with parameters out of range.

SIMION Manual Rev-2 (December 2006) - Covering SIMION Version 8.0.0

  Fixed paper size (A4 --> US letter) as lower margin was almost cut-off.
  I-2  - Added missing Figure I.1.
  I-18 - Spelling: cdnt_box3d --> cent_box3d.
  L-72 - Spelling: SL remove --> SL remote.
  L-73 - Removed: "?" next to nint.
  N-1  - Changed: "FLY2 format of SIMION 7" --> "FLY format of SIMION 7".

SIMION Manual Rev-1 (November 2006) - Covering SIMION Version 8.0.0

  First revision (Issue I16).
Any comments on this web page? (will be sent to SIS)
[Optional] Your name: email: phone/fax:
(c) 2003-2006 Scientific Instrument Services, Inc. (SIS). Contact SIS.