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

Info: Time-Dependent Field

From SIMION

SIMION can handle low-frequency, time-dependent electric and magnetic fields.

The term "low-frequency" refers to frequencies that are low enough such that radiation effects are not significant (the quasi-static approximation to Maxwell's equations, in which time derivatives are omitted). Generally, for this to hold, the lengths of the electromagnetic waves (lambda = c / frequency, where c is the speed of light) should be much larger than the maximum length of your system. A number of the SIMION examples such as the quadrupole and ion trap run at frequencies on in the megahertz range. Simulating higher-frequency (radiation) effects requires different software using different methods.

Usually, fields in SIMION are generated by applying voltages to electrodes. A user program (e.g. PRG or SL file) may change electrode voltages during the simulation so that the field becomes time-dependent. A user program can apply any waveform desired, including sinusoidal or stepped. Regular PA files allow all voltages to be proportionately scaled by the same factor. To independently (non-proportionately) adjust potentials on individual electrodes, you must use a fast-adjustable potential array (PA# file), which makes use of the principle of superposition in an efficient way.

A number of the SIMION examples make use of time-dependent fields in this way, e.g. buncher lens (stepped voltage), ion-trap (oscillating), quadrupole (oscillating), and ICR (oscillating). See SIMION examples (http://www.simion.com/examples.html) and the SL Toolkit examples (http://www.simion.com/sl/examples.html).

The following are three identical simple SIMION user programs that apply a sinusoidal voltage to electrode #1 in a fast-adjust potential array.

-- Lua example (SIMION 8 required)
simion.workbench_program()
adjustable ac_voltage = 500  -- AC voltage
adjustable dc_voltage = 10   -- DC voltage
adjustable omega = 100       -- angular frequency
function segment.fast_adjust()
   adj_elect01 = ac_voltage * sin(omega * ion_time_of_flight) + dc_voltage
end
; PRG example (SIMION 7 compatible)
DEFA ac_voltage 500  ; AC voltage
DEFA dc_voltage 10   ; DC voltage
DEFA omega 100       ; angular frequency
SEG fast_adjust
  RCL omega RCL ion_time_of_flight * SIN RCL ac_voltage * RCL dc_voltage +
  STO adj_elect01
# SL example (SIMION 7+SL compatible)
adjustable ac_voltage = 500  # AC voltage
adjustable dc_voltage = 10   # DC voltage
adjustable omega = 100       # angular frequency
sub fast_adjust
   adj_elect01 = ac_voltage * sin(omega * ion_time_of_flight) + dc_voltage
endsub

Some example code for generating an arbitrary stepped or segmented voltage profile is given in Applying a non-repeating segmented waveform potential (http://www.simion.com/info/User_Programming#Applying_a_non-repeating_segmented_waveform_potential).

Another method of generating fields is by setting the field vectors directly via a user program (efield_adjust and mfield_adjust segments). These fields can be static or time-dependent. This method is typically used if an analytical expression is known for the field or if the field is defined by an external data file.

When oscillating fields, make sure that your trajectory time-steps are small enough so that your particles "see" the oscillations. There should be at least a few time-steps per field oscillation.

For full details on time-dependent fields, see the SIMION manual, specifically the sections on fast-adjustable PA# files and user programming appendix concerning fast_adjust, efield_adjust, and mfield_adjust segments. See also the examples mentioned above.

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.