Field profile (exact, as given)
\(x_{0}\)=√(\(m_{i}\)/\(m_{e}\)), \(B_{0}\)=\(v_{A}\)\(x_{0}\), s=(x−\(x_{sh}\))/\(L_{sh}\)
\(b_{x}\)=\(B_{0}\)cosθ, \(b_{y}\)=\(B_{0}\)sinθ+0.5(1−tanh s)\(B_{0}\)(√(sin²θ+B1²−1)−sinθ), \(b_{z}\)=0
\(E_{z}\)=−\(v_{sh}\)\(B_{0}\)sinθ (\(E_{x}\)=\(E_{y}\)=0)
s>0: upstream · s<0: downstream (compressed)
Field-line velocity (SNF): v(s)=|\(v_{sh}\)|[0.375(1−tanh s)−1] → slower & denser downstream. HT frame: v(s)=|\(v_{sh}\)/cosθ|[0.375(1−tanh s)−1](x̂cosθ+ŷsinθ), E=0 by default
Integration
du/dt = (q/m)(E+v×B), u=γv — relativistic Boris pusher
B, E resampled at the particle's x every substep
Length → \(d_{i}\) = d·√(\(m_{i}\)/\(m_{e}\))
Time → t·\(\omega_{c}\), \(\omega_{c}\)=|\(q_{particle}\)|\(B_{0}\)/\(m_{particle}\)
\(v_{x0}\),\(v_{y0}\),\(v_{z0}\) in units of c