跳到主要内容

Pusher information

Description

Block [pusherInfo] is used to choose which kind of particle pusher and current depositor should be used.

Options

Currently, the implemented particle pusher include:

  • Lorentz equation
    • Boris (Explicit) : useBoris
    • Implicit: use_implicit
    • Vay (Explicit): useVay
  • Landau-Lifshitz equation (classical radiation corrected for smaller χe1.0\chi_e \ll 1.0): useLandauLifshitzPush
  • Modified Landau-Lifshitz equation (quantum radiation corrected for larger χe1.0\chi_e \simeq 1.0): useModifiedLLPush

Current depositor can use the normal J=nqv\bm{J} = n q \bm{v} or via the charge conservation law (tρ+J=0\partial_t \rho + \nabla \cdot \bm{J} = 0):

  • use_charge_conservation:
    • true: charge conservation
    • false: nqv method
  • noCurrent: this is for the case of single particle simulation
ParameterValue TypeDescription
useLandauLifshitzPushBooleanA boolean value that determines whether or not to use the Landau-Lifshitz pusher algorithm.
useModifiedLLPushBooleanA boolean value that determines whether or not to use the modified Landau-Lifshitz pusher algorithm.
use_charge_conservationBooleanA boolean value that determines whether or not to conserve charge during the pusher algorithm.
use_implicitBooleanA boolean value that determines whether or not to use an implicit pusher algorithm.
noCurrentBooleanA boolean value that determines whether or not to include current in the pusher algorithm.
useBorisBooleanA boolean value that determines whether or not to use the Boris pusher algorithm.
useVayBooleanA boolean value that determines whether or not to use the Vay pusher algorithm.
tStartFloatA float value that specifies the time at which the pusher algorithm starts.
template
[pusherInfo]
useLandauLifshitzPush = false
useModifiedLLPush = false
use_charge_conservation = true
use_implicit = false
noCurrent = false
useBoris = true
useVay = false
tStart = 0.0