The NRPy+ Tutorial: An Introduction to Python-Based Code Generation for Numerical Relativity... and Beyond!

Lead author: Zachariah B. Etienne $\leftarrow$ Please feel free to email comments, revisions, or errata!

If you are unfamiliar with using Jupyter Notebooks, first review the official Jupyter Notebook Basics Guide.

PART 1: Basic Functionality of NRPy+, a First Application

NRPy+ Basics

PART 2: Basic Physics Applications

Using NRPy+ to Numerically Solve PDEs
Diagnostic Modules: Gravitational Wave Extraction in Cartesian coordinates
Diagnostic Modules: GRMHD/GRFFE
Solving the Effective-One-Body Equations of Motion

PART 3: Solving PDEs in Curvilinear Coordinate Systems

PART 4: Numerical Relativity; BSSN in Curvilinear Coordinates