Key: X=fix, A=addition, C=change, (lowercase)=minor, *=user-requested, B=backported to 8.0,
EA= early access.
8.2.1.5-20260625
C linux: add support for Red Hat 8.10 (glibc 2.28) [*]
c linux: fix RPATH on socket library
c internal: compiling with C++ standard 20.
c internal: refactor View where coordinates tooltip
8.2.1.4-20260528
This maintenance release addresses long-standing portability issues in the native Linux binaries.
It also upgrades the internal libraries and cleans up code for maintainability.
Tested on Ubuntu 26.02 LTS and Red Hat 10.1.
C linux: Automatically find shared libraries (lib/lua/?.so and lib/?.so)
without need for setting LD_LIBRARY_PATH anymore. Uses package.cpath and RUNPATH in .so’s.
X linux: rand() fix crash
X linux/PA: fix missing prompt to refine basic PA on iob load.
X linux/IOB: fix crash on loading a second iob.
X linux/STL: fix STL not loading due to wildcard ‘%’ matching and newline character issue.
x linux/GEM: fix crash if shape() raise error.
x linux/GEM: fix crash if gem:to_pa() has no header.
C internal: upgrade Boost libraries.
C internal: upgrade GUI library.
8.2.1.3-20260116
x file: Fix PA file loading with folder name contains “.p” [*]
x GUI/Main: Display clearer error message on attempt to Save PA without proper
file name extension. Was “Filenaming error”. [*]
X GEM: fix “No such file or directory in stl command” when stl() given relative path
rather than absolute path.
a setup: add /currentuser command-line option to simionsetup to
install without admin priviledges. See Doc(install).
c Example(collision_sds): collision_sds.lua : Allow negative ions by replacing
ion_charge with abs(ion_charge) in apply_stokes_damping.
Previously this caused "1270:assertionfailed!" on assert(damping>0).
a Example(trap): add GEM file, trap.gem. README also compares examples better.
c Manual(gem): add axes to demo2.gem picture and center object
x Example(geometry) sphere_mesh.gem fix pa_define.
8.2.1.1-20241119
c FLY2: evaluate position before direction.
See “Making multiple parameters dependent” in FLY2 File.
8.2.1.0-20240926
This release introduces workbench GEM files (*.wgem) and assorted smaller updates.
A GEM New “workbench GEM files” (*.wgem) associated with the workbench IOB file and
which create the entire electric field for the workbench, i.e. building and positioning
all PA instances in the workbench.
See Workbench GEM files (*.wgem). Requires 2022 license or above. Related changes:
A GEM files can contain multiple pa_define’s to generate
multiple PA’s (preliminary support).
A GEM Add gempa_define() parameter filename to set the default PA filename to use.
A GEM Add gempa_define() parameter nz_use to set Z projection of 2D planar PA instance in workbench.
A GEM Add gempa_define() parameter refine_convergence to set default Refine convergence objective.
X GEM Fix 1/2 gu adjustment for circle() inside a revolve*() or extrude*()
inside a scale other than 1
(e.g. using locate, scale, or pa_define with dx parameter).
surface='fractional' is not affected, only surface='auto' (default) or surface='none'
which apply this offset.
A cylinder3d that is infinitely long (from +/- inf), which is implemented in terms of
circle and extrude*(), is also affected.
rotate_fill is not affected, only resolve.
Example:
pa_define{11,11,11,surface='none',dx=0.1}extrude_xy(){circle(0,0,0.5)}
X GEM Fix 1/2 gu adjustment using gem2pa command with dx_mm/dy_mm/dz_mm
arguments overriding pa_define or scalex/scaley/scalez arguments (uncommon usage).
x GEM fixed geminclude() finding file when GEM invoked from another directory, e.g.
simion.commmand("gem2pa../test.gem") .
Workbench/API tweaks:
c View: Workbench size can be set less than 1 mm^3 and non-integer from the GUI. [*]
c View: all PA’s in memory added to workbench on entering View screen with no
workbench loaded.
c View: nz_use now can be non-integer (used on PAs tab Positioning for 2D planar arrays).
c UI: long file names no longer truncated in error messages
C Example(swirl) - New GEM file with “helix” command and FLY2 file to define emission
on coil. Also for C++ version, update Visual Studio project.
a Example(field_array) - add ANSYS Maxwell B field import example (ansys_bfield_to_pa.lua’).
c Doc(fly2_file) - Add Making multiple parameters dependent
x Example(misc) - field_color_pa.lua fix pa.filename
x Example(multiprocess_zmq) parallellib.lua support tables in serialize() using loadstring.
x Example(poission) (piclib.lua): fix error check in
charge array size in add_charge_array (minor). [*]
c Example(collision_sds) - clear error if textfilelib.lua missing
c Example(possion) - piclib.lua - disable current_segment_initialize if PIC_enable == 0,
and improve add_charge_array array size check.
c Example(field_emission) - refinelib.lua - add remove_boundary function
Internal:
C internal: compiler update
C internal: update Windows GUI library
C internal: update Help compiler
8.2.0.11-20210626
A GEM: gemstl() can now extract a single fully connected surface
closest to a given point (x,y,z). This is another mechanism to assign
different voltages to different parts of a system without splitting it
into multiple STL files[*]. See examples\geometry\two_cylinder.gem:
A SL Tools: STL -> PA: Add electrode assignments
list to assign voltages
(V) to fully connected surfaces closest to the given point (x,y,z).
A SL Tools: STL -> PA: Add symmetry and mirroring switches.
No longer needs done via Modify Set.
A SL Tools: STL -> PA: Add “Make GEM File” option, which writes a GEM file (that
imports an STL file) that can be used to generate the PA within SIMION.
x SL Tools: STL -> PA: View GUI sometimes does not display surface enhancement.
x SL Tools: STL -> PA: Empty STL should not fill.
x SL Tools: Reduce number display precision to 16 digits to avoid 0.10000000… numbers.
8.2.0.10-20210615
The prominently includes STL enhancements, including using STL files in GEM files
and importing STL as solids, with or without surface enhancement.
A GEM: Support for using STL files in GEM files and using them like
any other shape. gemstl()
A SL Tools: STL -> PA: New “solid fill” solid strategy, which fills all points
between electrodes with solid electrode points.
Supports surface enhancement too.
See solid strategy.
A SL Tools: STL -> PA: “surface enhancement” solid strategy officially added.
This was previously in a special build of SL Tools.
See solid strategy.
A SL Tools: Display surface enhancement in 3D viewer (like SIMION).
C Click sound now disabled on particle splats (slows down Fly’m).
X SL Tools: STL -> PA: Fix rotation support in “surface enhancement” solid strategy.
C Log window: increase number of lines to 10000 (was 500).
c Example(drag) - drag_mobility_diffusion.lua: Fix units on variables,
to be consistent with the library.
c Example(poisson) - fix piclib.lua might not refine if electric and
charge PA’s are not the first two instances in the workbench.
x Example(magentic_sector) - Update to GEM2 syntax (and fix “n” variable conflict).
a Example(geometry) - new spiral custom shape (spiral.gem) example
c Example(collision_hs1) - add README notes on collision cross section.
c simion.experimental.display.load: allow non-integer zooms_3d.
8.2.0.6-20200704
C View screen: 3D (OpenGL) view automatically updates when PA instances moved
or reloaded or contours change. 3D contours displays only when 3D checked.
C View screen: 3D (OpenGL) view upon mouse hovering properly displays
coordinates and voltages for multiple PA instances.
8.2.0.5-20200701
C Help: Fix CHM help crashing sometimes when typing in index.
Also “Topic Found” now display titles.
X Modify/GEM: Fix Modify screen display corruption if GEM reloaded
with new array size. Regression in 8.1.3.2-20170501.
C Main/File Browser: Add Refresh button to refresh directory tree if changed.
c Main/File Browser: Support Run Lua command on right clicking Lua file.
c GEM: In .preprocess.gem (for debug), translated coordinates in comments now in gu.
Also fix box3d comment had wrong coords.
c Example(count_transmission) - use sim_ions_count variable
X Modify PA size changing with Halve/Double/GeomF
causes display corruption until window refreshed.
Possibly other size changing functions affected as well.
Broken in 2017-06-03.
X PA size changes was no longer checked on entering View screen.
This is the “Warning PA symmetry, size, or mirroring changed” message.
Skipping this could cause crash.
Broken in 2017-02-14.
x 3D OpenGL display of 2D cylindrical PA’s with mm/gu not equal to 1
were not displaying cut plane surface.
A File Browser: Add “Show in Windows Explorer” right click option.
Also allow opening README.html files.
c Example(kingdon_trap): updated quadro_logarithmic.gem to GEM2 format.
a Example(gui): add prompt.lua - Add prompt for input dialog box, simple example.
8.1.3.6-20180201
c reimplement simion.import as pure Lua function (internal change only).
c simion.import supports relative paths when used inside GEM files
because the GEM file processor now sets current folder to GEM file’s parent.
Note: normally include() is used instead to load other GEM code, but
simion.import may be used to load pure Lua code.
A Doc(lua_scope) - new page on variable visibility and scope
A Example(helmholtz_coil) - add “thick_coil” example of approximating a thick
wire with many thin wires
EA-20180201
X Fix sim_segment_global with mfield_adjust, off by factor of 10000.
Feature added in EA.
8.1.3.5-20171101
A Example(particles): new distribution_rejection_sampling.fly2 example,
for generating custom distributions in FLY2 files using a simple
rejection sampling technique.
x GEM: Fix error about “attempt to perform arithnetic on local ‘tsin’ (a nil value)”
with large angles in locate
(broken from recent GEM changes in 8.1.3)
x Example(helmholtz_coil)
Fix broken examples\helmholtz_coil\rectangular_coil\rectangular_coil.iob file.
x Fix –default-num-particles command line option broken in 8.1.3.1.
EA-20171101
X GEM2: Fix infinity (inf) in cylinder3d [*].
8.1.3.4-20170603
A OpenGL: Add display quality (“Qual”) control on Modify/View “3D” (OpenGL) views,
for faster display (reduced quality) of large/complex arrays.
c OpenGL: Change “3D” background color to white (was black), consistent with other views.
A Main GUI: Add “Unload” button on main screen to unload individual PA’s from RAM.
EA-20170603
A Main screen: New file folder tree on Main screen, with file-specific
commands as pop-up menus by right click.
See Main Screen [8.2].
8.1.3.3-20170602
Modify: fix PA cleared when PA setttings (Set) changed. Broken in 8.1.3.2.
Fast Adjust Screen: update displayed potentials if
simion.pas[i]:fast_adjust{…} invoked from command bar within this screen. [*]
Fix digital signature in EXE, missing since 8.1.2.24.
Example(trap): set trajectory, group, and repulsion settings upon load and limit time.
Example(gnuplot): gnuplotlib.lua:
GNUPLOT.plot writes data directly to pipe and plot (not temporary file and replot),
similar to what GNUPLOT.plot_surface does.
GNUPLOT.plot_surface now has xtics and yticks parameters.
Setting GNUPLOT_TRACE=true (e.g. from the SIMION command bar) causes all gnuplot commands to
be written to a file (gnuplot.txt) in the current folder rather than sent to gnuplot.
simion.chm: internal: update documentation system to latest version
8.1.3.2-20170501
Modify: Allow PA size to be increased beyond reserved max PA size, without
Remove All PAs from RAM.
Modify/GEM: Update PA size and header when GEM pa_define changes. [*]
GUI: Add Windows process ID and version number to title bar and Log window title. [*]
GEM: Allow for numerical error in converting reals to integers:
pa_define(7.6/0.2,10,1) or pa_define(37.999999999999993,10,1) rounds up to
pa_define(38,10,1). Affects 8.1.3.1 but not as much earlier versions.
GEM: Fix possible shape command raising error in multithreading. Affects 8.1.3.1.
GEM: Fix extrude_xy/yz/zx length when 1/2 gu adjustment omitted,
like surface=fractional. Affects 8.1.3.1.
Example(test_plane) - add draw() function to draw test planes on screen
examples: move upper-case file names in .iob example files (Linux compatibility)
internal: upgrade build system (should not have effect).
internal: upgrade GUI library (should not have effect).
internal: upgrade Boost libraries (should not have effect).
internal: upgrade compiler. simion.exe now depends on vcomp140.dll (not vcomp110.dll).
EA-20170420
GEM: add transformed coordinates (from locate statements) to comments in
*.processed.gem files for debugging.
locate(5){circle(1,1)};6,1
Example(field_array)
add DS2V gas flow import example
using Matlab or Octave to resample points using the griddata function.
add Opera B field import example
add ANSYS gas flow import example
refactor SolidWorks gas import example some
add cfd.iob example: basic example of reading gas flow PA’s in user program.
shorten names of some Lua programs (minor)
Example(matlab) - changed simion_pa_save interface, with more parameters.
gempa_define() accepted named parameters and new
convenience features like array dimensions in mm:
pa_define{wx=10,wy=10,dx=0.1}.
geme(): and gemn() can accept a function parameter for defining
gradient voltages over electrodes or analytic potentials in space.
fill and within can be omitted for shorter GEM code,
and gemintersect() is an alias for within.
e(1){intersect{box(0,0,10,10)circle(0,0,10)}} .
omit fill/within commands.
geminclude() supports new ways to pass variables to/from
included GEM files.
$(...) and # can be omitted around Lua code:
e(1){fori=1,3dobox(i*10,0,i*10+w,10)end}.
Using a Lua style comment -- in the file will disable
compatibility mode supporting older deprecated GEM syntax such as
space-delimited argument lists, + before numbers, and unquoted strings.
a Example(geometry) - update all GEM files for 8.2 syntax, and add new
examples:
a Example(geometry) - add custom_function.gem - electrode shape
and voltage gradients defined by analytical equations.
a Example(geometry) - add twisted_rods.gem - rewriting
twisted_rods_build.lua as GEM file.
8.1.3.1-20170331
c(internal): refactoring of GEM processing. should have no effect.
x Fix properly raise error on 200 PA instances.
x GEM GUI: block buttons during GEM compile (minor).
x Fix some memory leaks on program exit (minor).
8.1.3.0-20170214
C IOB: Allow workbench IOB’s to contain zero PA instances.
This is related to sim_segment_global which allows
efield_adjust/mfield_adjust segments to define fields without
PA instances.
Also, create empty IOB on pressing Cancel on entering View screen.
c GUI: remove welcome flash screen on startup.
c(internal): refactoring for trajectory calculation segment calling
(sim_segment_global); should have no effect.
EA-20170214
A Segment: New sim_segment_global reserved variable.
Set this to 1 to cause program segments to be always called even when
particles are outside PA instances (or none exist).
Normally this is 0, which uses traditional SIMION behavior of only
calling segments for particles inside PA instance volumes.
Example:
simion.workbench_program()
simion.early_access(8.2)
sim_segment_global = 1 -- ensure segments always called, even outside PA instances
function segment.mfield_adjust()
-- Defined B field even without a dummy magnetic PA instance!
ion_bfieldx_gu = 10
end
function segment.terminate()
-- Always called even if particle terminates outside PA instance!
print(ion_number, ion_px_mm)
end
-- Note: terminate is called for each terminating particle,
-- unlike terminate_run which is called exactly once and
-- without access to particle information.
x simion.experimental.add_particles() -
Fixed not properly initializing particles, sometimes not
calling initialize segment or crash for new particles.
Possibly might affect .ION definitions too.
c Example(mfield_adjust) - add note on sim_segment_global.
x IOB: auto-refine basic PA’s when loading IOB in –nogui mode.
simion.exe –nogui lua -e ‘simion.command “test.iob”’
Previously, only PA# arrays auto-refined in –nogui mode.
x Doc(lua_simionx.SimplexOptimizer)
Fixed stability of optimizer for dimensions > 2,
particulary in computing mid-point and more closely following
Lagarias et al.
Example: optimizing f(x,y,a,b) = (x-x0)^2 + (y-y0)^2 + (a+a0)^2 + (b+b0)^2
[*qh]
A Added “harminv.exe” binary, similar to FFT.
This is a separate download (see Check for Updates), compiled by SIS for convenience,
not part of SIMION.
A Example(lens_propeties): New beam_minmax_diameter.iob example
(computes beam min/max diameters from full trajectory data) and
particle_distance_traveled.iob example (computes distance traveled by
particle, i.e. length of trajectory).
A Example(drag): new drag_mobility_diffusion.iob (mobilitydiffusionlib.lua)
example that superimposes random diffusion, similar to SDS model
but using longitudinal and laterial diffusion constants calculated from
ion mobility constants (non-Einstein diffusion).
A Example(extension/gsl) - sample demonstrating method for compiling C functions
from a library like GSL for personal use.
A Example(tune) - add new genetic algorithm sub-example (tune_genetic.iob)
and library (geneticlib). This is basic but adapatable.
c Example(tune) - tune_series.iob - changed to calculate beam radius not acceptance.
a Example(contourlib) - Add streamline plotting functions, CON.streamline and more.
c Example(poisson_superfish) 2016-07-07: psflib: “convert” sets any PA instance
origin to (0,0) from SF7 array.
a Example(excel)/Example(gnuplot) - New gridlines parameter to plot
(defaults true) to plot grid lines.
c Example(misc): particle_distance_traveled.lua - modularize code.
a Example(gui): New counter.lua - popup window displaying counter or other data
a Example(gui): add mode_select.iob example of GUI popup to select
from different sets of programming segments to run (program modes).
a Example(misc): Add quadrilateral.fly2 - FLY2 with starting points within an
arbitrary quadrilateral, either uniformly or randomly distributed.
Add disc_seq.fly2 - FLY2 file for filled circle of equally spaced points
(rather than randomly spaced).
a Example(test_plane) - New project_coordintes.iob -
Demonstrates how to rotate coordinates onto the test
plane coordinate system when particles hit a test plane. [*]
a Example(geometry): add skimmer.gem hollow skimmer cone.
a Example(poisson): add childs-law.xlsx Child’s law calculation
spreadsheet.
a Example(misc): add pa_move_electrode.lua - move electrode in PA file
by offset.
a Example(geometry_optimization): add move_electrode.iob example,
moves an electrode in a PA/PA# file, without GEM file.
c Example(field_array): moved gas flow (fluent,comsol,solidworks) import
examples from Example(misc) into this folder.
fieldlib.lua make_field support scalar fields too.
x print: Fixed “Temporary metafile creation problems” when writing WMF files
from read only current directory.
c Example(gnuplot) treat non-numeric or non-finite values as NaN in data.
A Example(dump_field) new example dumps field/potential data from
workbench to log, CSV file, Excel, or gnuplot.
a Example(misc), Plotting Fields: add 3D OpenGL PA color plot example
(field_color_pa.lua).
a Example(magnetic_potential) - add solenoid_2dc.iob - 2D cylindrical
solenoid with permeable material.
A Doc(particle_trajectory_calculation): Page greatly expanded to show
many common techniques for controlling particles or recording particle
information, often via user programming or other methods.
c GUI Library (simion.experimental.dialog):
Reuse same table for simion.experimental.dialog
return value and update function. Useful for modal=true
so that return table updates as GUI is changed.
8.1.2.28-20160810
A Batch/Logging: New --quiet options to suppress printing status messages [*]
Command line: simion.exe--nogui--quietflydrag.iob
See –quiet.
Lua PAs API refine function: simion.pas[1]:refine{quiet=true}
Also, pa:fast_adjust, pa:save, pa:load, simion.pas:open
functions are now always quiet.
This suppresses output like
status,Refinecompleted:Iterations1,Delta=1e-100Vin0.00Sec.
pa:refine
has new resume parameter to select whether to
to resume resume refine. Avoids ResumeRefine? prompt.
E.g. ‘’pa:refine{resume=false}`` never resumes. true resume.
nil (default) prompts if necessary.
Also supported on command line:
simion.exe--noguirefine--resume=0drag.pa# (0=no,1=yes,default prompt)
refine –resume
x fix “chdir” fail in 8.1.2.27 release upon loading IOB file from batch mode.
8.1.2.27-20160728
x Example(collision_hs1) - in test2.lua fix
mode 1.4 giving error “attempt to call
field ‘velocity_x’ (a userdata value)”
[*20160113]
a Example(geometry) - add cylinder_mesh.gem (cylinder mesh) example
a Example(magnetic_potential) - add ring permanent magnet examples
(mag_2ring_2dc.iob, mag_ring_2dc.iob), similar to disc magnets but with holes.
a Example(excel), Example(gnuplot) - excellib and gnuplotlib plot -
add xtics and ytics to parameters for spacing between tic markers
a Doc(fly2_file): support vectors inside FLY2 sequences, e.g.
position = sequence { vector(10,0,0), vector(10,1,0), vector(10,3,0) }
c SL Libraries PA.py: Fix Python 3 compatibity (except).
x SLTools and SL Libraries C++: Fixed PATXT -> PA, was importing points as single
precision floats rather than more accurate double precision. [*sm20150817]
x Example(poisson_superfish) - Fix planar non-mirrored symmetry
import failure in psflib.lua:convert (unrecognized symmetry).
[*ro1158-th1686]
c Example(lens_properties) - beamutil.lua - eliminate lensutil.lua dependence
and make plot library optional. [*as20150918]
c Example(misc) - fluent_to_ip_simion_pas:
Add support for Fluent version 3 IP files.
a Example(helmholtz_coil) - add rectangular coil example [*20160104]
EA-20151103
A Modify display enhancements:
C Modify: Colored electrodes in 2D views based on potential.
See Modify Color.
[*dc]
C Modify: Edges of electrodes are now outlined in 2D views,
reduces chance of interpreting electrodes as one grid unit
wider than they really are.
See Modify Edges.
C Modify: 2D views now show electrode points in other planes
as non-electrode points of a different shade of green.
Allows understanding layered cross sections better.
See Modify Planes.
a Modify: “Flood Fill” now works on 3D OpenGL view as well after clicking point.
x Modify: 3D OpenGL view now updates on GEM file updates (GeomF button), as well
as Replace/Edge F.
8.1.2.24-20150727
Minor updates to examples/documentation.
Plus new “flood fill” command in early access.
c Example(excel), Example(gnuplot) - Improvements to
incremental update of surface plot (plot:update), refreshing only every
two seconds or plot:force_update() when plot.queued_updatestrue.
c Example(excel), Example(gnuplot) - new chart_type of none
to display plotting chart (e.g. only tabulate data in Excel but not plot).
Also supported on plot_surface in excellib.
[*tz201505]
c Example(excel), Example(gnuplot) - new bar gap parameter to plot function.
c Example(lens_properties): beamutil.lua improvements:
(1) Ignores dead particles,
(2) Linear interpolates between steps.
(3) Allows beam to go in negative x direction also.
(4) Uses plotlib.lua–faster and allows using both Excel and gnuplot.
A Doc(ganil_2015) - Link to GANIL SIMION day user meeting 2015 notes.
A Doc(lambert_cosine) and A Example(particles) (with lambert_cosine.fly2)
Lambert cosine distribution for emission.
A Modify: New “Flood Fill” button to replace points in contiguous region
containing selected point.
This is also known as a “seed” or “bucket” fill in paint programs.
This makes changing electrode numbers on complex shapes trivial, as
well as filling in hollow electrodes from STL import.
There is also a Lua API function: pa:flood_fill.
A Example(multiprocess_zmq) - Multiple SIMION process parallel Fly’m example
formally incorporated (e.g. splitting Fly’m jobs across multiple SIMION instances,
such as for optimization problems – tune_series.iob).
Also added ZeroMQ client-server computation example, demonstrating communication
with various between SIMION and languages (Lua, Python, Perl, C, C#, and F#)
via ZeroMQ. See also Calling External Programs.
8.1.2.23-20150429
X(critical) Refine/Poisson: Fix Poisson Refine failure resulting in
indeterminate (-1#IND) potentials throughout the entire PA.
This bug only affected 2D PA’s with space-charge (Poisson)
in SIMION TEST versions starting with 8.1.2.9-TEST-20140703
due to major code refactoring in Refine code in that TEST update.
Skipped-point or surface enhance refine must also be enabled
for the problem to occur.
Fortunately, this error is easy to see when it happens,
as all non-electrode points in the PA would generally become indeterminate
on such a refine, making the PA unusable.
The bug pertained to indeterminate order-of-execution evaluation
of the space-charge term and might not occur when –num-threads=1.
It is observed in the examplespoissonpierce_2dc.iob resulting in
-1#IND potentials throughout the entire PA after the first iteration.
[*dl20150126].
c Particles: Time-of-birth (TOB) maximum now 1E+14 microseconds.
Was 1E+6 microseconds. [*am20150427]
c Modify: Now show mm coordinates and fractions of a grid unit
coordinates in status bar.
c Modify: Mouse hover delay reduced to 0.1 s (from 0.2 s) for
faster responsiveness in status bar.
8.1.2.22-20150401
a New simion.command('fly--remove-pas=0...') command option
to suppresses removing all PAs from RAM before and/or after flying.
See fly –remove-pas=d.
a New fly--refine-convergence=d... command option
to set Refine convergence objective for any arrays auto-refined upon
IOB loading.
See fly –refine-convergence=d.
a simion.debug.memory_dump() returns additional
memory usage statistics:
process_working_set_size, process_commit_size, and
lua.
A Refine: New RAM-only PA# Refine
option – Refines PA# arrays entirely in RAM,
without writing solutions array files
(e.g. .PA0, .PA1, etc.) to disk.
Usage: pa:refine{disk=false}
(pa:refine)
or simion.....fly--disk=0quad.iob
(fly –disk=d).
[Sponsored feature *kp20141124]
c Linux: Temporary files are .simion/GUI*.TMP
not .simion\GUI*.TMP. [*kp201501]
8.1.2.20-20140830
This update reduces multicore refine performance loss during heavy CPU
load from other programs and makes some other changes.
c Refine: Mitigate major Refine performance loss when
other programs using CPU cores that Refine is using.
See Doc(multicore) notes on OMP_WAIT_POLICY=ACTIVE Windows environment
variable, which is now the default setting.
c Linux: timers now measure wall-clock (not CPU) time, such as when
reporting Refine duration, like on Windows.
c Particles: allows charge weighting factor (CWF) to be negative in
particle definitions–useful for Poisson solver piclib.lua.
c minor enhancements to “not enough disk space” Refine error.
c Example(poisson): piclib.lua: Add new option PIC.refine_skipped_point
to enable skippd point refining, which sometimes improves performance
when the charge distribution changes little between refines.
c Example(bender_cut): quadrupole deflector turning_quad_xy.gem now has
a proper enclosure to reduce fringe fields outside the 90 degree turn.
Also added page Doc(quadrupole_deflector).
X Example(quickfield): qflib:
fix imported magnetic cylindrical scalar potential
values in PA values being 1000x too small due to
older QuickField versions wrongly reporting units
“A (Wb/m)” rather than “F (Wb)”.
Works arounds problem by correcting units.
c internal changes (not visible to user): refactoring of Refine
a CommandLine: New --lua<code> command line argument to execute Lua
statements or file upon opening SIMION (and prior to executing any other commands
on command line). See –lua <code>.
c simion.lua: Error in SIMION startup script (simion.lua) will no longer
terminate SIMION if not running a command.
c simion.lua: Make simion.exelua-itest.lua (GUI interactive mode)
not freeze GUI.
X Modify: Fix: switching between ZY/XZ/XYZ Modify views was often crashing.
This was a regression in 8.1.2.5.
x Example(drag), Example(collision_sds), Example(faims):
properly handle mobility for multiply charged ions.
Previous versions assumed ions were singly charged,
causing TOF’s off by a factor.
x API(simion.wb): PA instance rotation angles
when set from the API (simion.wbinstance.az,
simion.wbinstance.el, simion.wbinstance.rt)
or GUI (View > PAs > Positioning) are no longer automatically changed to
standard form.
For example, (az,el,rt)=(0,180,0) and (az,el,rt)=(180,0,180) represent the
same rotation, and the former used to be automatically rewritten to the
latter form.
But this rewriting can cause confusion if the three angles are set one at
a time.
The rewritting also wasn’t properly updated in the GUI.
[*r th1515].
x Example(poisson): piclib.lua: Minor fix to error message if charge PA
size wrong. Was displaying “attempt to concatenate local ‘pa’
(a userdata value)”. [*ja th1517]
EA-20140414
This release add a simple GUI library and drag&drop support.
A GUI(drag-and-drop): Files can now be dragged and dropped
from Windows Explorer into the SIMION window.
This includes PA, GEM, IOB, CON, and ION/FLY/FLY2 files.
c GUI/Contours - allow contours larger than 1000000 V or mags.
(e.g. useful for magnetic vector potential in early access)
c Example(resistive): new lens2_pa0_build.lua example creating
two solution arrays per electrode, one for DC offset and one for DC ramp
(using .pa+ file).
X Example(poisson) piclib.lua - Fixed Z cell size (dz_mm) was being read from
Y cell size (dy_mm). This only affects 3D arrays with grid cells having lengths
that differ in the Y and Z directions. [*ps-th1501]
x Example(poisson) piclib.lua - Variables for detecting periodic updates
(last_tof, rebuild, ndisplay, nstep) are now reset between reruns.
This only affects “charge” mode with reruns. [*ps-th1501]
c Example(electrostatic_induction):
update inductionlib.lua and example to support measuring induction on
multiple electrodes independently. [*]
c Example(magnetic_potential): Add 3D version of uniformly magnetized
sphere (mag_sphere_3dp.iob)
c Example(magnetic_potential):
Add quadrupole electromagnet in 2D planar symmetry (emag_quad_2dp.iob) and
quadrupole permanent magnet in 2D planar symmetry (mag_quad_2dp.iob).
X Example(magnetic_potential)
Fixed maglib.lua handling of cylindrical magnetic vector potential
(bfield_vector).
B-field component in Y direction (By) should have been divided by
psipa.dy_mm (grid cell Y size in mm).
Also fixed mu_sphere_2dc-Az.gem, which had been improperly scaling
magnetic vector potential to correct for this error.
bfield_vector now also returns 0,0,0 outside the array.
A New Field Functions Library (simion.experimental.field_array) library for
representing vector fields from potential array objects,
including support for magnetic vector potential.
(It is based partly on the older fieldlib.lua and maglib.lua
and replaces maglib.lua.)
SIMION Example: field_array was updated accordingly with a new field_array_x.iob
example.
a Example(magnetic_potential) - add function make_mfield_adjust to
maglib.lua for quicking build an mfield_adjust segment.
c Example(secondary): remove history.lua. Now instead uses SIMION 8.1
simion.wb:efield API to measure fields away from surface.
x Fix possible instability with 3D OpenGL views of 2D planar arrays.
c View/GUI: Under PA “Scale” factor, change display of “? mm/gu along x” to just
“? mm/gu” (for square/cube cells) or “? ? ? mm/gu xyz” (for anisotropically scaled cells).
(minor) [*tz20130522] [8.1.1.33]
A Linux: Add native Linux build of simion and sltools.
Currently, these are non-GUI and preliminary (need further testing).
c Linux: Use ~/.simion rather than c:\FILES.GUI for settings
directory on native Linux.
c Linux/internal: reimplement free disk space check on Refine, file copy on workbench save
or trajectory keep, fly file load, fly file import, temporary trj*.tmp filename determination,
handling rn in GEM files
Programming(reserved): New sim_relativity reserved variable,
controls whether relativistic effects are enabled during the Fly’m. [*tz]
8.1.2.3-TEST-20130607
SL Libraries: Add missing cstddef include for pa.h compilation under g++ 4.7 linux.
Double: Fix possible format error in error message
“Insufficent room for multiplying size of array” when doubling large array. (minor)
internal: upgrade libraries, handling things like file system and command line
argument parsing. This should have no external effect.
8.1.1.32-20130520 / 8.1.2.2-TEST-20130520
This release has a fix to Particles Define “Coordinates relative to”
and various minor things. It also documents SIMION Advances.
X Particles/GUI:
Fix “Coordinates relative to” box in the Particles Define screen
may be inconsistent with FLY2 definitions being edited, upon first loading SIMION.
Upon first loading SIMION, the particle coordinates (“Coordinates relative to”) were
defaulting to “PA Instance 1(1) origin”, and the Particles Define screen
displayed this. However, the temporary FLY2 definitions being edited on
Particles Define internally defaulted inconsistently to
“Work Bench Origin (mm)”, which could cause some confusion.
Example: Upon first loading SIMION and creating an empty workbench,
toggling the FLY2 “Edit as text” on and off
or saving and reloading the FLY2 file would oddly switch
“coordinates relative to” from “PA Instance 1(1) origin” to
“Work Bench Origin (mm)”. This apparently was rarely noticed since
some conditions like loading existing particles from disk force consistency thereafter.
Affects 8.0.0-8.1.1.31 & 8.1.2.1.
[*sv20130204]
A Doc(advances): summarizing new features and techniques
available in recent SIMION versions.
Long time SIMION users may discover new capabilities and easier ways of
doing things.
c Example(lens_properties): surface_plot.lua: Add electrode numbers _VA_number/_VB_number.
lensutil.lua: Remove surface plotting code since plotlib.lua and excellib.lua
already handle this.
spread.lua: Remove 8.0 compatibility code; automatically enable grouped flying.
a Example(solenoid): Add solenoid_write program example
of writing field to .csv text file.
x Example(plot): Fix “Time-of-birth…is out of range” error in tof_histogram.iob.
x Example(count_transmission):
Fix y_begin and y_end swapped in print statement. (minor)
8.1.2.1-TEST-20130509
This release has major internal (largely invisible)
changes to the Modify OpenGL 3D view in preperation
for the next version of SIMION.
A:View/SurfaceEnhancement: The View screen now displays PA
surface enhancement.
This allows more easily visualizing and measuring
positions of electrode surfaces to sub-grid-unit accuracy.
(This change has no effect on the Fly’m calculation, however.)
This release brings OpenGL 3D graphics to the View screen
and related improvements.
A:OpenGL: Add OpenGL graphics on View screen.
It is accessed via the new “3D” button on the View screen.
This is similar to the Modify 3D view but displays
PA instances, trajectories, and potential contour surfaces.
A:OpenGL: “Cell” checkbox option on Modify/View 3D views
display outlines of PA grid cells.
A:STL: Add “Export” button on Modify/View 3D views to export
PA or IOB to STL file.
This is similar to the SL Tools PA-to-STL
function but operates entirely within SIMION. [*ww201212-th1351]
A:STL/API: Add simion.wb:save_stl() for saving an IOB
(with PA instances and particle trajectories) in STL format.
c:OpenGL: Improvements to Modify/View 3D views “Normals” display,
putting dot on start of surface normal and preventing overly
long lines.
a Example(geometry): Add sphere_mesh.gem - triangular mesh on sphere
example
a Example(octupole): Add octupole_idea_build batch program example,
comparing calculated and theoretical fields.
a Example(misc): Add another gas flow import example.
a Example(matlab): Add MATLAB(R)/Octave macro for exporting arrays from
Matlab/Octave to SIMION PA’s and other interfacing examples.
A Example(molecular_beam): New molecular beam examples
(beam of neutral molecules with dipoles).
a Example(helmholtz_coil): Add saddle coil sub-example.
8.1.1.31-TEST-20130509
x Modify/3D: Fix possible crash on entering Modify 3D view. [*zr20130402]
x Locale/Wine: Fix sometimes failing to recognize and use US style numbers
(e.g. “1.2345”) under Wine (Linux/OSX) configured with certain system locales.
For example, even when using a French (fr_FR) system locale under Wine 1.4.1/Linux,
where “,” is the numerical decimal point character,
“.” should still be used for compatibility reasons.
However, entering =tostring"0.0" in the SIMION command bar was wrongly
returning nil (rather than 0), whereas =tostring"0,0" returned 0.
This problem seems to only affect SIMION >= 8.1.1.27 under newer Wines
(e.g. 1.4.1 and 1.5.27).
The problem appears to be related to Wine failing to recognize
“English_United States.1252” passed to the CRT setlocale function.
A temporary workaround in previous SIMION versions is to
enter os.setlocale"C" in the SIMION command bar.
Both SIMION and SL Tools are now updated to workaround this.
[*ww-th1395]
x Refine: Fix “Abort: Not enough disk space” error may wrongly occur on
.PA# refine due to incorrect calculation of “bytes available” based
on current disk drive rather than disk drive and directory on which
the PA# file is stored and refined on.
Affects mainly >= 8.1.1.18 due to absolute path handling changes in that version.
x SLTools: Remove old vcomp100.dll dependency.
Error “could not load vcomp100-x32.dll” occured on SL Tools startup
if this file was missing, even though it is longer needed as of 8.1.1.27.
a API: Add simion.loadx() for allowing load* functions
to recognize SIMION reserved variables.
x Example(geometry): hexapole.gem - fix comment
on proper efield_adjust segment for antimirroring.
x Example(poisson) pierce_gunpierce_collisionpulse_2dcyl.lua:
Add missing call to old initialize_run segment, to fix error about
“local ‘mass_gas’ (a nil value)” when used with SDS.
[*m2-th1389]
x Doc(lua_simionx.CachedField): fixed broken since simionx.FieldArray
v20120313.
Affected SIMION Example: solenoid with CachedField enabled.
[*sf-th1393]
a Example(geometry): add duct_rectangular_tapered.gem
(tapered rectangular duct / truncated pyramid)
a Example(geometry): add polygon_regular.gem
(regular polygon, defined with convenience macros)
8.1.1.30-TEST-20130305
This release has a few minor fixes. Documentation is also expanded.
c GUI/Record: Data Recording “Output File” can now be disabled by
entirely clearing this field. This behaves the same as “NUL”. (minor)
[*tz201212].
X PA/crop: PA Crop may crash on some PA sizes (on Modify screen or
simion.paspa:crop()).
c Example(swirl), Example(pa2text): Update Cygwin/MinGW C/C++ makefiles
(Cygwin 1.7).
c Example(plot): move tof_histogram.iob from Example(excel).
x Example(excel): Fix excellib error message
“Unable to set the Values property of the Series class” in
old versions of Excel (2002/2003). [*tz]
X Example(collision_sds)/Example(faims):
Diffusion jump vector was not uniformly random.
The direction (1,1,1) was about five times more probable than
directions normal to the X, Y, or Z axis.
In practice, this doesn’t seem to make much difference in results
after a few jumps due to the central limit theorem, but the
new implementation is technically more correct.
See the new sphere_rand function and README for details. [*am]
c internal: disable fastmath in simion module (fixed broken x64 tests
during 8.1.1.27 compiler update, e.g. Lua “0/0 == 0/0” should be false).
8.1.1.29-TEST-20121229
This relese has various minor fixes and enhancements.
c GUI/IOB: On IOB load, if referenced PA files are missing,
display PA header info and offer to create empty PA files
of the same dimension as placeholders. [*20121208]
x GUI/IOB: Prompt user if want to build missing .pa style array from .gem file
during .iob load. Relates to feature added in 8.1.0.40.
x GUI/key: Fix CTRL+V (paste) wasn’t working in text fields since the
graphical window was grabbing the CTRL key.
CTRL/ALT/Shift key down events are now ignored when outside the
graphical window. (Shift+Ins is a workaround in previous versions.)
Affects since 8.0.5. [*sf-th1350]
c GUI/status: Improve % progress status panel for nested operations
like fast adjust.
E.g. “33%>20%” means 20% done with electrode 2 of 3.
[*tz20121210]
x GUI/status: Fixes to % progress status bar update and ESC handling,
such as during GEM processing (minor).
c GUI/Exit: Clarify prompt on attempting to close SIMION:
“Potential array(s) have changed. Quit SIMION without saving?”.
c GUI: Display error messages as UTF-8 Unicode (not ASCII) character set.
For example, for formatting LuaCOM errors from non-English version of Excel.
[*tz201212]
c GUI: Reduce ungrammatical use of caps in displayed text throughout SIMION.
x GUI: Fix crash on exiting command-line GUI mode (“assert m_canVeto”).
Affects since 8.1.1.24. Also some changes to SIMION behavior on Windows shutdown.
x GUI/Wine: Fix assertion (msgdlg AdjustButtonLabels) upon message box display
under Wine/Linux.
x Example(spectrum): Fix plot_it had extra/missing first and last steps in the scan.
[*tz20121222]
x Example(excel): excellib:
In bar/area plots, place tick lines on center of bars. [*tz201212]
x Example(excel): excellib:
Check that labels don’t exceed 255 characters, to avoid error message from Excel.
[*tz201212]
This release makes various minor improvements in the GUI and
simplifies the FAIMS example.
x GUI/keyboard: Fix keyboard tab traversal problems on some screens.
Affects since 8.0.6-TEST7. [*]
c Modify: Eliminate bothersome prompts on entering/exiting Modify screen.
a Modify: “Undo/Cancel” can now revert from original PA file too.
c GUI/GEM: File paths of PA’s created from GEM files now default
to the GEM file path with the extension changed to “.pa”. [*tz]
Furthermore, Modify GeomF now infers better the GEM file to select, using the
last GEM file applied to that PA else the path of the PA.
c GUI/command: Command bar errors now display in a popup box with traceback
for easier reading.
x GUI: Fix minor screen sizing issues:
x GUI/GEM: Fix: “Use Geometry File (.GEM)” button was off-screen when frame is small.
x GUI/Particles: Prevent “Particle groups” (Particles Define) panel hiding when frame is small.
x GUI/Contour: Fix: “Del” and “Change” buttons not redrawing contours.
Affects since 8.1.1.1.
x PA/GEM: Fix: Unsaved flag not set on PA’s created from GEM. (minor).
Example(sds) and Example(faims) changes:
c SDS: T.Qual now automatically defaults to 0 on IOB loading (via segment.load).
c SDS: Move code into segment.initialize_run from segment.initialize
to simplify and improve robustness.
X FAIMS: Fix error about 'alpha'(anilvalue). Affects since 8.1.1.16.
c FAIMS: Eliminate plates_waveform*.iob and spectrum_waveform*.iob examples
since plates.iob and spectrum.iob now do the same thing using squarelinewavelib
and experimentallinewavelib.
c FAIMS: Some refactoring in waveform libraries.
Rename SDS_quick_period to wave_period to simplify waveform libraries.
Eliminate old workaround code in spectrum.iob terminate segment.
Elminate confusing proto_vhigh/vlow/duty in experimentallinewavelib.
Rename WAVE.set_waveform to WAVE.set_waveforms.
Replace excellib with more general plotlib and
rename excel_enable to plot_enable.
a FAIMS: Add bisinusoidallinewavelib, which is similar to bisinusoidalwavelib but
composed of line segments using waveformlib (i.e. digitized waveform), as a
check of waveformlib accuracy.
internal (not externally visible): update GUI library, other GUI refactoring.
8.1.1.25-TEST-20121115
This release makes some important improvements to GEM file accuracy.
A GEM: New surface=auto parameter in pa_define.
This provides a simple way to more accurately position curved surfaces
and cutout (notin) volumes when not using surface enhancement (surface=fractional).
This particularly applies to circle/sphere/cylinder,
hyperbola (Issue-I 371), parabola, polyline, notin, and others.
Surface enhancement is still better, but if you don’t want to use
surface enhancement for some reason, then this is better than nothing.
See surface=auto option in pa_define [8.1.1.25].
C GEM: within_inside_or_on/notin_inside_or_on now shift
the electrode surface outward by a small 0.0001 gu offset.
(within_inside and notin_inside already apply this offset
but in the reverse redirection.)
This more reliably ensures points “on” the shape boundary are filled
even when small numerical round-off occurs in operations like
polyline and scaling.
Example: fill{within_inside_or_on{box(1,1,5,5)}} and
fill{within_inside_or_on{polyline(1,1,5,1,5,5,1,5)}}
behave identically now, as expected. [*]
x GEM/polyline: polyline GEM command accuracy has been improved.
Previously, the points on the polygon edge might not be optimally filled with
the desired electrode/non-electrode point type.
This particularly affected
within_inside/notin_inside/within_inside_or_on/notin_inside_or_on
rather than within.
However, under surface=fractional, it also affected within/notin
(but is somewhat cosmetic since electrode point types on the surface are not
critical for field accuracy under surface=fractional).
Example: polyline(10,515,515,1020,1020,1515,1515,2010,2010,155,155,1010,10)
(cross).
C GEM/Surface: PA grid points that precisely align to an edge of a within/notin
fill volume are made to be electrode points if surface=fractional or surface=auto
is enabled.
In other words, a notin inside an e or a within inside an n
(both of which remove electrode material) will be treated as an “inside” fill to avoid
removing the electrode points from the border.
This largely avoids fiddling with
within_inside/within_inside_or_on/notin_inside/notin_inside_or_on
fill variants since within and notin will now just do the
right thing.
The default option (surface=none) retains the old behavior for compatibility though.
Example: e(1){fill{within{box(1,1,5,5)}notin{box(1,1,5,5)}}}
and e(1){fill{within{box(1,1,5,5)}}}n(0){fill{notin{box(1,1,5,5)}}}
both create a 4x4 hollow box with infinitesimally thin walls under surface=auto or
surface=fractional.
See surface=auto option in pa_define [8.1.1.25].
c GEM: polyline, points, and points3d commands can now accept an arbitrary
number of points. Previously these were limited to 100, 100, and 65 points.
x GEM: Fix polyline problems when using exactly 100 points. [*sf-t1338]
x GUI/FileOpen: Fix File Open dialog box not remembering last folder.
Affects since 8.1.1.18. [*tz]
internal (not externally visible): minor luacom update
8.1.1.24-TEST-20121105
x Fix CPU consumed during program idle. Affects since 8.1.1.18.
Programming(reserved): New sim_ions_count reserved variable,
containing number of particles in Fly’m. [*]
Programming(reserved): New ion_ke reserved variable, providing
more convenient read/write access to current ion kinetic energy (eV). [*]
8.1.1.23-TEST-20121016
This release improves performance, such as
Flym speed under Wine/Linux and CrossOver/Mac OS X.
It’s strongly recommended for Linux and Mac users.
C Wine/Flym/Performance: Flym speed under Wine/Linux and CrossOver/Mac improved significantly.
Speed improved a couple times in GUI and non-GUI modes and is close to native speed now.
Flym speeds might have gotten worse under recent Wine versions, but this should fix
that.
C PA/Surface/Perf: PA surface enhancement info loads from disk faster.
x API(simion.pas): simion.paspa:crop() wasn’t properly
guarding against attempts to crop a region larger than the original PA.
8.1.1.22-TEST-20121015
This release has some cropping improvements and minor fixes.
A API(simion.pas): simion.paspa:crop() now saves electrode solution arrays
on disk as well (new persist argument).
x Startup: Fix possible crash on startup if SIMION 8.0.0-8.0.3 previously
opened (alters FILES.GUI directory). Affects 8.1.1.20-8.1.1.21.
a Example(geometry): Add two_cylinder-1.stl and two_cylinder-2.stl to two_cylinder.stl.zip
(separate STL file for each lens element).
x GUI/SpinCtrl: The View screen > Display tab > 3D zoom depth control may not actually
update the displayed zoom level when first changed following a +Z3D.
Other spin controls might exhibit a similar issue in rare cases.
Affects 8.0.6.7-8.1.1.21 (minor).
c internal changes (not visible): some View screen view structure refactoring
8.1.1.21-TEST-20121004
This release improves control of fast adjusting/scaling during IOB loading.
a IOB: Add .iob saving option to disable “save/retain” of
“Electrodepotentials(inside.iob)”,
thereby preventing automatic fast adjusting/scaling upon subsequent .iob loading.
This has similar effect to the batch mode fly--restore-potentials=0 option.
Also, the existing option to “save/retain” of
“Potentialarraysthatwerefastadjusted(.pa/.pa0)”
has been renamed to just “Potentialarrays(.pa/.pa0)”
since this can save PA’s that were changed for any reason (including editing
from the PA API).
See How can fast adjusting be prevented on IOB load?.
[*am20121004]
a IOB: Add prompt “FastscalethesePA'sinmemorytomatchpotentialsfromtheIOBfile?”
upon loading an IOB with a basic array (.pa) file whose scaling potential does not match
the scaling potential stored in the .iob file.
See How can fast adjusting be prevented on IOB load?.
[*am20120928]
8.1.1.20-TEST-20121003
This release fixes a long standing limitation in the .IOB file format,
fixes some old PRG debugger issues, and makes various internal changes.
XC IOB/Format: .iob files can now store potentials for electrode numbers > 32 now.
(IOB mode 3 format). (Max Electrodes, Issue-I 533) [*]
x PRG/Debug: Fix: running old style PRG code segments from “Program Test”
debugger crashes if PRG code raises an error. Affects 8.0.5.x-8.1.1.18.
x PRG/Debug: Fix: Old PRG debugger “Run Segment” button may crash if
“Trace program execution” enabled and PRG contains an array.
Corrupt data may alternately display before “Array Allocated and Pre-Zeroed”.
Affects 8.0.0-8.1.1.18.
c internal changes (not visible):
refactoring of some Flym code in preparation for Flym parallelization.
8.1.1.18-TEST-20120927
This release improves Log window performance by an order of magnitude and avoids
display refresh lags, roughly doubles GUI mode Flym performance under CrossOver Mac,
adds a new Example(resistive) for electrode potential gradients, and has
various minor fixes and API additions.
C GUI-Log/Performance: Improve Log window performance by more than an order
of magnitude. This is most noticed on Data Recording on every time step.
C Mac/Performance: GUI-mode Flym performance under CrossOver Mac (OS X) roughly doubled.
x GUI-Drawing: Ensure the GUI is always redrawn during a Fly’m, even on frequent
Data Recording (e.g. every time step). Previously, this could temporarily freeze the GUI.
A Example(resistive): Add example building PA/PA0 files with continuous voltage gradients
on surfaces (resistive electrodes).
a Example(geometry): Add twisted_rods_build example:
bent, twisted, sheared, variable radii rods/tubes/wires using PA API.
c API(lua): load* functions when passed a filename
ending with .wblua are now processed as workbench user
programs (Load Functions) with the special access to reserved variables.
(Note: See also simion.loadx in 8.1.1.31.)
c BatchMode: Particle splat status messages (e.g.
“10 Splat: xyz(96,3,0)mm, v=43.926mm/usec”) no longer display in Log during
GUI batch mode. They also are now prefixed by “status2,” in non-GUI batch mode.
X IOB/Load: Fix: On loading an IOB file referencing a non-existent .P[B-Z]0 file,
in some conditions the .PA0 file was auto-loaded into the workbench (or a file not
found error was raised) instead of generating it.
Affects >= 8.1.0.40 particularly (GEM autoload).
x Programming: Trajectory viewing option (sim_trajectory_image_control) changes
made in a load segment were being ignored in GUI mode.
x Programming: Fix crash upon sim_trajectory_image_control, sim_trajectory_quality,
or sim_rerun_flym changes in load segment (prior to View screen display).
x IOB/View: Remove extraneous warning:
“Missing NONAME01.PA array. Details: The workbench (.iob file) references the
non-existent solution potential array (NONAME01.PA).”
which could occur when re-entering the View screen with unsaved PA’s.
Affects >= 8.1.0.40.
x GUI: Fix: When Rerun is enabled and all particles fail to initialize, an
error dialog box displays repeatedly (“Aborted: No particles created. Particle 1: terminated in
electrode or beyond volume.”), requiring forced program termination.
Affects 8.1.0.32 - 8.1.1.17. [*ms]
x CrossOver Mac: Fixed warning about “FontEnumerator::IsValidFaceName(font.GetFaceName())”
upon loading Log window (or View screen).
Confirmed in CrossOver Mac 11.2.2 / SIMION <= 8.1.1.17.
Prior to this fix, a workaround is to click “No” when prompted
“Do you want to stop the program?”.
x FilePath:
Fix some rare issues by keeping track of absolute paths of all open files, including PA’s.
This can make links between PA’s and IOB’s more robust in cases
when the current working directory is changed.
Fix some issues with File Open dialog box changing the current working
directory (e.g. annotations .ann).
Run Lua Program button now restores the current working directory on script
exit if an IOB file is open.
Fix to OS X/CrossOver Doc button possibly sometimes not opening right page.
Update displayed .rec filename upon IOB save.
Update displayed PA instance list when PA or IOB file paths change from API.
x GEM: Fix corruption when include() raises permission denied error.
x GUI/Log: Fix assert warning about OK/YES/NO on attempt to close Log window
during batch mode program.
This release provides a major new Particle API for creating particles during the Fly’m.
A API(particles): Add simion.experimental.add_particles() function for
creating new particles during a Fly’m (single or FLY2).
For examples of this feature, see the updated
Example(child_particles) and Example(random_fly2).
8.1.1.16-TEST-20120904
This release provides an extension to SDS supporting chemical reactions
(Example(collision_rs)),
a new plotting library that wraps the gnuplotlib and excellib libraries (Example(plot)),
thumbnails images in the Example(geometry) README,
and various small fixes/changes.
A Example(collision_rs): New example of SDS + chemical reaction simulations.
By U. Wuppertal.
A Example(plot): New plotting library providing a consistent
API across Excel, gnuplot, and other programs. Examples included.
This wraps around libraries in Example(excel) and Example(gnuplot).
C Example(geometry): Add thumbnail images to README.
C Example(hda):
Use flym (and load) segment to simplify code, and remove empty.pa.
Extract surface plotting into external excellib library.
Support plotting 1D (not just 2D) scans.
Fix sometimes reversal of surface plot labels depending on voltage scan ranges.
Scan in a more incremental way, showing rough before detailed picture.
Add transmission plot (in additional to beam size plot).
Allow disabling Excel (_use_excel variable).
Change adjustable variable names.
Enable surface enhancement in GEM file.
c Example(spectrum): Allow slit size in PA to be quickly changed from View screen
adjustable variables.
Enlarge detector. Alternate between forward/reverse scans when doing multiple scans. [*]
c Example(hda), Example(spectrum), Example(electrostatic_induction):
Replace excellib/gnuplotlib with plotlib.
c Example(icrcell): Replace particle randomization code with FLY2 file.
Automatically enable Grouped flying and T.Qual=0 on IOB load.
Add adjustable variable to limit Fly’m time.
x Example(icrcell): Fix ignoring user changes to some fast_adjust related adjustable variables
from the Variable tab. [*]
a Example(excel)/Example(gnuplot): add 2D surface plotting function
(plot_surface) to excellib and gnuplotlib. Used by hda example.
c Example(gnuplot): some refactoring code (GNUPLOT.open).
c Example(tune): Display tuning goal at end, like other examples.
binaryoptlib: n wasn’t incrementing in output.
Rename voltages A and B with electrode numbers.
tune_series: Add V2_count/V3_count variables, and use excellib.
[*tz20120809]
a Example(geometry):
Add disc_segmented.gem - segmented disc geometry [*].
Make tune.gem cylindrical.
a Example(einzel): add GEM files. [*tz201208]
c Example(random_fly2): rename cone_angle_off_vel_axis to cone_half_angle.
x Example(lens_properties): cardinal_points: avoid sometimes detecting y=0
crossing when particle starts at y=0 [*tz20120826]
x IOB: Improve robustness of .iob file loading.
Raise errors on various workbench parameters out of range.
Clear previous particles and data recording options when IOB loaded from View > Workbench > Load.
simion.command'name.iob' no longer changes current working directory on
.iob file load failure.
Improve error strings raised by simion.command'name.iob'.
c PA0: Eliminate check that electrode potential in fast adjustable solution arrays
is correct (“Wrong Reference Point Potential”). This allows easier editing of
.pa[0-9] arrays–for example, things like
pa:load'test.pa1', edit PA electrode potentials, pa:refine{}, and pa:save()'',
to do things like applying gradients on electrodes.
x Refine: pa:refine with solutions parameter
not containing 0 was was wrongly deleting .PA0 file. Affects since 8.1.0.40.
c Print: Printer options pixel scaling factor now defaults to 1 (not 10).
c Example(collision_sds)/Example(collision_faims): libraries and files loaded
by collision_sds.lua can now be searched relative to the directory containing
that file. This avoids needing to copy all these files into your
project directory. [*]
Always guard against negative local pressure and temperature.
New versioning support.
x Example(poisson): minor piclib improvements:
Fix find_charge_pa only looking at first PA instance.
Warn if space charge PA instance scaling factor not 1.
Delete any residual space-charge from previous flym in charge mode.
c Example(lens_properties): cardinal_points.fly2 - increase Delta[y] for easier viewing.
[*tz201208]
c Doc(system_requirements): compatibility tested on Windows 8.
8.1.1.15-TEST-20120807
x API(simion.wb): Resizing a 2D cylindrical PA that has a
corresponding PA instance on the workbench (as might might occur for Example(geometry_optimization),
using simion.wbinstance:_debug_update_size() in gemlib update_painst_from_gem)
would distort the PA instance volume size in the Z direction (as seen by the green box
in the View screen). [*bc20120807]
8.1.1.14-TEST-20120806 (production)
A Example(geometry_optimization): new “mesh_size” sub-example evaluating trajectory
changes under many combinations of PA grid unit size and Refine convergence objective.
C Example(quad):
Add GEM files.
Enable surface enhancement for high accuracy.
Enable X+Y mirroring on quad.pa#.
Add quad_monolithic.iob, identical to quad.iob but using a single PA.
Add optional theoretical field (efield_adjust) for comparison.
Give entrance and exit electrodes two separate electrode numbers.
Correct spelling of frequency_hz variable.
c Example(kingdon_trap): quadro_logarithmic_build now uses surface enhancement
and can evaluate Refine error.
x GUI: Improve error message if no Windows file association for .txt files
when clicking “User Program…” and similar buttons. Error was
[[Execution of command ‘”” <filename>’ failed (error 87: the parameter is incorrect.)]]
[*ro20120730][B] (rare)
x PA(surface_enhancement): require surface offsets to be in the range (0, 1).
Prevent surface offsets on positive PA edges.
8.0.8.14
x Double/Halve: These functions caused the error
“Failed loading potential array (temp.pa#): File format is invalid.
Found newer PA format (requires >= Simion 8.1.0)” upon reloading the PA from disk.
thread1282 [*]
Affects 8.0.7.14 - 8.0.8.1 due to regression from 8.1 development.
8.1.1.13-TEST-20120730
This release fully optimizes the speed of surface enhancement.
C Refine(surface_enhancement): Improve Refine speed for Electrode Surface Enhancement / Fractional Grid Units.
This is now nearly on par with Refine speed for PA’s without surface enhancement.
Previously it was about an order of magnitude slower.
C FileIO(surface_enhancement): Fixed very slow speed loading/saving surface enhancement
info.
a Example(excel): Add tof_histogram.iob sub-example, computing and plotting TOF histogram.
c GEM: More specific message on pa_define errors (was
“Aborted: Error in PA_Define Parameters”). [*B]
a Example(trap): Link to papers on radial stratification of ions in ion traps
c Fly/Limits: Maximum mass changed from 1E+9 u to 1E+100 u.
Maximum charge changed from 9E+3 e to 1E+100 e.
Maximum KE changed from 9E+9 eV to 1E+100 eV. [*]
8.1.1.12-TEST-20120720
c Example(bradbury_nielsen_grid): simplify code some and improve comments.
x Example(bradbury_nielsen_grid): fixed broken example:
reset() gave error “bngrid.lua:43: attempt to perform
arithmetic on field ‘mm_per_gu’(a nil value)”
since mm_per_gu was renamed scale in 8.1.0.14. [*rj20120627]
x PA(surface_enhancement): clear surface enhancement info on in-place PA reload from disk.
Affected 8.1.1.10.
a Example(surface_enhancement): add code in sc.lua to optionally apply theoretical
fields for comparison.
c Example(faims): spectrum_waveform2: replaced waveform data and
changed proto_duty from 0.25 to 0.3 (more accurate)
x Example(misc): fluent_ip_to_simion_pas: Export gas flow units as m/s (not mm/usec)
as expected by SDS model.
x FileIO: Fixed: file I/O failures were not being reported
for asynchronous I/O. An affected example includes attempting
to write a PA file when the disk is full. Broken since 8.0.5-TEST30. [B]
x SLTools: Fixed to always use US/ANSI style numbers like “1234.56” not “1234,56”
regardless of locale (regional/language settings). A change made in SL Tools 1.1.3
unintentionally caused it to utilize the Regional and Language settings in
the Windows Control Panel (particularly formatting of commas and periods in the numbers),
thereby causing “Bad number format” errors when reading STL files. [*][B]
a Doc(field_emission): link to new published paper on field emission simulations in SIMION.
This release is a major update to the PA surface enhancement capability,
which can provide more than an order-of-magnitude improvement to Refine
accuracy in the case when electrode surfaces are not aligned to grid units.
A PA/Refine/GEM: Add PA surface enhancement support in Refine, PA load/save, GEM processing,
and Modify screen 2D view display.
See Doc(surface_enhancement).
A Example(surface_enhancement): new examples demonstrating surface enhancement.
c The older 8.1.0 (non-optimized) gemrefine implementation of surface
enhancement is now deprecated.
Also moved old experimental\enhanced_refine example into Example(surface_enhancement).
8.1.1.1-20120514
This release improves SLTools STL->PA function accuracy, adds an example
reloading a FLY2 from a user program, and fixes some GUI bugs.
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.
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.exeexample.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.
A Refine(dielectrics): Add dielectric solving support to Refine.
See Doc(dielectric) and the new Example(dielectric).
A GEM: A PA can be marked “not refinable” by using an underscore in the pa_define
command type argument (e.g. electric_ or magnetic_).
This is equivalent to
simion.paspa.refinable==false (simion.paspa.refinable).
This is useful for PAs that store
some special field type that should not be automatically refined in the usual manner.
It is used extensively in
Example(magnetic_potential) and Example(dielectric).
c GEM: Disable “no fill definitions” warning if PA empty.
A Example(field_emission): new field emission cathode example, illustrating
field-dependent emission, nested course/fine arrays (useful for higher field accuracy),
and linking adjustable variables to GEM and FLY2 parameters.
A Example(magnetic_sector): new more extensive magnetic sector example.
A Example(kingdon_trap): new Kingdon trap / quadro-logarithmic / orbitrap-like example.
A Example(count_transmission): add % transmission calculation example
c Example(contour): contourlib81: support multiple plots in the same call, while
ensuring they are drawn on the same scale.
a Example(misc): add Fluent gas flow conversion example script.
a Example(misc): add particle_distance_traveled program example (computes total
distance in mm particle traveled)
a API(simionx.FieldArray)/Example(field_array):
Added anisotropic cell scaling support.
Added alternate sub-example using SIMION PA objects (simion_pa.iob).
Added fa:convert_to_pas (convert to SIMION PAs).
Minor fix to error message when .csv file has wrong number of data points.
c SIMION Example: collision_hs1 Collision Model HS1: Add collision diagram [*]
c GUI(menu): improve Help menu organization and link to manual search
http://simion.com/manual [*tz20120213]
x GUI(View): PA instance Add/Rpl no longer shrinks instance inside single pixel mark.
Previously, if a zero sized rectangle was marked (e.g. simply by clicking the graphics
window), often unintentionally, then using PA Instance Add/Rpl buttons would resize
the PA instance to fill that tiny mark, as seen by a small scale in the Positioning panel.
x Help: improve interlinking mechanism between supplemental help and examples.
x Programming(PRG): Fixed recent regressions in old PRG programming (for completeness):
Fixed flym segment (new in 8.1.0.40) wasn’t also working in PRG.
Fixed Program Test > Restore All crash with PRG using sim_grouped
(new in 8.1.0.45).
Fixed Program Test > Run Segment crash with PRG using certain new vars like
ion_run.
x Programming: deny access to ion_run reserved variable at top-level.
x GUI(View): Fixed possible View screen crashing in drawing certain PA instance rotations
(continuation of patch in 8.1.0.48)
c GUI(View): Avoid printing View screen mouse hover information to Log window
when refining (e.g. 2D(xy)x:*,y:*mm...). Typically occurred in poisson examples.
x API(simion.pas):
Ensure constraint painst.scale*pa.dx_mm>1E-6 since PA cells with
mm/gu < 1E-6 can lead to particles stop advancing due to numerical loss of precision,
such as near PA & WB boundaries.
c CrashDump: improvements to crash dump reporter accuracy and terseness
SIMION “early access mode” is now enabled to allow early preview access
to a few new features slated for SIMION 8.2:
A Early Access Mode: comments on using early access mode: simion.early_access(8.2)
A Refine(poission): New permeability and magnetic vector potential support in Refine,
with extensive examples. See Example(magnetic_potential),
Doc(permeability), and Doc(magnetic_potential) for details.
8.1.0.48-20120130
X GUI(View): Fixed View screen crashing in drawing certain PA instance rotations
(Issue-I 588). 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-I 223).
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.
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 noticeable.
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
examples\\poisson\\magnetic_vector_potential (moved: SIMION Example: magnetic_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_charge\sphere_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 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.
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 (file:collision_sds\test3.iob and faims) have been
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).
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). 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
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. examples\ims\ims.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-I 587. 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: functionsegment.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-I 489. [*][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:\ProgramFiles\SIMION-8.1\examples .
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:\ProgramFiles\SIMION-8.1\examples\quad to some location
you have write access to, such as your personal Documents folder. The Windows
ProgramFiles 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.
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:attempttoindexlocal'output'(abooleanvalue)" [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:refinesolutions 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): 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.
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(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
x contouring: correction on aniso-PA 3D contour line spacing
c API(simion.pas): pa:save now raises on error.
Renamed pa:rescale to pa:resample.
Corrected documentation on some error handling behaviors.
c supplemental help: better organize table of contents
8.0.7.16-TEST (and 8.1.0.16-TEST)
X 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.
c Improvement in IOB loading robustness for future compatibility.
8.1.0.15-TEST-20110816
C 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:
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/ ]
C .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.
C 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.
C 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.
C 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.
C Double/Halve: These functions now update grid cell sizes in mm accordingly.
a API(simion.pas): Added pa.symmetry_type variable (similar to pa.symmetry but
without mirroring info)
C API(simion.wb): instance.mm_per_gu variable renamed to instance.scale
due to the above change in meaning for the scale factor.
c Disable antimirroring option in GUI (will be delayed to 8.1.1/8.1.2).
c SL Libraries: ng changed from int to double, and only include
first 17 bits of ng in mirror (SIMION 8.1 compatibility)
X 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] [8.1]
xa Copy function (View PAs) tab now implemented for anisotropically scaled PAs. [8.1]
X 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). [8.1]
x 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_amu and _sigma_m2 were changed during the run.
x Copy function (View PAs tab) slowness fixed. This affected versions >= 8.0.5-TEST27. [*B]
x Fixed reporting errors on loading 8.1 data files in 8.0. [*B]
8.1.0-TEST13-20110811
C 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.
c API: remove undocumented simion.EARLY_ACCESS
c GEM/aniso-PA: pa_definedz_mm, if omitted, now always defaults to dy_mm,
never dx_mm.
c Examples: remove early access mode calls.
x API(screen print): Fixed simion.print_screen/simion.printer instabilities.
These are used in geometry_optimize 8.1 features. [8.1]
x API(simion.pas): Fixed pa:crop, pa:refine, pa:fast_adjust may cause
instabilities if they raise an error. [8.1]
8.1.0-TEST12-20110810
setup: New software installer for SIMION 8.1.
X 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) [8.1]. [*kc20110810]
[severity: critical]
c Resolved incompatibility with having 32-bit and 64-bit SIMION 8.1 executables
in the same folder.
a Examples: added examples\geometry\sphere_aniso.gem - simple example of
GEM for anisotropically scaled PA.
a Examples: added examples\geometry\sector.gem - magnetic sector example
a 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
X aniso-PA/GUI/OpenGL - Modify 3D rendering of anisotropic PAs fixed
(cylindrical case, texture, and mouse coordinates) [8.1]
x rec - fixed warning about early access in “split data recording output
into multiple files” option. [*ew20110805]
a 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-I 339).
A SL Libraries: 64-bit support added.
a 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-I 339 report. Issue-I 339 [*]
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
c GUI/Data Recording - “Record data” checkbox now automatically becomes checked
upon altering any Data Recording screen option (for convenience). [*tz]
A 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.
a examples - Added examples\geometry\parallel_plate_capacitor_2d.gem (idealized 2D
parallel plate capacitor or analyzer).
X ansio-PA - View 3D Iso screen now draws anisotropically scaled arrays properly. [*] [8.1]
(Note: Anisotropically scaled arrays now drawn with the Constrn optimization disabled). [8.1]
X 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. [8.1]
X GUI/GEM - Added separate scale X/Y/Z fields to GEM screen for anisotropic scaling. [8.1]
X GUI/view/important - Fixed distortions in drawing PA’s in non-constrained 3D View screen
(Issue-I 586). Affected >= 8.0.6-TEST17.
c 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]
c 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).
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-I 585) [*]
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-I 522) [*]
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-I 536)
Refine: Anisotropic cases of 2D cylindrical Laplace implemented.
Refine: Proper Neumann boundaries on all array edges. Issue-I 372 [*]
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-I 494).
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-I 494) - only partially-implemented
Add option to omit relativistic effects (Issue-I 579)[*]
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-I 584) [*]
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-I 277)
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.
SL Tools 1.1.3-20110704 - includes above OpenGL fixes.
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
8.0.6-TEST17-20110620
[minor] remove displaying 123 on startup (started in 8.0.6-TEST16)
[prg] In PRG code, ARCL from adj_elect crashes (Issue-I 581) (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-I 582) (likely since before 7.0)
GUI: Fix in Modify 3D view, Faces/Lines/Points checkboxes sometimes missing
(since 8.0.6-TEST7) (Issue-I 583)
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
upcoming 8.1 version that can be tested for a limited time by 8.0 users
(for further details, see Issue-I 421).
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-I 578) [*]
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-I 577]
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-I 422)
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-I 572)
[fadj/defect] Fix .pa_ corruption when using .pa+ file with .pa# file
having integer electrode numbers exceeding fast adjustable limit (Issue-I 574)
[fadj/defect] Fast adjust screen crash/error on more than five electrodes (Issue-I 573) [*]
[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-I 127). 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-I 429).
[fly2/defect] Globals Lua functions not accessible in FLY2 files. [*] (Issue-I 568)
[examples/collision][examples/faims]
In collsion_sds.lua fixed “ion’s x coord outside array” check (Issue-I 566). [*]
8.1 Early access:
[program] Improve “Programmatically draw 3D line segments on View screen”
(Issue-I 564) 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-I 468)
[gui/fix] Fast adjust screen controls don’t show input focus,
since 8.0.6-TEST7 (Issue-I 559)
[gui/fix] Particle trajectory color corruption.
Affected >= 8.0.6-TEST38 (Issue-I 563)
[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-I 223)
[gui/fix] Command bar history corruption on repeated commands.
Affected >= 8.0.6-TEST7. (Issue-I 565)
[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-I 468)
8.1 Early access: Additions:
[refine] In 2D Poisson refine, always treat left/bottom boundaries as
pure Neumann boundaries (mirror planes). (Issue-I 372/Issue-I 482)
(Note: the same is not yet enabled for regular Laplace refines.)
[program] Programmatically draw 3D line segments on View screen
(useful for custom drawing and contouring - Issue-I 178) [*] (Issue-I 564)
[example] FAIMS adds contourlib.lua for contouring flow fields.
[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-I 496 [*]
8.0.6-TEST4 [20100105] r3006
Early access:
[batch,defect] Batch mode exited in fly batch mode command under
early access. Issue-I 539 [*]
[batch,pa,defect]
Basic PAs loaded in batch mode may display a not refined flag
(!) in the PA list. Issue-I 540 [*]
8.0.6-TEST3 [20100104] r3001
[pa,defect] “expected electrode point for adjustable electrode” on
exiting Modify with .PA0 file. Issue-I 537
[batch,enhancement] allow some SIMION options (e.g. --noprompt)
to simion.command. Issue-I 538. [*]
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-I 535 [*]
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 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-I 531 [*]
[gui,enhancement] Improved log window behavior on clicking. Issue-I 532.
[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-I 299.
[prog,defect-7.0] Fixed: Random number generator seed() function freezes
when not preceded by rand(). Issue-I 514. [r27]
[gui,defect] Fixed: Conditional crash on entering View. Issue-I 517.
[*][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-I 363.
[core,defect] Fixed: “Illegal Fastadj Potential Count” error after fast
adjust failure. Issue-I 508 [*][r25]
[prog,defect] Fixed: tostring(simion.VERSION(s)) now works properly.
[r27]. Updates Issue-I 398.
[prog,defect] Fixed: missing errno include for pa.cpp in SL Libraries.
Issue-I 516 [*]
[config,defect] Crash if failure to write to FILES.GUI directory
Issue-I 218 [r26]
Internal: Fairly extensive code refactoring (lint)–should not cause any
external changes. (see Issue-I 527)
8.1 Early Access
[beta,core] Allow workbench size to be non-integral or smaller than 1
mm^3. Issue-I 513 [r26][*]
[examples,added] PA instance jumping trick example added
(“nonideal_grid/pa_jump”). [*] Issue-I 515
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-I 221.2 [*][2008-07-24]
[prog,defect-8.0] Upgrade Lua from 5.1.3 to 5.1.4
(bug fix only release). Issue-I 404 [r1]
[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-I 422
[r20]
[beta,prog] New ion_effective_charge reserved variable.
Issue-I 452.3 [r20]
[beta,example] New induced current/charge example
(“electrostatic_induction”). Issue-I 499 [r20][*]
8.0.5-TEST19 [20080430]
[prog,enhance] simion.VERSION now contains a version object and
permits comparisons. Issue-I 398 [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-I 496 [r19]
8.0.5-TEST18 [20080426]
[prog,defect-8.0] Upgrade luacom to CVS version (2008-04-18) Issue-I 495
[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]
[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-I 220.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-I 492 [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-I 452.2
[r15][*]
8.0.5-TEST14 [20080327]
[prog,enhance] simion.import() now accepts parameters to forward to
loaded function. Issue-I 444.2 [r14]
8.0.5-TEST13 [20080327]
8.1 Early Access
[beta,core] Refine extended to solve the Poisson Equation Issue-I 482
[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 ifPIC_enable==0thenreturnend):
ifion_time_of_flight<=ion_time_of_birththenreturnend.
[beta,prog-pa] pa:clear() sets all points to 0V nonelectrodes.
Issue-I 422 [r13]
[beta,prog-pa] pa:potential_add(xi,yi,zi,val) adds potential
val to potential at point (xi,yi,zi). Issue-I 422 [r12]
[beta,prog-pa] pa:copy(pasrc) copies all points from pasrc to pa
assuming array size identical. Issue-I 422 [r12]
8.0.5-TEST12 [20080324]
[prog,enhance] Improved detection of undefined variables
(checkglobals) Issue-I 490 [r12]
[gui,enhance] Add more underscores to controls for shortcut access
keys. Issue-I 90 [r11][r12][*]
[gui,enhance] Automatically toggle out of PE View when clicking
XY/ZY/XZ/3DIso/Load/Save buttons. Issue-I 270.2 [r12]
[gui,defect-7.0] Drawing flags in PAs list get misordered when
L+/L-/Add/Del used. Issue-I 344.2 [r12]
[example,new] New field lines/vector plotting example (‘contour’)
Issue-I 178.2 [r12][*]
[example,new] New example: Applies user program to record data on
multiple non-orthogonal test planes (‘test_plane’)
Issue-I 221.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-I 370.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-I 335
[r10][*]
[prog,defect-8.0] ion_instance no longer accessible from top-level of
workbench program. Issue-I 487 [r10] (minor)
[prog,defect-8.0] “Data Recording file not closed if Lua workbench
program fails at top-level.” Issue-I 488 [r10][*]
Save workbench Lua program when saving IOB under new
name. Issue-I 317.2 [r9][*]
[gui,change] Increased command-bar history size to 50. Issue-I 397.2 [r9]
[gui,change] Lua commands with errors now saved in the history
buffer of the command bar. Issue-I 397.3 [*][r9]
[gui,defect-8.0] Prevent current directory changing when loading
.con/.rec/.fly/.fly2/.ion/.pa files outside the current
directory. Issue-I 220.2 [r9][*]
8.1 Early Access
[beta,prog-pa] pa:refine if long running now updates screen and
responds to abort requests. Issue-I 422.2 [r9]
8.0.5-TEST8 [20080311]
[prog,defect-8.0] ion_charge and ion_cwf variables broken in PRG
Issue-I 485 [r8][*] (sim_trajectory_quality also
now supported in PRG – Issue-I 370.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-I 483 [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-I 172.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-I 478 [r4][*]
8.0.5-TEST3 [20080128]
[core,defect-7.0] Precision ignored if width is zero in data recording.
Issue-I 477 [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-I 468 [r1][*]
[core,defect-8.0] Fail saving an array larger than 64MB on a network share.
Issue-I 467 [r1]
[prog,defect-8.0] Upgrade Lua from 5.1.2 to 5.1.3 (bug fix only release).
Issue-I 404 [r1]
[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] Issue-I 335
Internal (should not have visible effects):
Refactoring trajectory code [r10]
[rX] is revision 8.0.3-TESTX.
8.0.3-20070526
SIMION 8.0 Program Enhancements
Issue-I 172 - 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-I 228 - Allow Log window data to be copied to the clipboard. [r7]
Issue-I 364 - Flash taskbar icon and sound upon completion of
long-running function. [r6][*]
Issue-I 391 - Display full GEM and PRG errors immediately
(without requiring user to enter debugger)
Issue-I 392 - Display full Lua stack traceback on error.
Issue-I 370 - 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). [*]
See “Libraries API Reference” in “Help|Browse Documentation” for details.
SL Tools/SL Libraries Enhancements:
Issue-I 363 - 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-I 401 - Order of magnitude increased PA load/save performance
in SL Tools and SL Libraries for C++
Issue-I 258 - Log window cleared after running print() commands in
top-level of Lua program. [r7]
Issue-I 396 - Programs still compiled if “Use programs” disabled. [r7]
Issue-I 89 - “enable data recording” on Data Recording screen not
reset on dialog cancel.
SIMION 7.0 Defects
Issue-I 115 - 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-I 390 - Buffer overflow on certain bad GEM syntax (minor) [r6]
Also patched in 7.0.5.
[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-I 351 - In main screen, non-refined PAs are now marked with “!”.
Issue-I 341 - Simplified auto-refining of PAs during IOB loading. [!]
Issue-I 343 - Warn on attempt to modify/refine/view wrong PA type.
Issue-I 350 - Remove warning on entering View with PA file not on disk.
Issue-I 336 - Display error on attempt to run workbench Lua program
outside workbench (improved) [*]
Issue-I 293 - New “Update PA” on GEM file screen to erase and insert in
one step.
Issue-I 359 - 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-I 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-I 353 - Change in behavior of adjustable variable assignments in
Lua affecting current v.s. default values.
Defects in 8.0
Programming/Batch Mode
Issue-I 357 - 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-I 358 - fly batch mode command not raising Lua error on failure.
Issue-I 355 - fastadj command in batch mode program may cause
subsequent command to terminate when run in GUI mode. [*]
Issue-I 357 - run_stop() now disables window frame (prevents other
user actions) and properly functions in non-GUI batch mode.
Issue-I 348 - View Variables tab list cut off and not updated in display.[*]
Relative IOB path path now accepted in fly batch mode command
(see Issue-I 220)
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 (Mac OS). [*]
[!] important or particularly significant
8.0.1-2006-12-26
Enhancements
Issue-I 299 - New --noprompt command-line option to disable
prompting in batch mode. [*]
Issue-I 229 - Allow log window to open in separate larger window. [*]
Issue-I 335 - Improve Lua output handling (e.g. print()
function output to log window).
Issue-I 336 - 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-I 333 - Zoom was reset after fast adjust. [*]
new coordinates attribute on particles { }. coordinate system is
now preserved on save/load.
Update on Issue-I 212 - 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 Issue-I 263 - Disable sounds by default in batch mode operation.
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
c 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:
Fixed Issue-I 222 - 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
particle definitions screen to try it out.
Detects in 7.0:
Issue-I 212 - Minor changes to ION file parsing for improved robustness
(patch not made to 7.0)
8.0-BETA11f-20060904
New features
Issue-I 209 - [+-] keys zoom in/out in on Modify OpenGL view.
Issue-I 210 - Isometric view option on Modify OpenGL view.
Defects in ealier 7.1/8.0 betas:
Fixed Issue-I 207 - Key shortcuts bypass field validation (killfocus).
Fixed Issue-I 208 - User preferences (FILES.GUI) ignored in batch mode.
Partially fixed Issue-I 211 - Verbosity of batch mode output.
8.0-BETA11e-20060901
Defects in earlier 7.1/8.0 betas:
Fixed Issue-I 205 - “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-I 206 -
“highest_parent_object - no highest_parent found error”
Fixed Issue-I 203 - 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-I 471 - 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.
This release provides initial batch mode (command-line) capabilities
(Issue-I 130), and properly supports up to almost 200 point PAs via the
--reserved-memory command-line option. It 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 SIMION1000000#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-I 200 - Secondary keys do not work on gui window.
Fixed Issue-I 202 - Extra .PA extension added when saving .PA#
files under Win2K
Defects from 7.0
Fixed Issue-I 201 - GEM file includes don’t properly
resolve paths in other directories. (not patched in 7.0)
Implementation:
upgrade GUI library
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-I 470.
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-I 185)
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-I 98 - On fast adjust screen, eliminate
“you didn’t respond to any potential changes” warning.
Defects also incorporated into 7.0:
Fixed Issue-I 168 - In SIMION data recording, electric potential
(E) records magnetic potential whenever a magnetic PA of 2D
planar symmetry is active.
http://simion.com/discuss/viewtopic?t=341
Also patched in 7.0.1-2006-04-10.
Resolved Issue-I 170 - SIMION may freeze on startup with the
message “Initializing Random Number Generator”.
Also patched in 7.0.3-2006-04-25.
Resolved Issue-I 171 - SIMION may crash when calling the seed
function in a PRG user program.
Also patched in 7.0.3-2006-04-25.
Resolved Issue-I 191 - Long file names (greater than 8+3=11 characters)
may cause error messages.
Also patched in 7.0.4.
Resolved Issue-I 192 - 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 Issue-I 193 - Only 12 characters of filenames are displayed in PA
and PA instance lists
Fixed Issue-I 195 - On adding a new PA instance to the IOB, angular info
(Rotation, Elevation & Azimuth) not read into prompt box.
Fixed Issue-I 194 - Memo information not displayed.
Fixed Issue-I 143 - User program enable/disable switch missing in View.
Fixed Issue-I 11 - Time marker controls were temporarily removed in View screen.
Fixed Issue-I 162 - “mm” label not display on ion definition screen.
Fixed Issue-I 167 - Sounds not suppressed when the SIMION window is deactivatived.
Fixed Issue-I 137 - In fast adjust screen, focus not moved to panel on electrode selected.
Fixed Issue-I 199 - On first opening file dialog box, file name is string of spaces.
7.1-BETA7-2006-02-04
This release resolves 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 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 Max Electrodes for full details).
(I127)
GEM screen redesigned.
Some Modify screen layout changes, e.g. point type.
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-I 473)
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 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.
2-16 - Replace mention of the c:\ProgramFiles\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
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:\ProgramFiles .
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://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-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-I 414
2-13 - Note that 8.0.3 allows multiple fast scaling solutions,
which are useful for ion funnels and resistor chains. See
Issue-I 172.
2-20 - Add: “(and possibly also an exclamation ! symbol to indicate unrefined)”
6-10 - As of 8.0.3, multiple sets of fast scalable electrodes can be
defined: see Issue-I 172.
9-8 - Mention collision_sds example.
A - Updated for 8.0.4 system requirements – Issue-I 474.
B-1 - Link to Linux and Mac OS X instructions:
Linux: Issue-I 469; Mac OS X: Issue-I 463.
B-1 - Add comment: Allocating arrays greater than
approximately 1.3 GB may require starting SIMION with the
–reserved-memory program option (see Command Line Appendix and
Issue-I 163). 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:\ProgramFiles\SIMION-8.0\simion.exe"--reserved-memory1.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.
K-15 - Note that defining custom distributions is explained in
Issue-I 407
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.
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-I 422)
and SIMION Libraries (Issue-I 400).
L-33 - Add missing simion.import doc.
L-35 - Add new simion.VERSION variable - Issue-I 398
L-35 - Add new simion.sleep function - Issue-I 462
L-35 - Add new simion.status function - Issue-I 406”
L-35 - 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-I 458
M-3 - Add new gem2pa command line options - Issue-I 424
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 neither 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-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-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.
Any comments on this web page? (will be sent to IMI Adaptas SIMION Support)
[Optional] Your name:
email:
phone:
You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.