diff --git a/CITATION.cff b/CITATION.cff index ddbd1b0cf2..7fdcb5418c 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -17,6 +17,9 @@ # doi = {10.1051/epjconf/202429511005} # } # +# Note: This information is also present in the README.md and needs to +# kept in sync. +# # (CFF): cff-version: 1.2.0 diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 2fc3fb986e..2226eecef2 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -118,7 +118,7 @@ Congratulations! .. [resol] When you've fully implemented the reviewer's comment, you may mark it as resolved without commenting. Do not resolve a conversation if you - disagree with the feed: instead, post your view in a follow-on comment and + disagree with the feedback: instead, post your view in a follow-on comment and wait for the reviewer to respond. If you comment, whether to supplement your change or to iterate with the reviewer, please do not resolve the conversation since that makes it hard to find your comment. diff --git a/README.md b/README.md index 26ba506add..0331e59b33 100644 --- a/README.md +++ b/README.md @@ -25,19 +25,47 @@ doc` (user) or `ninja doxygen` (developer). # Installation for applications The easiest way to install Celeritas as a library/app is with Spack: -- Follow the first two steps above to install [Spack][spack-start] and set up its CUDA usage. -- Install Celeritas with `spack install celeritas` -- Use `spack load celeritas` to add the installation to your `PATH`. +- Follow these steps to install [Spack][spack-start]. +```console +# Install Spack +git clone -c feature.manyFiles=true --depth=2 https://github.com/spack/spack.git +# Add Spack to the shell environment +# For bash/zsh/sh (See [spack-start] for other shell) +``` +- Install Celeritas with +```console +spack install celeritas +```console +- Add the Celeritas installation to your `PATH` with: +```console +spack load celeritas +``` To install a GPU-enabled Celeritas build, you might have to make sure that VecGeom is also built with CUDA support if installing `celeritas+vecgeom`, which is the default geometry. -To do so, set the following configuration: +To do so, set Spack up its CUDA usage: +```console +. spack/share/spack/setup-env.sh +# Set up CUDA +$ spack external find cuda +# Optionally set the default configuration. Replace "cuda_arch=80" +# with your target architecture +$ spack config add packages:all:variants:"cxxstd=17 +cuda cuda_arch=80" +``` +and install Celeritas with this configuration: +```console +$ spack install celeritas +``` +If Celeritas was installed with a different configuration do +```console +$ spack install --fresh celeritas +``` +If you need to set a default configuration ```console -# Replace cuda_arch=80 with your target architecture -$ spack config add packages:vecgeom:variants:"cxxstd=17 +cuda cuda_arch=80" $ spack install celeritas +cuda cuda_arch=80 ``` + Then see the "Downstream usage as a library" section of the [installation documentation][install] for how to use Celeritas in your application or framework. @@ -62,7 +90,7 @@ $ spack external find cuda # Install celeritas dependencies $ spack env create celeritas scripts/spack.yaml $ spack env activate celeritas -$ spack config add packages:all:variants:"cxxstd=17 +cuda cuda_arch=70" +$ spack config add packages:all:variants:"cxxstd=17 +cuda cuda_arch=80" $ spack install # Configure, build, and test $ ./build.sh base @@ -97,12 +125,11 @@ Geant4: Since we compile with extra warning flags and avoid non-portable code, most other compilers *should* work. -The full set of configurations is viewable on CI platforms ([Jenkins][jenkins] and [GitHub Actions][gha]). +The full set of configurations is viewable on CI platform [GitHub Actions][gha]). Compatibility fixes that do not cause newer versions to fail are welcome. [spack]: https://github.com/spack/spack [install]: https://celeritas-project.github.io/celeritas/user/main/installation.html -[jenkins]: https://cloud.cees.ornl.gov/jenkins-ci/job/celeritas/job/develop [gha]: https://github.com/celeritas-project/celeritas/actions # Development @@ -111,8 +138,8 @@ See the [contribution guide][contributing-guidelines] for the contribution proce [the development guidelines][development-guidelines] for further details on coding in Celeritas, and [the administration guidelines][administration-guidelines] for community standards and roles. -[contributing-guidelines]: https://celeritas-project.github.io/celeritas/user/appendix/development.html#contributing-to-celeritas -[development-guidelines]: https://celeritas-project.github.io/celeritas/user/appendix/development.html#code-development-guidelines +[contributing-guidelines]: https://celeritas-project.github.io/celeritas/user/development/contributing.html +[development-guidelines]: https://celeritas-project.github.io/celeritas/user/development/coding.html [administration-guidelines]: https://celeritas-project.github.io/celeritas/user/appendix/administration.html # Directory structure @@ -130,6 +157,8 @@ details on coding in Celeritas, and [the administration guidelines][administrati # Citing Celeritas + + If using Celeritas in your work, we ask that you cite the following article: > Johnson, Seth R., Amanda Lund, Philippe Canal, Stefano C. Tognini, Julien Esseiva, Soon Yung Jun, Guilherme Lima, et al. 2024. “Celeritas: Accelerating Geant4 with GPUs.” EPJ Web of Conferences 295:11005. https://doi.org/10.1051/epjconf/202429511005.