Preparatory materials: 

These lectures will assume some background in GR, differential equations, numerical methods and programming. The participants are strongly encouraged to go through the preparatory materials before coming to the school.

References

1. A standard course in GR, using any of the standard textbooks, e.g., Bernard F. Schutz (A first course in GR), Jim Hartle (Gravity), Sean M. Carroll (Spacetime and Geometry: An Introduction to General Relativity). 

2. A primer in Numerical relativity, for e.g. T. W. Baumgarte & S. L. Shapiro, Numerical Relativity: Starting from Scratch (Chapters 1, 2, 4 and Appendices B.1-B.3).

3. A standard course in numerical methods covering root finding, ordinary differential equations, eigenvalue problems, interpolation, etc. E.g, Press & Teukolsky (Numerical Recipes, available online) or Arfken & Weber (Mathematical Methods for Physicists).

Technical Prerequisites:

4. Laptop with Linux/Unix/Mac OS with at least 30GB of disk space. We recommend Ubuntu 20. We will not support Windows OS, so please use it at your own risk.

5. Programming in C++ (preferable) and Python (essential). There are many online tutorials. E.g., C++ Programming for Scientists, Python for science, Python for Scientists, Python for Scientists (book). 

6.  We strongly recommend that participants install the following software before arriving:

  • Paraview (from here)
  • Docker (from here)
  • Visual Studio Code (from here)
  • Miniconda (from here)

1. Numerical Relativity: Mathematical formulation (Baumgarte)

Course plan: 
  • Lecture I: Newton’s versus Einstein’s Gravity: Newtonian gravity and the gravitational potential, the metric, covariant derivative, geodesic equation and deviation, the Riemann, Ricci and Einstein tensors, Einstein’s field equations, black holes and the Schwarzschild spacetime
  • Lectures II & III: The 3+1 Decomposition: Scalar fields, electromagnetism and Maxwell's equations, the Faraday tensor, 3+1 decompositions, the lapse function and shift vector, the extrinsic curvature, the spatial covariant derivative, the Lie derivative, constraint and evolution equations
  • Lecture IV: Solving the Constraint Equations: Conformal decompositions, elementary solutions to the Hamiltonian constraint, decompositions of the extrinsic curvature, Bowen-York solutions, puncture initial data for black holes
  • Lecture V: Solving the Evolution Equations: Reformulating Maxwell’s and Einstein’s equations, slicing and gauge conditions, the moving-puncture method, black hole simulations
References: 
  • T. W. Baumgarte & S. L. Shapiro, Numerical Relativity: Starting from Scratch, Cambridge University Press, 2021
Useful readings:
Tutorials: 
  • Tutorials will consist of exercises related to the material covered in class; for the last two tutorials, the lecturer will also provide simple Python scripts with numerical examples.

 

2. Introduction to Numerical Relativistic Hydrodynamics (Kiuchi)

Course plan: 
  1. Lecture I: Non-relativistic and relativistic hydrodynamics (a review) 
  2. Lecture II: The 3+1 Decomposition of Relativistic Hydrodynamics and Magnetohydrodynamics
  3. Lecture III: High-Resolution Shock Capturing Scheme1
  4. Lecture IV: High-Resolution Shock Capturing Scheme2
  5. Lecture V: Solving the equation of motion of relativistic fluids
References:
  • Masaru Shibata, Numerical Relativity,  World Scientific (2015).
Tutorials: 
  • Tutorials will consist of the exact solution for the Riemann problem in non-relativistic fluid and relativistic fluid. 
  • Tutorials also will consist of the code development of the high resolution shock capturing scheme to solve the Riemann problem.

3. Introduction to theory and numerics of partial differential equations (Pfeiffer)

Course plan:   
  • Introduction to Spectral methods. Fourier, Chebyshev, Legendre polynomials.  Convergence theory.  
  • PDE classification: Elliptic/hyperbolic/parabolic.  PDEs as eigenvalue-problems. 
  • How one can use this to do pseudo-spectral solutions of elliptic and hyperbolic PDEs and to solve eigenvalue problems like oscillation frequencies of stars.  
  • Optimising accuracy vs. computational cost by choosing suitable mappings to re-distribute grid points (e.g. a 1/r mapping for compactification).  
  • Imposition of boundary conditions for hyperbolic problems via characteristic mode decomposition.  
References: 
  • John P. Boyd, Chebyshev and Fourier Spectral Methods, Springer (2000).  [available online]
Tutorials:  

The tutorials will guide the students through the development of their own codes for:

  • Calculation of the QNMs of a Schwarzschild black hole via spectral discretization of the QNM eigenvalue problem.
  • Development of a Teukolsky-solver, that calculates the GW emission of a point-particle orbiting on a circular orbit around a Schwarzschild black hole.  The outcome here is the GW energy flux to infinity and into the horizon.  This requires a 2-element spectral solution, with the inter-element boundary at the location of the point-particle.  Probably it will use hyperboloidal slices for compactification.  Fall-back option: Scalar point-charge orbiting Schwarzschild, and calculate the scalar-wave emission. 
     

4. Modern Numerical Methods in Computational Relativity (Lovelace)

Course plan: 
  • Introduction to next-generation Numerical Relativity. 
  • Task-based parallelism (what is it, how is it used in SpECTRE).
  • Discontinuous Galerkin spatial discretization for numerical relativity.
  • (Time permitting) Status of binary black hole simulations in SpECTRE. 
  • (Time permitting): Special topic: possible topics include adaptive mesh refinement, Cauchy Characteristic Evolution, and apparent horizon finding. 
References: 
Tutorials:  

Tutors: Ankur Barsode and vaishak.p@icts.res.in

These will use the SpECTRE docker container and will guide students through using SpECTRE. These assume some programming experience (python or any language for scientific computing).

  • Install Docker. Install ParaView. Install Visual Studio Code (homework, before first tutorial)

1. Make an account at GitHub if you don’t already have one, and have your GitHub username and password handy during the first tutorial.

2. Install Docker Desktop on their laptop (if Mac, they’ll want to make sure you choose Intel Chip if you have an Intel-based Mac; you’ll want to make sure to choose “Apple Chip” if you have an Apple Silicon (M1, M2) Mac). 

3. Install Visual Studio Code on your laptop:

  • Crash course: C++-17 for SpECTRE
  • Build a toy SpECTRE executable: Monte Carlo integration demonstrating task-based parallelism on multiple cores
  • Time permitting: Generate and visualize a DG computational domain. 
  • (Time permitting): Discontinuous-Galerkin example simulation (scalar wave / single black hole), convergence with h and p refinement, ParaView visualization.
  • (Time permitting): Plotting/visualizing data from SpECTRE simulations already completed (scalar wave / single black hole / binary black hole), how to fork, checkout, and build SpECTRE. 

More information: Google Drive folder