SIMION® Industry standard charged particle optics simulation software.
About | Documentation | Community/Support | Downloads | Ordering

Calculation Time

SIMION calculation time mainly involves the time to calculate fields and trajectories. Typically the fields take much longer to calculate (refine) unless, for example, if you’re simulating millions of trajectories in a statistical experiment.

Field Calculation Time

Field calculation time (SIMION Refine) depends on a number of factors:

  1. Number of grid points.
  2. Speed and quantity of physical RAM.
  3. Number of “fast adjustable” electrodes (if using PA# files).
  4. Nature and complexity of the field.
  5. Convergence limit (specified in the SIMION Refine screen).
  6. Other refine parameters (specified in the SIMOIN Refine screen).

In more detail:

  1. Number of grid points. The calculation time is roughly linear with the number of grid points used ‘’provided’’ the PA can fit entirely in physical RAM (see point #2). SIMION uses a fairly complex implementation to achieve this linear scaling. A “large” array (e.g. ~50 million points) may take some fraction or multiple of an hour depending on other conditions. Smaller arrays can take minutes or seconds.
  2. Speed and quantity of physical RAM. As noted, #1 is only true if you have sufficient free physical RAM to hold your entire PA, otherwise calculation likely will be ‘’much’’ slower (due to virtual, disk, memory usage), in which case you should consider a RAM upgrade or model your simulation differently. See RAM and Memory. The speed of RAM (how fast you computer can access the RAM) is also important, and that may be improved, for example, by using a moderately high-end computer with a fast memory bus.
  3. Number of “fast adjustable” electrodes (if using PA# files). The initial calculation time is very roughly linear with the number of fast adjustable electrodes used. Each fast adjustable electrode actually uses a separate Refine calculation. So, don’t use more fast adjustable electrodes than you need to. For example, if two electrodes always have the same voltage, you can express both with the same fast adjustable electrode. Also consider using fast scaling electrodes (electrodes that are not fast adjustable) for at least some of your electrodes. The advantage of fast adjustable electrodes is that you can change their voltage without refining the PA again; this process called “fast adjusting” is relatively quite quick and allows things like RF voltage oscillations on electrodes to be very practical.
  4. Nature and complexity of the field. If the field is quite uniform or smooth, the calculation may proceed quickly. More complex or contorted fields can take much longer. This is due to the nature of the SIMION Refine process, which is aggressive in some cases but less aggressive in others. It’s not a hard science.
  5. Convergence limit and other refine parameters. The convergence limit (specified in potential, e.g. V) determines when the results are sufficiently precise to stop the calculation. If the potentials don’t change more than this limit in an iteration, then the calculation is ended. Therefore this parameter greatly affects the calculation time. The default convergence limit is 5.0E-3 V but can be specified down to 1.0E-7 V. Only refine down to the limit you may need, otherwise it’s just a waste of time! For example, try the default convergence limit, then maybe decrease it by a factor of 10 or 100 and see if this affects your results outside an acceptable margin of error–if not, there’s no need to decrease the limit any further in future similar calculations, and you might even be able to increase it. Also, you might increase this limit during initial calculations to get a rough estimate and then decrease it when doing the final calculations.
  6. Other refine parameters. This includes the max over-relaxation factor, historical memory factor, and skipped point refining. Changes to these parameters may decrease the calculation time or may significantly increase it, so it’s recommended that you don’t change these unless you know what you’re doing (see SIMION manual). Generally, use the convergence limit instead.

Trajectory Calculation Time

Fields calculation time (SIMION Refine) mainly depend on these factors:

  1. The size of the time-steps greatly affects the calculation time. The calculation time would be roughly proportional to the number of time-steps (or inversely proportional to their size). Time-step size is mainly controlled by the trajectory quality factor (default is +3). It is the purple box in the PAs tab in View in SIMION 7.0. Time-step size can also be affected as well (typically reduced) by user programming (e.g. tstep_adjust segment), time markers, and data recording. Note that if you’re doing oscillating voltages (RF), you’ll likely want the time-step size to be no larger than some fraction of the oscillation period (See Time-Dependent Field).
  2. Viewing and Retaining of trajectories slows it down because it writes the trajectories to the screen and to disk respectively. If you’re simulating a large number of trajectories, you’ll likely want to disable these options. These are the “V” and “R” buttons on the PAs tab in View in SIMION 7.0. In particular, you can disable retainment of ion trajectories by disabling the “R” button. The traj***.tmp file will no longer be created, and you can use the data recording or user programming features to record only the data you need. Further, disable the “V” button to not display ion trajectories on the screen. This speeds up long calculations that need not be very interactive. The fact the size of the trj***.tmp file is an additional concern because some file systems, OSs, and programming libraries have a 4GB file size limit. Viewing and retaining of trajectories can also be controlled via user programming (trajectory_quality_control variable – p. I-22 SIMION 7.0 manual).
  3. User programs can slow down the calculation, particularly if they use segments that are called frequently, one or more times per time-step, such as tstep_adjust, fast_adjust, efield_adjust, mfield_adjust, accel_adjust, and other_actions. Consider moving computationally intensive code out of these segments. For example, if possible use init_p_values instead of fast_adjust or initialize variables in initialize. A conditional that gets executed only once can also help:
-- test.lua
simion.workbench_program()
local first = 1

function segment.other_actions()
  if first == 1 then
    -- ... add really expensive code here ...
    -- ... which will be called only once ...
    first = 0
  end
end

Display Performance

Display performance can also be a factor (e.g. see “Viewing and Retaining of trajectories” above). In particular for a large geometry you might keep the display quality factor low, e.g. near 3 and no higher than 7-8. rgenius et al

A good 3D graphics card can help with the 3D OpenGL viewing in SL Tools and SIMION 8.0. SIMION 7.0, however, does not use OpenGL.

Performance Improvements between SIMION 7 and 8

Initial measurements showed SIMION 8.0beta having refine and fly times reduced at least ~20-40% from 7.0. A more recent report by Theo was 2.5x faster fly times. This improvement was largely due to new compiler technology/optimizations and improved display optimizations. More exact benchmarks still need to be done, but SIMION 8 is markedly faster.

Viewing PAs (e.g. rotating/zooming) can be significantly faster in SIMION 8.0 Modify Screen “3D” view (or SL Tools 1.1.0) due to the optimized OpenGL viewing, especially if you have a reasonable 3D graphics card.

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