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 Notebooks: Gravitational Wave Extraction in Cartesian coordinates
Solving the Effective-One-Body Equations of Motion

PART 3: Solving PDEs in Curvilinear Coordinate Systems

PART 4: Numerical Relativity $-$ BSSN in Curvilinear Coordinates

PART 5: Numerical Relativity $-$ General Relativistic Hydrodynamics (GRHD), Force-Free Electrodynamics (GRFFE), & Magnetohydrodynamics (GRMHD)