Computational plasma physics S. Possanner and E. Sonnendr¨ucker Max-Planck-Institut f¨urPlasmaphysik und Zentrum Mathematik, TU M¨unchen Lecture notes Sommersemester 2019 April 26, 2019 Contents 1 Introduction2 1.1 Scientific computing..........................2 1.2 Plasmas.................................4 1.3 Model equations.............................4 1.3.1 The N-body model.......................6 1.3.2 Kinetic models.........................7 1.3.3 Fluid models..........................9 1 Chapter 1 Introduction 1.1 Scientific computing Understanding an experiment in physics relies on a model which is generally a differential equation or a partial differential equation or a system involving many of these. In sufficiently simple cases analytical solutions of these models exist and then this can be used to predict the behaviour of a similar experiment. However in many cases, especially when the model is based on first principles, it is so complex that there is no analytical solution available. Then there are two options: the first is to simplify the model until it can be analytically solved, the second is to compute an approximate solution using a computer. In practice both are usually done, the simplified models being used to verify that the code is working properly. Due to the enormous development of computer resources in the last 50 years, quite realistic simulations of physical problems become now possible. A large amount of theoretical work in physics and related disciplines, in particular in plasma physics, now relies quite heavily on numerical simulation. Computational sciences have emerged next to theory and experiments as a third pillar in physics and engineering. Designing efficient, robust and accurate simulation codes is a challenging task that is at the interface of the application domain, plasma physics in our case, applied mathematics and computer science. The main difficulties are to make sure that the implemented algorithms provide a good approximation of the physics model and also that the algorithms use ef- ficiently the available computer resources which are costly. Even though many basic simulations can be performed nowadays on a laptop, state of the art compu- tations require huge super-computers that consists of many computing units and nowadays often heterogeneous computing elements (CPU, GPU, MIC, ...). These require parallel algorithms and often, to achieve optimal efficiency, a very good knowledge of the computer architecture. This lecture will provide an introduction to the main numerical methods used for plasma physics simulations. Its aim is to introduce the process of developing a simulation code and some standard methods and numerical issues. The models we will consider come from plasma physics, but the models and even more so the techniques and ideas will be useful for many other applications. Specific skills and 2 methodologies for high performance computing that are also very important in computational physics are beyond the scope of this lecture. We refer to [2] for an introduction. The first step is to find an appropriate model, which is often a set of coupled differential or partial differential equations. If the model is contin- uous the solution lives in an infinite dimensional space which cannot be represented on a computer. The second step then will be to discretise it, i.e. represent the unknowns by a large but finite number of values, typically its values on a finite grid or the coefficients of its expression on the basis of a a finite dimensional linear space. Then from the equations of the starting models relations between the values representing the discrete unknowns should be found. This yields a finite number of linear or non linear equations that can be solved on a computer. This will require methods of numerical linear algebra, which are introduced in [5] or iterative methods for linear or nonlinear equations, a good introduction of which is available in [3]. We won't focus on these either. They are generally taught in Numerics Bachelor classes. They are generally available in numerical software tools like Matlab or Numpy and those programming in a low level language like Fortran, C or C++ can use efficient libraries, like LAPACK, ScaLAPACK, PETSc, Trilinos, to name a few, that are freely available. There are many possible ways to discretise a differential or partial differential equation. They are not all equal and many things need to be considered, when choosing an appropriate one. The most important is naturally that the discrete model converges towards the initial model when the number of discrete values goes to infinity. Because computer arithmetics is not exact, as real numbers cannot be represented exactly on a computer, sensitivity to round-off errors is very important. Then some algorithms need more operations than other. Optimally an algorithm dealing with an unknown vector of N points can use O(N) operations, but some can use O(N log N) or O(N d) or even more, which will make a huge difference for large values of N. Then again some algorithms will be easier to parallelise than others, which is an important issue when developing a simulation code on a massively parallel computer. Also, before choosing a discretisation, it is important to understand the struc- ture of the equations that are being discretised. Analytical theory plays an essen- tial role in this aspect. What are the conserved quantities? Are there analytical solution in some special cases? What is the evolution of the solution or some quan- tities depending on the solution? And so on. The more information is available from analytical theory, the easier it will be to check whether the code is correctly approximating the analytical model. The process of verification of a computer code, consists precisely in checking that the code can reproduce as expected infor- mation available from the theory. Verification of a computer code is essential to gain confidence in its correctness. Only once the computer code has been appro- priately verified, one can proceed with the validation process, which consists in comparing the code to actual experiments and checking that those can be repro- duced within the available error bars. If this is not the case, one needs to check the initial model, including initial and boundary conditions and all external parame- 3 ters that could have an influence on the results. Possibly one also needs to develop more verification tests to check that there is no error in the implementation. This process of Verification and validation (V & V) is essential for developing a simulation code with reliable predictive capabilities. In this lecture, starting from a few classical models from plasma physics, we will learn how to write a simulation code for solving them. This includes finding a good discrete model, implementing it and verifying it. This is the scope of applied numerical mathematics. The physics exploitation of the code can start after those steps. We will cover most of the classical discretisation methods, finite differences, finite elements, finite volumes and also spectral methods. 1.2 Plasmas When a gas is brought to a very high temperature (104 K or more) electrons leave their orbit around the nuclei of the atom to which they are attached. This gives an overall neutral mixture of charged particles, ions and electrons, which is called plasma. Plasmas are considered beside solids, liquids and gases, as the fourth state of matter. You can also get what is called a non-neutral plasma, or a beam of charged particles, by imposing a very high potential difference so as to extract either elec- trons or ions of a metal chosen well. Such a device is usually located in the injector of a particle accelerator. The use of plasmas in everyday life has become common. This includes, for example, neon tubes and plasma displays. There are also a number industrial applications: amplifiers in telecommunication satellites, plasma etching in micro- electronics, production of X-rays. We should also mention that while it is almost absent in the natural state on Earth, except the Northern Lights at the poles, the plasma is 99% of the mass of the visible universe. In particular the matter in stars is mainly in the plasma state and the energy they release comes from the process of fusion of light nuclei such as protons. This is the process that is at the base of fusion energy, aiming at extracting a vast amount of energy from a plasma. This is an active subject of research in plasma physics. More information on plasmas and their applications can be found on the web site http://www.plasmas.org. 1.3 Model equations Since plasma is a gas of charged particles, one expects the equations of gas dy- namics (Euler, Navier-Stokes, Boltzmann) to play a role in the modeling of plasma phenomena. In contrast to neutral gases, however, the dominant interaction is governed by the Lorentz force, which is long-range and leads to collective phe- nomena such as plasma waves. Moreover, external electric and magnetic fields can be used to accelerate and guide the plasma particles - this fact is used for in- stance in particle accelerators (https://home.cern/) or in magnetic fusion devices 4 (https://www.iter.org/). An adequate description of plasmas is thus obtained by coupling the equations of gas dynamics to equations for the electromagnetic fields, namely Maxwell's equations. A nice overview of plasma models, and an introduction to Plasma Physics in general, can be found for instance in [1,4]. Indeed, there exists a whole hierarchy of plasma models adapted to the various scales of observation, ranging from the microscopic picture (atomistic view) to the macroscopic picture (fluid dynamical view). Their derivation and in-depth analysis goes beyond the scope of this lecture. We shall present however a quick overview of the the most prominent plasma models used in computer simulations: 1.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages11 Page
-
File Size-