Introduction

In this practical work, you will familiarize yourself with a Particle in Cell (PIC) code ([BirdsallLangdon], [Lapenta]), learn how to set up and run a basic PIC simulation to study laser plasma acceleration of electrons, and how to analyze the results. The PIC code you will use, Smilei ([Derouillat2018]), is not a simplified version but a full PIC code that you can use for your future studies.

Summary of this practical

In the case study of this practical work, an intense laser pulse is injected into the plasma, exciting a relativistic plasma wave used to accelerate an externally injected relativistic electron bunch. This plasma acceleration scheme is known as laser wakefield acceleration, or LWFA ([Esarey2009], [Malka2012]).

The practical will consist in four parts:

  • Exploring the Input Namelist (Exercises 1-2): we will explore the Python InputNamelist.py file to understand the basic set-up of the problem (simulation window size, resolution, ...). In this part the simulation window is empty.

  • Laser pulse in vacuum (Exercises 4-6): we will add a laser laser pulse propagating in vacuum and check that its diffraction follows the one predicted for a Gaussian beam.

  • Laser wakefield excitation (Exercises 7-11): we will add a pre-ionized plasma and visualize how the laser pulse excites plasma waves in its wake, also checking the results against the analytical theory in the linear regime.

  • Laser wakefield acceleration of an electron bunch (Exercises 12-20): we will add a relativistic electron bunch, injecting it into the plasma waves and studying its acceleration.

We will arrive progressively to the full simulation set-up, familiarizing with the postprocessing using the Python postprocessing library happi and adding step by step all the necessary blocks to the input namelist file called InputNamelist.py .

To add the physical elements or required additional outputs, you just need to decomment (i.e. remove the symbol # in front of the) lines with the relative variables and blocks, as will be described in the exercises. For example, to activate a block that introduces a laser in the simulation, you only need to remove the symbol # in front the LaserEnvelopeGaussianAM block and the lines defining the variables used by that block.

Prerequisites

Although the InputNamelist.py is written in Python, no extensive knowledge of that language is required to understand its contents. Knowing how to define variables (and, optionally, how to define numpy arrays) should be sufficient.

This practical work assumes that the reader knows how to navigate in a directory tree, create folders, and copy files from the command line (for a quick recap, see Sections 4-9, 13-14, and 17 in [ShawCommandLineCrashCourse]).

Some clarifications

Warning Although external injection of an electron bunch in a plasma wave is not common or easy to realize experimentally, it was chosen due its conceptual simplicity, which allows to easily study some basic concepts underlying laser-plasma acceleration.

Warning: Many parameters of the simulation were chosen as a compromise between having a quick simulation and being able to describe the physical phenomena of laser plasma acceleration of electron. More physically accurate simulations of this phenomenon would require larger mesh sizes, a different resolution, etc., that would require much longer simulations.

A quick word on Smilei

As previously stated, the numerical tool you will use for this practical is the PIC code Smilei [Derouillat2018]. A prior knowledge of Smilei is not mandatory for the purposes of the practical exercises. Yet, feel free to check Smilei’s website on GitHub . The interested reader can also find additional tutorials focusing on physical processes not covered by this practical.

Smilei is an open-source and collaborative code freely distributed under a CeCILL-B license (equivalent to the GPL license for free-softwares). It can be run in 1D,2D,3D and cylindrical geometry with azimuthal modes decomposition, with a diverse suite of physical models and numerical techniques, from a laptop to supercomputers.


References

BirdsallLangdon

C. K. Birdsall and A. B. Langdon, Plasma Physics via Computer Simulation, Taylor and Francis Group, 2004

Lapenta

G. Lapenta, Kinetic plasma simulation: Particle in cell method

Derouillat2018(1,2)

J. Derouillat et al., Smilei : A collaborative, open-source, multi-purpose particle-in-cell code for plasma simulation, Computer Physics Communications, 222:351 – 373, 2018

Esarey2009

E. Esarey et al., Physics of laser-driven plasma-based electron accelerators, Rev. Mod. Phys., 81:1229–1285, 2009

Malka2012

V. Malka, Laser plasma accelerators, Physics of Plasmas, 19(5):055501, 2012

ShawCommandLineCrashCourse

Z. A. Shaw, Command line crash course