Overview ======== This is a small C library for constructing initial data data for Brill waves (see e.g. http://arxiv.org/abs/gr-qc/9302023) to be used in 3+1 general relativity simulations. The construction involves solving an elliptic equation for the conformal factor. This is done using a pseudo-spectral method by expanding the conformal factor in the basis of SB functions (see Boyd 2000, chapter 17.9) in the radial direction and even cosines in the angular direction. The pseudo-spectral matrix is inverted with LAPACK. If you use this code in your research that leads to a publication, please cite our paper [1] Slicing conditions for axisymmetric gravitational collapse of Brill waves https://doi.org/10.1088/1361-6382/aae1bc and/or [2] Universality of Curvature Invariants in Critical Vacuum Gravitational Collapse https://doi.org/10.1103/PhysRevLett.127.011104 If you modify the code, we ask that you share your changes with the author (e.g. via email). Building and installation ========================= The library requires LAPACKE (the C interface to LAPACK) to be present where the compiler and linker can find it. A C99-compliant compiler and a POSIX environment are expected. Simply running 'make' will then build the shared library libbrilldata.so. The shared library and the brill_data.h header must be copied to where the linker and C compiler, respectively, will find them (typically /usr/local/lib and /usr/local/include). Usage ===== The public C API is described in the brill_data.h header. A simplistic Python wrapper using ctypes is also provided. It contains a single public class that takes the C context options as keyword arguments and solves the equation on initialization. The instance methods then allow to evaluate the solution where needed. Licence ======= This library is free software, available under GNU GPLv3 (see the LICENCE file for full licence text).