The physics of plasma is reach area of physical science. The simplest models combine fluid dynamics, electromagnetism and statistical mechanics. However, the wealths of plasma resides in the interaction of complex systems, strongly coupled and responding quite radpily to changes and instabilities. The physics of plasma goes beyond the simple science of electrons and ions interacting via Coulomb collisions.
All we see in the sky, from stars to galaxies, is plasma. Yet plasmas are poorly understood. Further, we are now facing a new era of plasma physics physics were customers have come down to diffuse in a density to being highly dense and extremely driven by quantum mechanical affects.The science has found a new direction in the study of our energy density plasmas.The physics of plasma is a difficult topic Because it couple different areas of physics across many different geometrical and temporal scales. At the Largest scale, It combines fluid mechanics electromagnetism and radiation. As the scales decrease and become smaller, Temporal behaviors are also compressed. At this level positions become important and anisotropic. When this happens, the fluid approximation Breaks down and kinetic theory has to be used.
The goal of this class is to develop an intuition in plasma physics using numerical codes. In this class, we will use the Jupyter interactive front end to develop simple numerical plasma models in the Python language. While this language is not the best medium to run fast, optimized numerical simulations, like C++ or Fortran, the language is interactive and easy to learn. It can also call C++ or Fortran code using Numba , which improves python numerics. Each lecture will highlight different plasma physics models and develop your dexterity at using python.The course will have homeworks and mid-term exams during the semester, like any other course. However, the final exam will be replaced by a project. The project will be in the form of a report, using a Jupyter notebook. Each student will pick one of the topic presented in class and develop this topic further, using material from publications and numerical code development to demonstrate mastery in plasma physics.
The best way to get Python running on your computer or laptop is using Anaconda. While it might be conceived as a bazooka to kill a fly, Anaconda will help you installing on your computer all you need for this course, including Python and its most important packages (e.g. Scipy, Spyder, Numba, and of course Jupyter).
Once Anaconda is installed, you can use Jupyter to read the lectures, change thelectures add your own comments and your own code. The lectures notes, posted as a notebook, will be used to present the material and codes necessary to work on the class. However, Spyder might be a better alternative for HW and class projects.
The best way to look at notebooks is to use the notebook viewer. The notebook uses Markdown to write text, code(surronded by ticks) and formulas (surrounded by dollar signs). Markdown is a simpler cousin of Latex. The formulas are using Latex mathematical syntax and advanced mathematical synthax. Word processors, like Microsfot Word, are typically easier to use. What you see is what you get! Latex or Markdown have to be recompiled and there is a bit of a learning curve. However, typing text has several advantages including:
However, the biggest advantages of word processors are:
Regarless, we have no choice for notebooks. It's Markdown !
Hgihlighting code inside the notebook itself uses the back-tick marks
this is a piece of code. This does not do anything. It just highlight the code. Three back-ticks can be used for a block of code.
s = "Python syntax highlighting" print (s)
Howerver, special cells have to be created to run code in the notebook. This part of the notebook in in a Markdown cell. Below there is python code
The type of the cell can be changed using the menu at the top. Create a new cell and chose it as Markdown for text or code for python.