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

- NRPy+: Introduction & Motivation ([email protected] web page)
- Basic C Code Output, NRPy+'s Parameter Interface
- 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 Analyzing NRPy+-Based Finite Differences

- 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 Vector-Potential 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: The
**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 (

- 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- Application: Maxwell's Equations in Curvilinear Coordinates, using a Reference Metric (
*Courtesy Ian Ruchlin*) - Application: General Relativity in the BSSN Formalism, in singular curvilinear coordinates
*Initial data modules*:- 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*) - Brill-Lindquist: Setting up two-black-hole initial data

- Non-Spinning ("static trumpet") black hole initial data (
**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 initial data validation modules**:**Start-to-Finish simulation example**:

**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 initial data validation modules**: (Note that UIUC black hole initial data are*exact*; however we choose to set them up as though they were only known numerically, as a validation test for the**numerical**ADM-Spherical-to-BSSN-Curvilinear initial data conversion module. TOV initial data on the other hand are generated via the solution of a system of ODEs, thus are truly known only numerically):