Lorentznotes
Lorentznotes
Just like we did for the generalized Ohm’s law, we can scale the Lorentz
force law to see what the “natural scaling” of the equations are. A problem
with simulations is that computers work better with numbers like 10 and
0.1. Computers don’t like dealing with big numbers like our particle density
(1021 in MKS) or ion speed (105 in MKS) at the same time as small numbers
like the proton mass (10−27 in MKS) and proton charge (10−19 in MKS).
Dimensionalizing an equation also gives a very good intuitive sense of what
the equation means (we’ll see that here). It also makes it easier to compare
different systems (say SSX with ion orbits of cm and the solar wind with ion
orbits of km).
First, here’s the Lorentz force equation for charged particle orbits in arbi-
trary electric and magnetic fields. We will eventually want to explicitly pull
out the charge-to-mass dependence:
dv
m = q [E + v × B]
dt
Since this is an MKS formula, every term is a force with units of newtons.
The first step is to write the equation in dimensionless form. This is really
important for doing numerical modeling.
Instead of MKS units, let’s consider units more appropriate for SSX.
Instead of seconds, we’ll use a more typical time scale for the problem: τ =
10−6 s or something (we’ll see a natural scale emerge later). We’ll re-write
every time t → τ t̃ where t was a time measured in seconds, t̃ is a dimensionless
variable (that hopefully runs from 0.1 to 10 or something, and τ = 10−6 s.
This means that if t̃ = 1 we’re talking about a time step of a microsecond.
We do that for all the dynamical variables:
t → τ t̃
v → vth,i ṽ
B → B0 B̃
E → E0 Ẽ = vth,i B0 Ẽ
m → M mp m̃
1
q → Zeq̃
So for example, if ṽ = 0.1 that means a velocity 1/10 the ion thermal
velocity where vth,i = 104 m/s for 1 eV protons and 105 m/s for 100 eV
protons. Similarly, B0 = 0.1T for us so E0 = 104 V /m is our natural electric
field unit. Note that to be completely general, I left m̃ and q̃ as variables
but by extracting the Z/M dependence, those dimensionless “variables” will
be fixed at unity. So let’s re-write the equation of motion:
d(vth,i ṽ) h i
M mp m̃ = Zeq̃ vth,i B0 Ẽ + vth,i ṽ × B0 B̃
d(τ t̃)
Note that there’s a factor of vth,i B0 on the RHS. I’m going to pull everything
to LHS to see what we have:
!
M mp vth,i 1 1 dṽ h i
m̃ = q̃ Ẽ + ṽ × B̃
τ Ze vth,i B0 dt̃
At this point, we have some choices. We could choose for our time scale the
time it takes a thermal ion to go across SSX. This would mean τ = `/vth,i
(about 10 µs for us). This would also mean introducing a new scale to our
equation (`) which is inelegant. We notice that there’s a factor of the proton
gyro-frequency ωci = eB0 /mp already in the pre-factor. If we choose for our
−1
time scale the proton gyro-period τ = ωci = mp /eB0 , then lots of things
cancel nicely and we get a nice final equation:
dv Z
m = q [E + v × B]
dt M
Dimensionless equation: Note that while this looks like the equation
I initially wrote down, its very different. First, I dropped the tildes but
each variable in there is dimensionless with a previously determined scaling.
Second, had I gone with τ = `/vth,i , there would have been an extra factor of
ρi /` floating around (inelegant). Third, as noted above, m and q are really
just fixed at unity and could be dropped. The dynamics of different ions is
in the Z/M term.
So how does this work? If we pick a 1 eV proton in a 0.1 T field (SSX
case), then an initial value of v = 1 corresponds to units of about 104 m/s.
A time of t = 1 corresponds to a proton orbit time in a 0.1 T field (about
1 µs). An electric field of E = 1 would correspond to E = vB0 = 103 V /m
(a bit high, so E = 0.1 is more realistic). Notice that this simulation would
2
also apply for a 1 Tesla field, except E = 1 would correspond to 104 V /m and
the time step would proportionally shorter since the gyro-frequency would
be 10 times higher. The E × B drift velocity would be the same in either
case vdrif t = E/B = 0.1 (ie 1/10 of the thermal speed) but the orbit would
be tighter and the acceleration dv/dt would be higher. The proton velocity
would be the same (a 1 eV proton has the same velocity regardless).
This is all worth checking with a test code. I think doing the problem in
Mathematica is a straightforward first step and easy to plot orbits, change
parameters, etc. As a check, you could turn off the electric field and you
should just get circular Larmor orbits in a constant B field. If v = B = 1,
then the orbit time should be unity (actually maybe 2π since ω = 2π/T ).
The orbit radius should be unity also since ρi = v/ωci . For a big run, we
might consider using a compiled particle pushing code in more realistic, 3D
SSX reconnection fields.
The goal will be to run a lot of particles in our 2D “Harris” configuration.
Magnetic field varies like tanh(x/δ)ŷ and electric field varies like sech2 (x/δ)ẑ.
You might want to provide for a constant offset electric field so you can start
particles off to the left and they’ll have a little drift into the central electric
field. The width of the reconnection electric field layer compared to the ion
orbit will matter. Since the scaling for sizes is the proton gyro-radius, δ = 1
corresponds to a width of a thermal proton orbit (less than 1 cm for 0.1 T and
1 eV). If the width is too narrow, the ions will zip through and not get much
energy. You’ll have to tinker but try δ = 1 − 5. I think to start, it would be
good to pick an initial constant energy (say 1 eV) and vary the initial phase.
If the magnetic field is in the ŷ direction, the orbits will be in the x − z plane,
so for v = 1 and Z/M = 1 (thermal proton) you might try 100 different initial
directions. The energy after passing through the central electric field should
be bigger than the initial. Once everything is working with protons, see if
there’s a difference with different Z/M. Try Z/M = 1/1, 1/4, 2/12, 3/40.