Below you will find a list of programs free to download and use to generate and process GERLUMPH magnification maps.Each code is accompanied by a description and examples of how to use it.Please make sure to credit the correct person that developed the code and/or associated publication.
|GPUD||Direct ray-shooting code on the GPU|
|gerlumph++||A C++ library for microlensing analysis|
|causticfinder||An analytic method to find caustics|
Generating microlensing magnification maps on the GPU
This is a GPU-accelerated implementation of the inverse ray-shooting technique, used to generate cosmological microlensing magnification maps. These maps (see an example here) approximate the source plane magnification patterns created by an ensemble of stellar-mass compact objects within a foreground macrolens galaxy.
The code performs the following programming tasks:
More details can be found in the following papers:
As our GPU-D code uses CUDA for GPU acceleration, it can only run on NVIDIA devices. Currently, we have tested the code with CUDA 4.0, 4.1, 4.2 and 5.0. Here is the command used to compile the code:
nvcc -D_DEBUG -lgomp -arch=compute_11 --compiler-options "-fno-strict-aliasing -Wall -fopenmp" -O3 -o lenser_gpu lensDriver.cpp lensFuncs.cpp help.cpp cudaLens.cu
And here is an example execution call:
./lenser_gpu -k 0.45 -g 0.2 -navg 100 -res 1024
The resulting output map (described below) is included in the download package for comparisons. Executing the code without any options will print a help text explaining each command line argument.
map.bin: the ray-counts per map pixel, represented by a 32-bit integer written in binary format. The size of the file (in Megabytes) can be easily calculated by applying the following formula: 4 x resolution2/10242. The output can be viewed by appropriate programs e.g. od -t d4 map.bin | head in Unix.
mapmeta.dat: properties of the produced magnification map stored in text format for quick access. These are the average magnification, <μ>, the average number of rays per pixel, <N>, the resolution, the map width, and the κ,γ,s values used. One can convert the ray-counts to magnification using the following formula: μ = N <μ>/<N>.
lens_pos.dat: mass (in M⊙) and position coordinates of the microlenses on the lens plane, stored in text format.
Microlensing analysis with magnification maps
Finding caustics and critical curves