aboutsummaryrefslogtreecommitdiff
path: root/README
blob: 3209a075f4a8b7cbcec1f54c90b7fd4e1814c751 (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
Overview
========

This is a linear scalar elliptic PDE solver using the multigrid method. 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
=========================

A C99-compliant compiler and a POSIX environment are expected, as well as the
foloowing dependencies:
- BLAS
- LAPACKE (the C interface to LAPACK)
- libthreadpool (thread pool utility library)
- libndarray (array utility library)
- MPI

You must create a separate build directory and run the 'configure' script from
there, followed by 'make'.

The shared library and the headers mg2d.h, mg2d_boundary.h, mg2d_constants.h
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 header files.

A simplistic Python wrapper using ctypes is also provided. It largely mirrors
the C API.

Licence
=======

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