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
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.