The Manual

The manual with all project tasks is available here.

The Project

The Wave Equation project consists of an analytical and numerical part. Numerical Part topics:

  • Finite differencing
  • Convergence
  • Runge-Kutta time integration (we stick to RK4)
  • Periodic and open boundary conditions
  • Numerical stability
  • Black hole perturbations (Regge-Wheeler equation) [previous knowledge on GR strongly recommended]

Focus on the main tasks of the project, if there’s time at the end you can go through the bonus tasks. A good score implies the successful completion of tasks 1-10 in addition to a satisfactory poster presentation (more details on the evaluation later).

Recommended reads:

  • Finite Difference computing with PDEs, link
  • Computational Physics, Chapter 3, link
  • Lecture Notes on GR, Chapter 7, link
  • Lecture Notes on GW, Chapter 7, link

Poster

  • Size A0
  • $\LaTeX$ template available here
  • Non-$\LaTeX$ templates here

Programming

  • Python, C, C++ [Python highly recommended]
  • Good programming practice:
    • Easy to understand variable names
    • Comment your code:
def fft(t, h):
    """
    Compute real (fast) Fourier transform
    Obs. Real FFT assumes that the input signal is real time-series.
    Analogously, This means that we are considering only positive frequencies (hermitianity).
		
    Input:
    * t : time axis
    * h : waveform
		
    Output:
    * f: frequency axis [Hz] (f>=0)
    * hfft: Fourier transform of h (complex array)
    """
    dt      = t[1]-t[0]
    hfft    = np.fft.rfft(h) * dt
    f       = np.fft.rfftfreq(len(h), d=dt)
    return f, hfft
  • Document your code (make notes, will become helpful for the poster). I recommend using markdown as it is easy to manage and one can still write $\LaTeX$ equations with it, e.g. $\Pi = \partial_t \phi$, more here but also using $\LaTeX$ is OK.
  • Another possibility is using Jupyter-Notebooks [also very recommended]: Jupyter server of the FSU Jena
  • If working in a team: I highly recommend using git. If this is the case, let me know so I can make an account for you in our TPI’s gitlab server. More on git:
  • If you need any help with any of these topics: Python in general, markdown, $\LaTeX$, git, jupyter, etc. Let me know and we can arrange a tutorial session.