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

Merge pull request #4 from cosmo-sims/master

merge from master
This commit is contained in:
Oliver Hahn 2024-07-15 11:16:24 +02:00 committed by GitHub
commit 8cab27441f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 109 additions and 1 deletions

View file

@ -0,0 +1,78 @@
# This starter workflow is for a CMake project running on multiple platforms. There is a different starter workflow if you just want a single platform.
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml
name: CMake on multiple platforms
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
# Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable.
fail-fast: false
# Set up a matrix to run the following 3 configurations:
# 1. <Windows, Release, latest MSVC compiler toolchain on the default runner image, default generator>
# 2. <Linux, Release, latest GCC compiler toolchain on the default runner image, default generator>
# 3. <Linux, Release, latest Clang compiler toolchain on the default runner image, default generator>
#
# To add more build types (Release, Debug, RelWithDebInfo, etc.) customize the build_type list.
matrix:
os: [ubuntu-latest]
build_type: [Release]
c_compiler: [gcc]
include:
- os: ubuntu-latest
c_compiler: gcc
cpp_compiler: g++
steps:
- uses: actions/checkout@v4
- name: Set reusable strings
# Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.
id: strings
shell: bash
run: |
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
- name: Install prerequisite libraries
# Install 3rd party libraries
run: |
sudo apt-get update -qq
sudo apt-get install gcc g++ gfortran -qq -y
gcc --version
# Install a CMake 3.0.2 version.
sudo apt-get install git cmake pkg-config cmake-data -y --force-yes
# Print the CMake version.
cmake --version
# Install the necessary libraries
sudo apt-get install libfftw3-mpi-dev libfftw3-dev -y
sudo apt-get install libgsl-dev -y
sudo apt-get install libhdf5-serial-dev -y
sudo apt-get install openmpi-bin libopenmpi-dev -y
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: >
cmake -B ${{ steps.strings.outputs.build-output-dir }}
-DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }}
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-S ${{ github.workspace }}
- name: Build
# Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }}
- name: Test
working-directory: ${{ steps.strings.outputs.build-output-dir }}
# Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest --build-config ${{ matrix.build_type }}

27
CITATION.bib Normal file
View file

@ -0,0 +1,27 @@
@article{MONOFONIC:3LPT,
author = {Michaux, Micha\"el and Hahn, Oliver and Rampf, Cornelius and Angulo, Raul E.},
title = "{Accurate initial conditions for cosmological N-body simulations: Minimizing truncation and discreteness errors}",
eprint = "2008.09588",
archivePrefix = "arXiv",
primaryClass = "astro-ph.CO",
doi = "10.1093/mnras/staa3149",
journal = "Mon. Not. Roy. Astron. Soc.",
volume = "500",
number = "1",
pages = "663--683",
year = "2020"
}
@article{MONOFONIC:BARYONS,
author = "Hahn, Oliver and Rampf, Cornelius and Uhlemann, Cora",
title = "{Higher order initial conditions for mixed baryon\textendash{}CDM simulations}",
eprint = "2008.09124",
archivePrefix = "arXiv",
primaryClass = "astro-ph.CO",
doi = "10.1093/mnras/staa3773",
journal = "Mon. Not. Roy. Astron. Soc.",
volume = "503",
number = "1",
pages = "426--445",
year = "2021"
}

View file

@ -1,3 +1,5 @@
[![CMake on multiple platforms](https://github.com/cosmo-sims/monofonIC/actions/workflows/cmake-multi-platform.yml/badge.svg)](https://github.com/cosmo-sims/monofonIC/actions/workflows/cmake-multi-platform.yml)
# 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).
@ -51,6 +53,7 @@ If you use MUSIC2-monofonIC in your scientific work, you are required to acknowl
- For baryon+CDM sims, or PPT numerics related aspects: Hahn et al. 2020 [arXiv:2008.09124](https://arxiv.org/abs/2008.09124)
You can find the respective BibTeX entries in the enclosed CITATION.bib file.
## Acknowledgments
@ -107,4 +110,4 @@ specifying the desired number of threads per task in the config file, and the nu
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.
It will then run with 16 tasks times the number of threads per task specified in the config file.