Plasma Hack Week 2021: Tutorials & Presentations

The pre- Hack Week Python tutorials can be found on their dedicated tutorial page.

Coordinating Python Development with PyHC

Monday, June 28th at 12:10 pm ET

Presenter(s): Julie Barnum
Co-author(s): Aaron Roberts, Alexandria Ware, and Shawn Polson

This presentation serves as an introduction to the Python in Heliophysics Community (PyHC). We'll go over the motivation behind the community, as well as a general layout of how the community is structured and run.

git and GitHub Tutorial

Monday, June 28th at 2:00 pm ET

Presenter(s): Erik T. Everson and Sterling Smith

In this tutorial we will cover what is git and GitHub; what are their differences; how they work together; and how to use them. The demonstration will show how to use git and GitHub to version control our software development, which allows us to better collaborate on projects and record the project's development history.

Virtual Environment Setup

Monday, June 28th at 3:30 pm ET

Presenter(s): Erik T. Everson | Documentation

This tutorial will cover the creation, setup, and use of virtual environments. Virtual environments allow you to create Python environments with differing dependencies. This is helpful when you have task X with dependencies A and task Y with dependencies B, but the dependencies A and B conflict. As a solution, two virtual environments can be created with the needed dependencies which you can then switch between for the two (or more) tasks.


Tuesday, June 29th at 11:00 am ET

Presenter(s): Nick Murphy and Ramiz Qudsi
Co-author(s): PlasmaPy Developers | Repository | Documentation

This tutorial will introduce the essentials of working with PlasmaPy. We will work through some examples with Astropy's units and constants subpackages, which are both widely used in PlasmaPy. We will then discuss PlasmaPy's particles, formulary, and dispersion subpackages.

Interface between Plasma Physics and Hydrogen in Solids

Tuesday, June 29th at 12:10 pm ET

Presenter(s): Rémi Delaporte-Mathurin


[Hack Session] First Contribution to an Open Source Project

Tuesday, June 29th at 2:00 pm ET

Presenter(s): Nick Murphy


This hack session will be an opportunity to apply what we learned from the git and GitHub tutorial by making your first contribution to an open source project such as PlasmaPy. This session will start with a demonstration of a contribution to PlasmaPy in order to improve the documentation on how to contribute to PlasmaPy. After that demonstration, participants will be able to make a contribution to PlasmaPy or another project of their choice.


Wednesday, June 30th at 11:00 am ET

Presenter(s): Sterling Smith
Co-author(s): Orso Meneghini | Repository | Documentation

I will give an overview of the OMFIT framework, show how an existing physics module works, including its GUI, and show how to start a new module.

xarray Tutorial

Wednesday, June 30th at 12:10 pm ET

Presenter(s): Nikolas Logan


This tutorial will be a live demonstration of the xarray package. The focus will be on how xarray can be used to make plasma physics code and data more transparent and user friendly. To this end, we will show how xarray's introduction of array dimensions and attributes "allows for a more intuitive, more concise, and less error-prone developer experience".

[Hack Session] Clean Coding Refactoring Session

Wednesday, June 30th at 2:00 pm ET

Presenter(s): Nick Murphy


This hack session will start out with a short presentation on writing clean scientific software and describe clean coding strategies like: choosing meaningful variable names, writing short functions that do exactly one thing, and writing code as a top-down narrative. Participants will then take code that they have written already and refactor it by applying these strategies.


Thursday, July 1st at 11:00 am ET

Presenter(s): Peter Hill and David Schwörer
Co-author(s): Ben Dudson, Joseph Parker, David Dickinson, and John Omotani | Repository | Documentation

This tutorial will give an overview of the BOUT++ framework for solving fluid PDEs. We'll go through some simple physics models implemented in BOUT++ and talk about its capabilities, as well give a live demonstration of its Python interface, and xarray-based post-processing utilities.


Thursday, July 1st at 11:30 am ET

Presenter(s): Jimmy Juno

Repository | Documentation


Thursday, July 1st at 12:10 am ET

Presenter(s): Quinn Pratt

Slides | Repository | Documentation

We will discuss linear error propagation theory, and the "uncertainties" python package. We will go through two examples illustrating how to handle uncertainties on fits, and propagation through simulation.

[Hack Session] Charged Particle Radiography with PlasmaPy

Thursday, July 1st at 2:00 pm ET

Presenter(s): Peter Heuer


Charged particle radiography (often also called proton radiography) is a common diagnostic for electric and magnetic fields in high energy density plasmas. PlasmaPy now includes a synthetic charged particle radiography module for creating synthetic radiographs from provided grids of fields (either from simulations or analytically constructed). In this tutorial we will discuss the basics of charged particle radiography and the purpose of the PlasmaPy module. Then, attendees will be able to experiment with the software to generate radiographs using an example notebook.


Friday, July 2nd at 11:00 am ET

Presenter(s): Laura Hayes | Repository | Documentation


Friday, July 2nd at 11:30 am ET

Presenter(s): Steve Richardson
Co-author(s): Paul Adamson

Repository | Documentation

TurboPy is a lightweight computational physics framework for rapidly prototyping new physics codes. This tutorial will introduce the turboPy framework, and give a live demonstration of how it can be used to create new computational physics "apps".

Writing Tests for Scientific Software

Friday, July 2nd at 12:10 pm ET

Presenter(s): Dominik Stańczak