aboutsummaryrefslogtreecommitdiff
path: root/README
blob: 6e87fcbc930033a23406d41a9265c5e3c0894123 (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
52
Overview
========

This is a small C library for constructing initial data data for
Teukolsky/time-asymmetric waves (see https://doi.org/10.1103/PhysRevLett.127.011104) to
be used in 3+1 general relativity simulations.

See the author's PhD thesis for more information.

If you use this code in your research that leads to a publication, please cite
our paper:
  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) and libthreadpool [1]
(thread pool utility library) to be present where the compiler and linker can
find them. A C99-compliant compiler and a POSIX environment are expected.

Simply running 'make' will then build the shared library libteukolskydata.so.
The shared library and the teukolsky_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).

[1] git://git.khirnov.net/threadpool_omp.git

Usage
=====

The public C API is described in the teukolsky_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.

The following python scripts are bundled:
- teukolsky.py
  Solves the constraints and prints the residuald and spectral coefficients
- find_bound.py
  Locates A_max using bisection

Licence
=======

This library is free software, available under GNU GPLv3 (see the LICENCE file
for full licence text).