As you saw from our demonstration in class, ES1 is a fun little code that is a great way to develop insight into the behaviour of plasmas and the properties of the Vlasov equation, including surprising nonlinear results. Note that it is tracking individual particles (typically several thousand) in phase space. I.e., it is effectively solving a Klimontovich-Dupree Eq., which in the limit of a very large number of particles should converge to the equivalent problem of solving the Vlasov Eq. for a smooth f(x,v,t).
How to run the ES1 code: I've installed the code on the Trieste Linux cluster and uses X-windows for graphics (there is also a version available for Micro$oft Windows on PC's). Running the code should be as simple as: (1) logging in on to a Trieste Linux workstation, (2) copy some sample ES1 input files to your directory:
alias xes1 /afs/ictp/public/h/hammettg/xes1/xes1.i386or if you are using the bash shell, use the command:
alias xes1=/afs/ictp/public/h/hammettg/xes1/xes1.i386and executing the code on one of the input files:
Notes on installing XES1
on a Linux Computer.
Old Windows Version of some Berkeley codes (don't know if they work now).
Possible Windows Version of ES1 , or WIndows Version of other Berkeley codes (don't know if they work now).
2stream: Simulates the 2-Stream instability described in Sec. 23.4 of Goldston and Rutherford. Shows the linear instability phase, the nonlinear saturation, the energy transfer from particles to the E-field (and much of it back to the particles eventually), and a long-lived phase-space "hole" representing some kind of nonlinear vortex solution. I presume that the length of this hole is sufficiently short that the 2-stream instability criterion k*v0 < omega_p (from G&R Sec. 23.4) can't be satisfied.
2stream4n: Confirms this hypothesis, by increasing the length of the box by a factor of 4. Initial conditions is only a small amount of random noiiise. Instabilities grow up out of noise,and the k=4 mode is found to be the fastest growing.
2stream4: 2-stream instability, initially perturb only the k=4 mode, produces 4 very symmetric vortices that last a long time, but eventually merge into a single vortex.
2streamb.inp like 2stream but with higher order interpolation/weighting.
2streamk.inp with 32k particles!
w2stream.inp: A weak beam (n_beam /n_cold = 0.2) variation, as described in Problem 23.2 of Goldston and Rutherford (one of your homework problems). No obvious long-lived nonlinear vortex hole (perhaps there is one in the right moving frame of reference?), but shows that the weak beam is spread out in velocity space without affecting the non-resonant particles at v=0 very much.
w2stream_shift.inp: Like w2stream, but with the "beam" shifted to v=0 (and the high density background shifted to v=-0.8). I.e., in the frame of reference moving with the resonant particles so that it is a little easier to see their behavior.
Many other interesting input files are in the xes/inp subdirectory distributed with the ES1 source files, (the full directory at ictp is /afs/ictp/public/h/hammettg/xes1/inp). In particular, landau.inp and landaup.inp illustrate Landau damping (for a finite time, until trapping sets in and the distribution function flattens), with the second input file again shifting to the frame of reference of the resonant particles (see the comments at the beginning of landaup.inp).
nsp the number of "species", or velocity group
l the length of the simulation in space x (default is 2*pi, in their normalized units).
n the number of particles in each species
v0 the average velocity of each species
v2 the thermal velocity spread around v0 of each species.
qm = q/m, the charge to mass ratio
wp = omega_p for this species, i.e., a measure of the physical density (each simulation particle can represent many real particles).
x1 the amplitude of the initial perturbation.
For more details, see the ES1 online manual or the book (which discusses a lot of additional physics and numerical issues):