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

- NRPy+: Introduction & Motivation (NRPy+ home page)
- Basic C Code Output, NRPy+'s Parameter Interface
`cmdline_helper`

: Multi-platform command-line helper functions (*Courtesy Brandon Clark*)- Numerical Grids
- Indexed Expressions (e.g., tensors, pseudotensors, etc.)
- Finite Difference Derivatives
- Instructional module: How NRPy+ Computes Finite Difference Derivative Coefficients
**Start-to-Finish Example**: Finite-Difference Playground: A Complete C Code for Validating NRPy+-Based Finite Differences

- Method of Lines for PDEs: Step PDEs forward in time using ODE methods
- Solving ODEs using explicit Runge Kutta methods (
*Courtesy Brandon Clark*) - Generating C Code to implement Method of Lines timestepping with explicit Runge Kutta-like methods (
*Courtesy Brandon Clark*)

- Solving ODEs using explicit Runge Kutta methods (
- Writing your own NRPy+ tutorial module: A Style Guide (
*Courtesy Brandon Clark*)

- Application: The Scalar
**Wave Equation**in Cartesian Coordinates, with Plane-Wave Initial Data**Start-to-Finish Example**: Numerically Solving the Scalar Wave Equation: A Complete C Code- Solving the Wave Equation with the **Einstein Toolkit** (
*Courtesy Patrick Nelson*)

- Application (**in progress**): Two Formulations of
**Maxwell's Equations**in Cartesian Coordinates. (Formulations based on Illustrating Stability Properties of Numerical Relativity in Electrodynamics by Knapp, Walker, and Baumgarte.) (*Courtesy Patrick Nelson*)

- Application: All Weyl scalars and invariants in Cartesian Coordinates (
*Courtesy Patrick Nelson*)- **WeylScal4NRPy**: An **Einstein Toolkit** Diagnostic Thorn (
*Courtesy Patrick Nelson*)

- **WeylScal4NRPy**: An **Einstein Toolkit** Diagnostic Thorn (

- Application (**in progress**): SEOBNR: The Spinning-Effective-One-Body-Numerical-Relativity Hamiltonian
- Solving the SEOBNR Hamiltonian equations of motion

- Moving beyond Cartesian Grids: Reference Metrics
- Application: The Scalar Wave Equation in Curvilinear Coordinates, using a Reference Metric
**Start-to-Finish Example**: Numerically Solving the Scalar Wave Equation in Curvilinear Coordinates: A Complete C Code

**Start-to-Finish Example**: Implementation of Curvilinear Boundary Conditions, Including for Tensorial Quantities

**Overview: Covariant BSSN formulation of general relativity in curvilinear coordinates**- Construction of useful BSSN quantities
- BSSN time-evolution equations
- Time-evolution equations for BSSN gauge quantities $\alpha$ and $\beta^i$
- Hamiltonian and momentum constraint equations
- Enforcing the conformal 3-metric $\det{\bar{\gamma}_{ij}}=\det{\hat{\gamma}_{ij}}$ constraint
- Writing quantities of ADM formalism in terms of BSSN quantities

**Initial data modules**. Initial data are set in terms of standard ADM formalism spacetime quantities.- Non-Spinning ("static trumpet") black hole initial data (
*Courtesy Terrence Pierre Jacques & Ian Ruchlin*) - Spinning UIUC black hole initial data (
*Courtesy Terrence Pierre Jacques & Ian Ruchlin*) - Spinning Shifted Kerr-Schild black hole initial data (
*Courtesy George Vopal*) - Brill-Lindquist initial data: Two-black-holes released from rest
- Black hole accretion disk initial data (Fishbone-Moncrief)
- Neutron Star initial data: The Tolman-Oppenheimer-Volkoff (TOV) solution (
*Courtesy Phil Chang*)

- Non-Spinning ("static trumpet") black hole initial data (
**ADM-to-curvilinear-BSSN initial data conversion****Exact**ADM Spherical/Cartesian to BSSN Curvilinear Initial Data Conversion (Use this module for initial data conversion if the initial data are known*exactly*. The BSSN quantity $\lambda^i$ will be computed exactly using SymPy from given ADM quantities.)**Start-to-Finish**: Confirms all exact initial data types listed above satisfy Einstein's equations of general relativity. (*exact*initial data validation module*Courtesy Brandon Clark & George Vopal*)

**Numerical**ADM Spherical/Cartesian to BSSN Curvilinear Initial Data Conversion (Use this module for initial data conversion if the initial data are provided by an initial data solver, and are thus known to roundoff error at best. The BSSN quantity $\lambda^i$ will be computed using finite-difference derivatives from given ADM quantities.)**Start-to-Finish**: The TOV solution: Neutron star initial data, confirms numerical errors converge to zero at expected order (TOV initial data are generated via the*numerical*initial data validation module*numerical*solution of a system of ODEs, thus are known only numerically)

**Diagnostic curvilinear BSSN modules****Start-to-Finish curvilinear BSSN simulation examples**: