QITSim
Model theory / description
Ion trajectory simulation of an idealized quadrupole ion trap (QIT) considering space charge effects and hard sphere collisions with neutral background gas particles.
Field Definition
The electric field of the ion trap is defined by idealized, analytical equations. A quadrupole ion trap consists of two cap electrodes and a ring electrode, with hyperbolically inner surfaces which form an rotational symmetric quadrupolar field. The distance between the trap center and the cap electrodes is denoted as \(z_0\), the ring electrode radius \(r_0\).
Most commercial QITs have grounded end caps and apply DC and RF voltages to the ring electrode. In this case, the total electric field \(\Phi_{\text{total}}\), including non quadrupolar, higher field orders can be described by a series expansion [Eades1993]:
Given the ideal geometric relationship for an ideal quadrupole ion trap \(r_0^2 = 2 z_0^2\), the electric potential in the center of the trap \(\Phi_0\) is given by:
with \(U=\) DC potential on the cap electrodes, \(V=\) RF potential between ring and caps, \(\Omega=\) angular frequency of the RF potential, \(t=\) time.
The linear electric potential between the caps is given by:
with the Position of the ion \(z\) in \(z\)-Direction.
The quadrupolar potential is given by:
with the Position of the ion \(r\) in \(r\)-Direction.
Higher orders are given by:
Eades, D.M., Johnson, J. V, Yost, R.A.: Resonance in a quadrupole ion trap. J. Am. Soc. Mass Spectrom. 4, 917–929 (1993).
FT detection
There are different detection modes in quadrupole ion traps. Most commercial instruments eject the trapped ions by an resonant excitation with an additional bipolar RF potential on the cap electrodes and ramping the trap RF potential.
Alternatively, the trapped ions can be excited with an excitation signal on the cap electrodes, which induces an oscillation of the ions around the trap center. This oscillation can be detected by the induced mirror charge on the cap electrodes. A mass spectrum can be calculated from the recorded mirror charge signal (“transient”) by a Fourier transformation.
The simulation app supports the simulation of this FT detection mode.
Simulation configuration description
integrator_modeKeyword:[verlet,parallel_verlet,full_sum_verlet,RK4,full_sum_RK4], optional: [FMM3D_verlet,ExaFMM_verlet]Selects the trajectory integrator
verlet: Serial (non parallelized) Velocity Verlet integrator with Barnes Hut Tree for space charge calculationparallel_verlet: Parallelized Velocity Verlet integrator with Barnes Hut Tree for space charge calculationfull_sum_verlet: Parallelized Velocity Verlet integrator with full sum between all particles for space charge calculationRK4: Parallelized Runge-Kutta 4 integrator with Barnes Hut Tree for space charge calculationfull_sum_RK4: Parallelized Runge-Kutta 4 integrator full sum between all particles for space charge calculation
With activated FMM libraries (Exa-FMM and or FMM3D) two FMM integrators are also available:
FMM3D_verlet: Velocity Verlet with Fast Multipole space charge calculation with FMM3D library
ExaFMM_verlet: Velocity Verlet with Fast Multipole space charge calculation with Exa-FMM library
sim_time_stepsintegerNumber of simulation time steps
trajectory_write_intervalintegerInterval, in time steps, between writes to the trajectory result file.
fft_write_intervalintegerInterval, in time steps, between samples for the FFT result file, which records a simulated transient for Fourier transformation.
fft_write_modeKeyword:[unresolved,mass_resolved]Selects the mode in which the FFT result file is written. The FFT result records the average velocity of the simulated particle ensemble in the
zdirection as an approximate induced mirror charge on the cap electrodes.unresolved: The FFT transient signal is calculated from the whole simulated particle ensemble. This is the signal which would be detectable in a physical experiment.mass_resolved: The FFT transient signal is recorded for every ionic species, with distinct molecular mass, separately. This allows to see individual transients for the species.
dtfloatTime step length in seconds
space_charge_factorfloatMultiplication factor for particle-particle interaction (space charge).
max_ion_radiusfloatMaximum radius a simulated particle can have before it is terminated in the simulation, in m.
Ion / simulated particle configuration
The particles to simulate can be defined in the simulation configuration file or a predefined particle ensemble can be used which is given as ion cloud file in CSV format.
Ion Cloud File
A predefined ion configuration can be specified by
ion_cloud_init_filefile pathPath to an ion cloud initialization / definition file
Ion definition in simulation configuration file
If no ion cloud file is used, the following configuration parameters define the ion ensemble to simulate:
n_ionsVector of integersNumber of ions of the ionic species defined by the the masses defined in
ion_masses.ion_massesVector of floatIon masses in amu.
ion_chargesVector of floatIon charges in elementary charges.
ion_collision_gas_diameters_angstromVector of floatEffective hard sphere collision diameters of the ionic species in angström.
ion_time_of_birth_range_sfloatTime range in which ions are generated, in seconds. The specified number of ions are generated uniformly in this time range.
ion_direction_vectorVector of three floatsInitial direction of motion of the ions. This vector is only a direction vector, the initial velocity of the defined ions is set by
ion_kinetic_energy_eV.ion_kinetic_energy_eVfloatStart energy of the ions in electronvolts, the initial ion velocity is in the direction of
ion_direction_vector.
Ion start configuration
The initial positions of the simulated ions can be a cubic box with faces parallel to the spatial axes or a rotatable and translatable cylinder. The position of the ion start zone is defined by ion_start_base_position_m. This partameter defines the center of a box start zone or the position of the center of the bottom face of a cylinder start zone.
ion_start_geometryKeyword:[box,cylinder]Sets the ion start geometry.
boxIon start zone is a boxThe ion start zone is a cubic box with faces parallel to the spatial axes, randomly filled with particles. It is defined by
ion_start_box_size_m: Vector of three floatsSize of the box in x, y, z direction
ion_start_base_position_m: Vector of three floatsPosition of the box center
cylinderIon start zone is a cylinderThe ion start zone is a rotatable and translatable cylinder. The cylinder is defined by
ion_start_radius_m: floatRadius of the cylinder in m.
ion_start_length_mfloatDistance from bottom face of the cylinder to the top face of the cylinder (cylinder length).
ion_start_cylinder_normal_vector: Vector of three floatsNormal vector of the bottom face of the cylinder, defining the rotation of the cylinder. The normal vector is also the directon of the axis of rotational symmetry of the cylinder (e.g. [1,0,0] means the cylinder axis is parallel to the x-axis).
ion_start_base_position_m: Vector of three floatsPosition of the center of the bottom face of the cylinder
Background gas configuration
background_gas_pressure_PafloatPressure of the neutral background as in Pa.
background_gas_temperature_KfloatTemperature of the background gas in K.
collision_gas_mass_amufloatMolecular mass of the particles of the background gas in amu.
collision_gas_diameter_angstromfloatEffective collision diameter of the particles of the background gas in angström.
Trap geometry configuration
geometry_modeKeyword:[default,scaled,variable]Selects trap geometry mode. The trap geometry defines the electric field in the trap and is defined by the ring electrode radius
r_0and the cap distancez_0.defaultDefault trap with \(r_0= 10 \text{mm}\)The default geometry is a typical small commerical QIT with \(r_0 = 10 \text{mm}\) and \(z_0 = 7 \text{mm}\) which is approximately (within 2%) fulfilling the ideal relationship \(r_0^2 = 2 z_0^2\).
scaledScaled default trapThe default trap geometry scaled by a factor
geometry_scale:geometry_scalefloatGeometric scaling factor for a scaled default trap.
variableVariable geometryFully variable geometry, \(r_0\) and \(z_0\) can be configured freely:
r_0: float\(r_0\) in meter.
z_0: float\(z_0\) in meter.
Trap field configuration
f_rffloatFrequency of the RF trapping field in Hz.
field_modeKeyword:[basic,higher_orders]Selects model for the RF trap field
basicPure quadrupolar trap fieldAn ideal quadrupolar field is assumed as RF trap field.
higher_ordersTrap field with higher field ordersBesides the quadrupolar field, hexapolar and octapolar field orders as defined in Field Definition are considered too. The relative amount of higher field orders is defined by:
field_higher_orders_coeffsVector of two floatsThe relative amount of hexapolar and octapolar field order in the RF trapping field.
rf_waveform_csv_fileFile pathFile path to an file with an sampled RF waveform. If this parameter is set, the waveform of the trap RF is read from the specified file, which contains one sample per simulation timestep. The waveform is looped if the file contains fewer samples than
sim_time_steps. If this parameter is not set, a \(\cos{\left(\omega t \right)}\) is used as trap field waveform.Note that
f_rfhas no effect if a sampled RF waveform is used. This file path is relative to the simulation run configuration file.
Trap field RF voltage
The RF trap field voltage can be static or can be ramped during the simulation.
A static trap field voltage is set by V_rf:
V_rffloatStatic ground to peak trap field amplitude in volt.
If V_rf_start and V_rf_end are set, the trap field voltage is ramped linearly during the simulation from V_rf_start to V_rf_end:
V_rf_startfloatGround to peak trap field amplitude in volt at the begin of the trap field voltage ramp.
V_rf_endfloatGround to peak trap field amplitude in volt at the end of the trap field voltage ramp.
Ion excitation field
The ion excitation field is applied bipolar on the cap electrodes. There are two modes of ion excitation:
Pulsed excitation with a rectangular excitation pulse of defined length and amplitude applied at the begin of the simulation run.
Excitation with a given sampled waveform read from a waveform file.
excite_waveform_csv_fileFile pathFile path to a file with a sampled excitation waveform. If this parameter is present, the excitation mode is “sampled waveform”.
The waveform file contains one sample per time step and is not looped, it is replayed only once at the begin of the simulation run. The sampled waveform is assumed to be normalized, the waveform data is multiplied with “excite_pulse_potential” to calculate the applied excitation potential.
This file path is relative to the simulation run configuration file.
excite_pulse_potentialfloatWhen in excitation pulse mode (
excite_waveform_csv_filenot present in simulation run configuration): Amplitude of rectangular excitation pulse in volt.When in sampled waveform excitation mode: Multiplication factor for sampled waveform data specified by
excite_waveform_csv_filein volt.
excite_pulse_lengthfloatLength of the rectangular excitation pulse in pulsed excitation mode in seconds.