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