SIMION®
The field and particle trajectory simulator
Industry standard charged particle optics software
Refine your design: model > simulate > view > analyze > program > optimize it.
About | Documentation | Community/Support | Downloads | Ordering

SIMION 8.0 Issues/Bugs/Enhancements

Filter issues by query:
Issue I430 [defect,70,med-high,resolved]
  Longest time-step calculation incorrectly handles mm/gu scale factor.

  Prior to SIMION 8.0.4-TEST11, when a particle flew in PA instance
  with a scale factor different from 1 mm/gu, the time-step sizes were
  slightly different than as described in the manual (at least under
  non-zero accelerations).  As of SIMION 8.0.4-TEST11, SIMION was
  changed to be consistent with the manual.

  In Section H.21 "Adjustable Time Steps" of the SIMION 8.0 manual (or
  E-13 of the SIMION 7.0 manual), it says that

    t_v = a/dv and t_a = sqrt(2 * d / a)

  where d is the mm per grid unit scaling factor of the array (which
  by default is 1).  The manual is correct here, but the code was
  instead doing t_a = sqrt(2 / a), which omitted the d.  When d=1
  mm/gu (typical case), there is no difference between the two, but
  other values of d can cause the final time step size to deviate by
  a small factor of a few (typically << 10).  This problem was in fact
  first observed by emma1281, 2007-07-27 (
  http://www.simion.com/discuss/viewtopic?p=1780 ) in that the number
  of time steps was curiously dependent upon the mm/gu scaling factor.
  In theory, trajectories in electrostatic systems are completely
  independent of the scaling of the system, so it would seem
  reasonable even for the number of time-steps to be invariant under
  system scaling.

  Normally, this error does not cause a problem because the user
  typically does not require particular time step sizes: With properly
  set time-step sizes, the trajectories should be near identical if
  the time-step sizes increase or decrease an order of magnitude.
  SIMION is further allowed to modify time-step sizes when it seems
  useful.  You can attempt to force particular time step sizes with a
  tstep_adjust segment in a user program as below, though even this is
  only a "requested" time-step size:

    simion.workbench_program()
    function segment.tstep_adjust()
      -- force approx. one grid unit step
      ion_time_step = ion_mm_per_grid_unit / ion_vx_mm
    end

  The following steps reproduce this error in SIMION versions prior to
  8.0.4-TEST11:

    (1) In the "drag" example, add these lines to drag.lua to count the number
    of time steps:

      local count = 0
      function segment.other_actions()
        count = count + 1
        print("count=",count)
      end

    (2) Run the simulation with trajectory quality (TQual in PAs tab) set to
    0 and at 1, 100, and 0.01 mm/gu scaling factors (in the PAs tabs).
    The counts displayed in the Log window are

      mm/gu   count
      -----   -----
      0.01    1347
      0       1557
      100     3687

    (In SIMION 8.0.4-TEST11, the counts are now identical.)

  Affects 7.0 and 8.0.  Resolved in 8.0.4-TEST11

Any comments on this web page? (will be sent to IMI Adaptas SIMION Support)
[Optional] Your name: email: phone: