Jaybenne IMC code for photon transport in the performance-portable block-structured AMR framework parthenon (https://github.com/lanl/parthenon)
Contributors: Ben R. Ryan, Patrick Mullen, Alex Long, Ryan Wollaeger
For software licensing refer to LICENSE.md
Copyright assertion O4812
- CMake 3.13 or greater
- C++ compiler (C++17 support)
- MPI
- OpenMP
- HDF5
- Parthenon
On deployed platforms, the environment with required dependencies can be set up via
source env/bash
Currently supported computers/partitions are:
power9-rhel7
volta-x86
skylake-gold
Dependencies (parthenon, singularity-*) are ingested via submodules and compiled alongside
jaybenne. The most reliable way to update submodule versions is to simply remove the
external
folder:
rm -rf external/
and re-initialize the submodules
git submodule update --init --recursive
git submodule update --init --recursive
mkdir build
cd build
cmake ../
make -j
Any contributions to the ngPFC software must be compliant with the C++ clang formatter and
the Python black formatter. Linting contributions can be done via an automated formatting
script:
CFM=clang-format-12 ./style/format.sh
We use the gitlab CI for regression testing. The CI will not run if the PR is marked "Draft:" or "WIP:". Removing these labels from the title will not automatically launch the CI. To launch the CI with an empty commit, do
git commit --allow-empty -m "trigger pipeline" && git push
cd build/src
mpiexec -n 1 ./mcblock -i ../../prob/jbinput.stepdiff