Particle simulations of 1-D Vlasov Problems.



ES1 is a "particle-in-cell" simulation of the Vlasov Eq. for "1-Dimensional" (in space, plus the corresponding velocity dimension) periodic problems. It was written by the Plasma Theory and Simulation Group at Berkeley, (headed by Prof. C.K. Birdsall), which has written a suite of freely available and useful particle codes for education and research, useful for simulating a wide range of plasma devices such as microwave generators, non-neutral plasmas, glow discharges, plasma sources for etching semi-conductors, etc.

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:

Define a pointer to the xes1 executable program:
alias xes1 /afs/ictp/public/h/hammettg/xes1/xes1.i386
or if you are using the bash shell, use the command:
alias xes1=/afs/ictp/public/h/hammettg/xes1/xes1.i386
and executing the code on one of the input files: (On some older X-terminals with a limited color map, there can be "color map conflicts" with certain other packages like Netscape.  If this is a problem, it might be best not to run Netscape and xes1 simultaneously.   On Linux workstations this is usually not a problem.)

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).


Other useful input files in my xes1-runs directory include:

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).


Documentation:  Alternatively, you can edit some of these input files yourself to explore cases of interest to you. The various input parameters are documented in the ES1 Manual   (also in the xes1/doc/es1.pdf or .ps, or at PPPL in /u/hammett/gpp1/es1_book/doc/es1.txt).   Some of the parameters, such as 1/a, a1, a2, etc., address numerical issues which you can ignore.   Some of the main parameters you might want to try varying are:

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):

Note that more recent versions of this and other software are available from http://ptsg.eecs.berkeley.edu . (The unix variants of these recent versions require Tcl/TK and other packages, but these are now installed by default on most Linux/Unix computers.)


Comments to Greg Hammett.
(609) 243 2495.