*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.)
- Loop Generation
- Finite Difference Derivatives
- Instructional notebook: 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 (
- Convenient mathematical operations
- Representing
`min(a,b)`

and`max(a,b)`

without`if()`

statements; defining piecewise functions (*Courtesy Patrick Nelson*) - Symbolic Tensor Rotation using Quaternions (
*Courtesy Ken Sible*) - Sommerfeld Outer Boundary Condition, in Cartesian Coordinates (
*Courtesy Terrence Pierre Jacques*)

- Representing
- Contributing to NRPy+
- The NRPy+ Tutorial Style Guide (
*Courtesy Brandon Clark*) - Adding Unit Tests (
*Courtesy Kevin Lituchy*)

- The NRPy+ Tutorial Style Guide (

- Application: The Scalar
**Wave Equation**in Cartesian Coordinates**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: 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: SEOBNR: The Spinning-Effective-One-Body-Numerical-Relativity Hamiltonian
- Solving the SEOBNR Hamiltonian equations of motion (**in progress**)

- 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
- Basis transformations of BSSN variables

**Initial data notebooks**. 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*)- Implementation of Single and Piecewise Polytropic EOSs (
*Courtesy Leo Werneck*)

- Implementation of Single and Piecewise Polytropic EOSs (

- 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 notebook*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 notebook*numerical*solution of a system of ODEs, thus are known only numerically)

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

- The equations of general relativistic hydrodynamics (
**GRHD**), in Cartesian coordinates - The equations of general relativistic, force-free electrodynamics (
**GRFFE**), in Cartesian coordinates - The equations of general relativistic magnetohydrodynamics (
**GRMHD**), in Cartesian coordinates with piecewise-polytrope/hybrid equation of state support (`IllinoisGRMHD`

*Courtesy Leo Werneck*): ***In progress***

In [ ]:

```
```