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 BarnumCo-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
https://github.com/rocco8773
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.
PlasmaPy
Tuesday, June 29th at 11:00 am ET
Presenter(s): Nick Murphy and Ramiz QudsiCo-author(s): PlasmaPy Developers
https://www.plasmapy.org
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 MurphyThis 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.
OMFIT
Wednesday, June 30th at 11:00 am ET
Presenter(s): Sterling SmithCo-author(s): Orso Meneghini
https://omfit.io
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 LoganThis 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 MurphyThis 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.
BOUT++
Thursday, July 1st at 11:00 am ET
Presenter(s): Peter Hill and David SchwörerCo-author(s): Ben Dudson, Joseph Parker, David Dickinson, and John Omotani
https://boutproject.github.io/
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.
Uncertainties
Thursday, July 1st at 12:10 am ET
Presenter(s): Quinn Pratt
Slides
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 HeuerCharged 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.
SunPy
Friday, July 2nd at 11:00 am ET
Presenter(s): Laura HayesTurboPy
Friday, July 2nd at 11:30 am ET
Presenter(s): Steve RichardsonCo-author(s): Paul Adamson
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