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 the Scalar Wave Equation in Cartesian Coordinates
Using NRPy+ to Numerically Solve Maxwell's Equations in Cartesian Coordinates
Diagnostic Notebooks: Gravitational Wave Extraction in Cartesian coordinates
Solving the Effective-One-Body Equations of Motion
NRPyPN: Validated Post-Newtonian Expressions for Input into Wolfram Mathematica, SymPy, or Highly-Optimized C Codes
  • NRPyPN Main Menu $\leftarrow$ includes NRPyPN Table of Contents and a quick interface for setting up low-eccentricity (up to 3.5 PN order) momentum parameters for binary black hole initial data
NRPyCritCol: Critical phenomena in gravitational collapse

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)