Relativistic Gravitational Lensing

This is the documentation for the Relativistic Gravitational Lensing Simulator (which was programmed as an individual computational science project during my physics major at the University of Zurich). Its goal is to simulate gravitational lensing not in a semi-classical way, but to involve full general relativity. For this reason, the Hamiltonian equations of motion for photons in a Schwarzschild metric around a black hole are established and are then integrated with a Runge-Kutta integrator. The implementation has to cope with several problems, such as numerical integration at the Schwarzschild radius singularity, interpolation of photon coordinates to equal time coordinates, multiprocessing, etc. Additional features such as an anaglyphic, perspective-projected plot viewable with coloured 3D glasses, visualisation of redshift, image storage, photon statistics and benchmarking are also realized. See below for a documentation.

The program



Binary: gravlens2.jar
Source code: source.tar.gz

Documents

PDF of the documentation

Animations

Note: The yellow circle around the black hole stands for the Schwarzschild radius while the green circle stands for the photon sphere.



Lensing at a small black hole ( M = 10000, 50000 Photons )


Lensing at a critically large black hole ( M = 214000, 50000 Photons )


Pulsed source lensing at a small black hole ( M = 20000, 5000 photons, 5 pulses )


Pulsed, moving source lensing at a large black hole Pulsed, moving source lensing at a large black hole ( M = 560000, 5000 photons, 20 pulses, speed = 150000 )


3D animation with equally distributed photons ( M = 200000, 2000 Photons )
Bad quality for unknown reasons, probably it's better to run it in the program.


3D animation with equally distributed photons ( M = 200000, 6000 Photons, 70 Pulses )
Bad quality for unknown reasons, probably it's better to run it in the program.