Particle types (see particles/mod_particle_types.f90)

The table below shows the different particle types and their variables. All particles have the variables corresponding to particle base with additional variable based on their type.

type variables units comment
particle base x(3) [m,m,rad] particle position in (R,Z, phi) space
  st(2) [real*8] local finite element coordinates
  weight [real*4] weight of particle , total number of "real" particles = sum(weights)
  i_elm [integer] element number containing this particle
  i_life [integer] measures how often the particle has been reused"
  t_birth [s] measures the birth time of the particle
_kinetic v(3) [m/s] velocity in S.I. units, in directions (R,Z,phi)
  q [e] charge
_kinetic_leapfrog v(3) [m/s] velocity at t = t(n-1/2) , in directions (R,Z,phi)
  q [e] charge
_kinetic_relativistic p(3) [AMU m/s] momentum [X,Y,Z]
  q [e] charge
  q [e] charge
_gc E [eV] kinetic energy
  mu [eV] magnetic moment (sign determines direction of the parallel velocity)
  q [e] charge
_gc_relativistic p(2) [AMU m/s, AMU m2/(T*s2)] 1: parallel momentum, 2: magnetic moment
  q [e] charge

Particle type conversion:

(see particles/pushers/mod_boris.f90 and particles/pushers/mod_kinetic_relativistic.f90)

  • kinetic_leapfrog_to_gc(node_list, element_list, particle_in, E, B, mass, dt)
  • gc_to_kinetic_leapfrog(particle_in, node_list, element_list, chi, E, B, mass, dt)
  • kinetic_to_kinetic_leapfrog(particle_in, E, B, mass, dt)
  • kinetic_leapfrog_to_kinetic(particle_in, E, B, mass, dt)
  • kinetic_to_gc(node_list, element_list, particle_in, B, mass)
  • gc_to_kinetic(node_list, element_list, particle_in, chi, B, mass)
  • relativistic_kinetic_to_particle(node_list,element_list,particle_in, particle_out,mass,B)
  • relativistic_kinetic_to_relativistic_gc(node_list,element_list, particle_in,mass,B)
  • relativistic_kinetic_to_gc(node_list,element_list,particle_in,mass,B)
  • gc_to_relativistic_kinetic(node_list,element_list,particle_in,time,mass,chi,B)