https://github.com/lanl/artemis
Astrophysical multifluid radiation hydrodynamics code
https://github.com/lanl/artemis
Last synced: about 1 year ago
JSON representation
Astrophysical multifluid radiation hydrodynamics code
- Host: GitHub
- URL: https://github.com/lanl/artemis
- Owner: lanl
- License: other
- Created: 2024-11-02T19:31:28.000Z (over 1 year ago)
- Default Branch: develop
- Last Pushed: 2024-12-04T16:48:21.000Z (over 1 year ago)
- Last Synced: 2024-12-04T17:40:03.907Z (over 1 year ago)
- Language: C++
- Homepage: https://lanl.github.io/artemis/
- Size: 5.8 MB
- Stars: 13
- Watchers: 6
- Forks: 5
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Artemis
Contributors: Adam Dempsey, Shengtai Li, Alex Long, Patrick Mullen, Ben Ryan, Ryan
Wollaeger
Software release number O4811
# Documentation
The latest documentation is hosted [here](https://lanl.github.io/artemis/index.html)
To build the documentation locally,
cd artemis/doc/
make html
If you encounter errors you may need to install additional python packages:
pip install sphinx pyyaml sphinx_rtd_theme
Once the documentation is built, if you have built the docs on a remote server (e.g. darwin), to view
the documentation in your browser on your local machine, from a terminal on your local machine:
ssh -L 8080:localhost:8080 brryan@darwin-fe.lanl.gov
cd /path/to/artemis/doc/_build/html
python3 -m http.server 8080
Then again on your local machine navigate your browser to
http://localhost:8080
and the documentation should display.
# Required dependencies
* CMake 3.13 or greater
* C++ compiler (C++17 support)
* MPI
* OpenMP
* HDF5
* Parthenon
* singularity-eos
# Environment
On deployed platforms, the environment with required dependencies can be set up via
source env/bash
Currently supported computers/partitions are:
## Darwin
skylake-gold
volta-x86 (gpu)
## Chicoma
cpu
gpu
## Venado
gg (cpu)
gh (gpu)
# Installation
git submodule update --init --recursive
mkdir build
cd build
cmake ../
make -j install
## Submodules
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
## Formatting the software
Any contributions to the Artemis 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`
## Testing
There is a suite of tests in the `tst/` directory. Tests are run with the included `run_tests.py`
script. This script can be run in three ways:
1. With default arguments, where the current version of the source will be built. The resulting
executable can be saved for reuse with `--save_build`, and if saved can be reused in subsequent test
runs with `--reuse_build`. Note that `--save_build` must continue to be supplied as well to avoid
the reused build being deleted after the tests are run.
2. If the `run_tests.py` script is called from a directory with a valid `artemis` executable, that
executable will be used for testing and will not be cleaned up afterwards.
3. If the path to an `artemis` executable is provided to the `--exe` option of `run_tests.py`, that
executable will be used for testing and will not be cleaned up afterwards.
In all cases, the tests will be run from a `tst` directory created in the same folder as the
executable being used. Figures will be created in `artemis/tst/figs` and the log file in
`artemis/tst`.
To run the full regression suite, do
python3 run_tests.py regression.suite
You can also pass a list of individual tests to the script, or create your own suite file.
## CI
We use the github 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
A portion of the CI is run on LANL's internal Darwin platform. To launch this CI job, someone with
Darwin access (usually a LANL employee) must first create a Github Personal Access Token, like so:
- `github.com` profile -> `Settings` -> `Developer Settings` -> `Personal Access Tokens` -> `Tokens (classic)`
- Click the `Generate New Token` button -> `Generate New Token (classic)`
- Name it something like `artemis_token` in the `Note` box
- Click the `workflow` checkbox (which will also check the `repo` boxes)
- `Generate token`
- You only get to see the token once, so immediately copy it.
Store the token securely in your own environment as `ARTEMIS_GITHUB_TOKEN`, e.g. in your Darwin `~/.bashrc`:
export ARTEMIS_GITHUB_TOKEN=[token]
and then, again from Darwin, manually launch the CI runner:
cd artemis
./tst/launch_ci_runner.py [Number of the github PR]
Note that `launch_ci_runner.py` will create a temporary checkout of the current state of the branch associated
with this PR according to the `origin` remote, so you don't need to worry about the state of your local checkout
of `artemis`.
## Release
Artemis is released under the BSD 3-Clause License. For more details see the LICENSE.md
file.