#!/usr/bin/env python # coding: utf-8 # # PHY259: Plasma physics: from Astrophysics to Z-pinches # The physics of plasma is rich 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 rapidly to changes and instabilities. The physics of plasma goes beyond the simple science of electrons and ions interacting via Coulomb collisions. It also grapples with nuclear synthesis and quantum mechanics.
# This course explores the fundamental physics of plasmas and how it can be applied to astrophysics, fusion energy, propulsion, manufacturing and medicine. The course uses python as a numerical gateway to explore how the properties of plasmas in different regimes, from black hole accretion disks to particle accelerators. Besides homeworks and a mid-term exam, the course requires the completion of a project using Jupyter notebooks. There is no final exam. # # **_Prerequisites_: PHY121; PHY122; PHY 123 or PHY 143.** # ## What are plasmas? # 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 where the physics of highly dense material is driven by quantum mechanical affects. This new science offers new directions to study in high energy density plasmas.
# The physics of plasma is a difficult topic because it couples different areas of physics, across many different geometrical and temporal scales. At the largest scale, It combines fluid mechanics electromagnetism and radiation. As scales become smaller, temporal behaviors are also compressed. At this level kinetic effects become important and anisotropic. When this happens, the fluid approximation breaks down and kinetic theory has to be used. # ## The goal of the class # The goal of this class is to develop an intuition in plasma physics using numerical codes. In this class, we will use the [Jupyter](http://jupyter.org/) interactive front end to develop simple numerical plasma models in the [Python language](https://www.python.org/). 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](https://numba.pydata.org/) , 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. # ## Outline of the course # * **The physics of plasmas** # # # 1. Introduction # 1. Single particle motion # 1. Collisions in plasma # 1. Plasma as a fluid # 1. Magnetohydrodynamics # 1. Turbulence # 1. Waves in plasmas # 1. MHD instabilities # 1. Shock in plasmas # 1. Radiation # # # * **Plasmas in astrophysics** # # # 1. Equilibrium of self-graviting spherical masses # 1. Warm dense matter and planetary cores # 1. The solar wind # 1. Nuclear synthesis # 1. Accretion disks and spiral density waves # 1. Gravitational collapse and star formation # 1. Active galactic nuclei and black holes # 1. Plasma jets # # # * **Plasmas for fusion energy** # # # 1. Fusion energy # 1. Fusion reactors and the Lawson criterion # 1. Linear confinement and mirror machines # 1. Axisymmetric toroidal Confinement and tokamaks # 1. Non-axisymmetric toroidal confinement and stellerators # 1. Inertial confinement fusion and lasers # 1. Z-pinches and pulsed-power generators # # # * **Plasmas for propulsion** # # # 1. Gas dynamics # 1. Nozzles # 1. Hall thrusters # 1. Electrodeless thrusters # # # * **Plasma for life sciences** # # # 1. Plasma skin healing # 1. Plasma cancer treatment # 1. Plasma disinfection # # # * **Plasmas for manufacturing** # # # 1. Welding # 1. Cutting # 1. Printing # # # # What is needed to take this class # ## Anaconda # The best way to get Python running on your computer or laptop is using [Anaconda](https://www.anaconda.com/download/). 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](https://scipy.org/), [Spyder](https://pythonhosted.org/spyder/), Numba, and of course Jupyter). # ## Jupyter # Once Anaconda is installed, you can use Jupyter to read the lectures, change the lectures, add your own comments and your own code. The lectures notes, posted as a notebook, will be used to present the material and the codes necessary to work on the class. However, Spyder might be a better alternative for homework and class projects. # ### The notebooks # The best way to look at notebooks is to use the [notebook viewer](https://nbviewer.jupyter.org/). The notebook uses [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) to write text, code(surrounded by ticks) and formulas (surrounded by dollar signs). Markdown is a simpler cousin of [Latex](https://en.wikibooks.org/wiki/LaTeX). The formulas are using Latex [mathematical syntax](https://en.wikibooks.org/wiki/LaTeX/Mathematics) and [advanced mathematical synthax](https://en.wikibooks.org/wiki/LaTeX/Advanced_Mathematics). You can also look at [more advanced synthax](https://jupyter.brynmawr.edu/services/public/dblank/Jupyter%20Notebook%20Users%20Manual.ipynb). Word processors, like Microsoft 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: # * equations are much easier to type, # * references can be easily includes and the program that makes the final document (LaTeX or markdown) will put in the reference list and format it automatically # * figure and page layout are automatic # * text files can be edited collaboratively. # # However, the biggest advantages of word processors are: # * live spell checking # * what you see is what you get # * all materials (pictures, movies, ...) are included in one single file # # Regardless, we have no choice for notebooks. It's Markdown ! # ### Including codes inside a notebooks # Highlighting code inside the notebook itself uses the backtick marks \` `this is a piece of code`. This does not do anything. It just highlight the code. Three backticks \`\`\` can be used for a block of code. # ```python # s = "Python syntax highlighting" # print (s) # ``` # However, special cells have to be created to run code in the notebook. What you have read up to now is in a Markdown cell. Below there is python code inside a code cell. # In[2]: s = "This is a real piece of code" print (s) # 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. Note that the notebooks are static. You need to run the notebook on your computer if you change a piece of code. # # Last words before starting the course # The skills you will acquire in this course will go beyond plasma physics. Learning how to use Python notebooks can be extremely helpful in other areas of physics, engineering and life sciences.
# If you are interested in taking this course, do not hesitate to contact me by [email](mailto:gourdain@pas.rochester.edu). # In[ ]: