When radiation reaction is weak (the radiation power is much smaller than the energy gain power), the motion of charged particles is governed by the Newton-Lorentz equation:
dtdp=mq(E+β×B),
dtdx=γp
where p≡γmv, x, q, m, γ, v, and β≡v/c are the momentum, position, charge, mass, Lorentz factor, velocity, and normalized velocity of the particle, respectively. These coupled equations are discretized using a leapfrog algorithm as
Δtpn+1/2−pn−1/2=mq(En+γnpn×Bn),
Δtxn+1−xn=vn+1/2,
and solved using the standard Boris rotation:
pn−1/2=p−−2mqΔtEn,
pn+1/2=p++2mqΔtEn,
p′=p−+p−×t,
p+=p−+p′×s,
t=2mγnqΔtBn,
s=1+t22t,
where γn=1+p2. The update in momentum and position are asynchronized by half a time step, i.e., a leapfrog algorithm is used here. This leapfrog algorithm ensures the self-consistency of the momentum and position evolution.