1
0
Fork 0
mirror of https://github.com/cosmo-sims/monofonIC.git synced 2024-09-19 17:03:45 +02:00

README.md edited online with Bitbucket

This commit is contained in:
Oliver Hahn 2020-08-23 14:44:16 +00:00
parent 690c3e8399
commit 70fe815457

View file

@ -1,9 +1,13 @@
# MUSIC2 - monofonIC
Modular high-precision IC generator for cosmological simulations. MUSIC2-monofonIC is for non-zoom full box ICs (use [MUSIC](https://bitbucket.org/ohahn/music) for zooms, MUSIC2 for zooms is in the works).
[Full manual is available here as a wiki](https://bitbucket.org/ohahn/monofonic/wiki/). Quick instructions follow below.
Note that this program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.
Currently supported features (list is growing, so check back):
BEWARE: This software package is currently in a beta testing phase! Proceed with caution before using it for large-scale simulations.
[The full manual is available here as a wiki](https://bitbucket.org/ohahn/monofonic/wiki/). Quick instructions can be found below.
Currently supported features (the list is growing, so check back):
- Support for up to 3rd order Lagrangian perturbation theory (i.e. 1,2, and 3LPT)
@ -13,15 +17,24 @@ Currently supported features (list is growing, so check back):
- Multiple Einstein-Boltzmann modules: direct interface with [CLASS](https://lesgourg.github.io/class_public/class.html), file input from CAMB, and fitting formulae (Eisenstein&Hu).
- Multiple output modules for RAMSES, Arepo, Gadget-2/3, and HACC (courtesy M.Buehlmann) via plugins (Swift and Nyx are next). New codes can be added (see how to contribute in CONTRIBUTING.md file)
- Multiple output modules for RAMSES, Arepo, Gadget-2/3, and HACC (courtesy M.Buehlmann) via plugins (Swift and Nyx are next).
- Multiple random number modules (MUSIC1,NGenIC,Panphasia,...) (A new MUSIC2 module is in development)
- Hybrid parallelization with MPI+OpenMP/threads.
- Requires FFTW v3, GSL (and HDF5 for output for some codes), as well as a CMake build system.
New modules/plugins can be easily added (see how to contribute in CONTRIBUTING.md file)
## Contributing and Licensing
See file CONTRIBUTING.md on how to contribute to the development. The software is licensed under GPL v3 (see file LICENSE).
See file CONTRIBUTING.md on how to contribute to the development.
The software is licensed under GPL v3 (see file LICENSE).
Please note the separate licensing for Panphasia (see external/panphasia/LICENSE).
## Citing in scientific publications or presentations
@ -41,30 +54,35 @@ We acknowledge support from the European Research Council (ERC) under the Europe
## Build Instructions
Clone code including submodules (currently only CLASS is used as a submodule):
git clone --recurse-submodules https://<username>@bitbucket.org/ohahn/monofonic.git
```
git clone --recurse-submodules https://<username>@bitbucket.org/ohahn/monofonic.git
```
Create build directory, configure, and build:
mkdir monofonic/build; cd monofonic/build
ccmake ..
make
```
mkdir monofonic/build; cd monofonic/build
ccmake ..
make
```
this should create an executable in the build directory.
If you run into problems with CMake not being able to find your local FFTW3 or HDF5 installation, it is best to give the path directly as
FFTW3_ROOT=<path> HDF5_ROOT=<path> ccmake ..
```
FFTW3_ROOT=<path> HDF5_ROOT=<path> ccmake ..
```
make sure to delete previous files generated by CMake before reconfiguring like this.
If you want to build on macOS, then it is strongly recommended to use GNU (or Intel) compilers instead of Apple's Clang. Install them e.g.
via homebrew and then configure cmake to use them instead of the macOS default compiler via
CC=gcc-9 CXX=g++-9 ccmake ..
```
CC=gcc-9 CXX=g++-9 ccmake ..
```
This is necessary since Apple's compilers haven't supported OpenMP for years.
## Running
@ -72,11 +90,15 @@ This is necessary since Apple's compilers haven't supported OpenMP for years.
There is an example parameter file 'example.conf' in the main directory. Possible options are explained in it, it can be run
as a simple argument, e.g. from within the build directory:
./monofonIC ../example.conf
```
./monofonIC ../example.conf
```
If you want to run with MPI, you need to enable MPI support via ccmake. Then you can launch in hybrid MPI+threads mode by
specifying the desired number of threads per task in the config file, and the number of tasks to be launched via
mpirun -np 16 ./monofonIC <path to config file>
```
mpirun -np 16 ./monofonIC <path to config file>
```
It will then run with 16 tasks times the number of threads per task specified in the config file.