Skip to content

Support library providing EOS and primitive recovery framework for general relativistic ideal MHD

License

Notifications You must be signed in to change notification settings

wokast/RePrimAnd

Repository files navigation

Overview

RePrimAnd is a support library for numerical simulations of general relativistic magnetohydrodynamics and other neutron star related problems, written in C++ (a Python interface is also available)

The full documentation can be found here

Installation

The main target and devolpment platform is Linux, although the library code is not platform-specific and should also work on Macs. Windows and AIX are not supported. For use in HPC, users need to build the library from source. For use in postprocessing, the Python intferface can also be installed via pip (binary wheel of the library available for Linux). There is also an experimental conda package for the C++ library (Python interface not included yet).

Requirements

  • A C++11 capable compiler (tested with gcc and clang).
  • Meson build system.
  • Boost library.
  • GNU Scientific Library version >= 2.0
  • HDF5 library (Only C-bindings required, not the C++ API).
  • Doxygen (only for documentation)
  • Sphinx with Breathe and bibtex extensions (only for documentation)
  • Python matplotlib (only for benchmark plots)

Building from Source

The library is build using the modern Meson build system, which is available as standard package in most distributions and can also be installed via Python's pip.

To build the library,

cd <repository>
meson mbuild --buildtype=release --prefix=<custom install location>
ninja -C mbuild

This will compile with optimization and without debug symbols. Other possibilities are --buildtype=debug and --buildtype=debugoptimized To use a different compiler, e.g. clang, prefix the meson command with CC=clang CXX=clang++. See here for general Meson usage.

Note on Conda environments: if you build for a conda environment and meson does not detect the boost library or the wrong version, use

BOOST_ROOT=$CONDA_PREFIX meson setup --prefix=$CONDA_PREFIX mbuild

Note on HDF5: meson and hdf5 do not play along nicely (partly caused by bad hdf5 packaging). Make sure there is a pkg-config file for the version you want to build with. Another common cause is that you are building within a conda environment. In that case prefixing LD_LIBRARY_PATH with $CONDA_PREFIX/lib might help.

Installing