aboutsummaryrefslogtreecommitdiff
path: root/README
blob: fe8edb841c10572fa11f79fcd38948a47470335b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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).