{"id":22603492,"url":"https://github.com/celeritas-project/celeritas","last_synced_at":"2025-04-05T14:05:38.243Z","repository":{"id":37045610,"uuid":"250622820","full_name":"celeritas-project/celeritas","owner":"celeritas-project","description":"Celeritas is a new Monte Carlo transport code designed to accelerate scientific discovery in high energy physics by improving detector simulation throughput and energy efficiency using GPUs.","archived":false,"fork":false,"pushed_at":"2025-04-03T19:50:45.000Z","size":19883,"stargazers_count":74,"open_issues_count":93,"forks_count":37,"subscribers_count":10,"default_branch":"develop","last_synced_at":"2025-04-03T20:34:05.677Z","etag":null,"topics":["computational-physics","cuda","detector-simulation","gpu","hep","high-energy-physics","hip","monte-carlo","particle-transport"],"latest_commit_sha":null,"homepage":"https://celeritas-project.github.io/celeritas/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/celeritas-project.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.rst","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-27T19:06:46.000Z","updated_at":"2025-04-03T19:50:51.000Z","dependencies_parsed_at":"2023-10-17T06:24:47.232Z","dependency_job_id":"5fa52d64-ca72-431e-911f-b05bd24d1d16","html_url":"https://github.com/celeritas-project/celeritas","commit_stats":{"total_commits":1029,"total_committers":25,"mean_commits":41.16,"dds":0.3605442176870748,"last_synced_commit":"ff984cab8df80ed0c022e343f1b4b27e32d9af5c"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celeritas-project%2Fceleritas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celeritas-project%2Fceleritas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celeritas-project%2Fceleritas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celeritas-project%2Fceleritas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/celeritas-project","download_url":"https://codeload.github.com/celeritas-project/celeritas/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247345850,"owners_count":20924102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["computational-physics","cuda","detector-simulation","gpu","hep","high-energy-physics","hip","monte-carlo","particle-transport"],"created_at":"2024-12-08T13:06:32.766Z","updated_at":"2025-04-05T14:05:38.225Z","avatar_url":"https://github.com/celeritas-project.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Celeritas\n\nThe Celeritas project implements HEP detector physics on GPU accelerator\nhardware with the ultimate goal of supporting the massive computational\nrequirements of the [HL-LHC upgrade][HLLHC].\n\n[HLLHC]: https://home.cern/science/accelerators/high-luminosity-lhc\n\n# Documentation\n\nMost of the Celeritas documentation is readable through the codebase through a\ncombination of [static RST documentation][inline-docs] and Doxygen-markup\ncomments in the source code itself. The full [Celeritas user\ndocumentation][user-docs] (including selected code documentation incorporated\nby Breathe) and the [Celeritas code documentation][dev-docs] are mirrored on\nour GitHub pages site. You can generate these yourself (if the necessary\nprerequisites are installed) by\nsetting the `CELERITAS_BUILD_DOCS=ON` configuration option and running `ninja\ndoc` (user) or `ninja doxygen` (developer).\n\n[inline-docs]: doc/index.rst\n[user-docs]: https://celeritas-project.github.io/celeritas/user/index.html\n[dev-docs]: https://celeritas-project.github.io/celeritas/dev/index.html\n\n# Installation for applications\n\nThe easiest way to install Celeritas as a library/app is with Spack:\n- Follow these steps to install [Spack][spack-start].\n```console\n# Install Spack\ngit clone -c feature.manyFiles=true --depth=2 https://github.com/spack/spack.git\n# Add Spack to the shell environment\n# For bash/zsh/sh (See [spack-start] for other shell)\n. spack/share/spack/setup-env.sh\n```\n- Install Celeritas with\n```console\nspack install celeritas\n```\n- Add the Celeritas installation to your `PATH` with:\n```console\nspack load celeritas\n```\n\nTo install a GPU-enabled Celeritas build, you might have to make sure that VecGeom is also built with CUDA\nsupport if installing `celeritas+vecgeom`, which is the default geometry.\nTo do so, set Spack up its CUDA usage:\n```console\n. spack/share/spack/setup-env.sh\n# Set up CUDA\n$ spack external find cuda\n# Optionally set the default configuration. Replace \"cuda_arch=80\"\n# with your target architecture\n$ spack config add packages:all:variants:\"cxxstd=17 +cuda cuda_arch=80\"\n```\nand install Celeritas with this configuration:\n```console\n$ spack install celeritas\n```\nIf Celeritas was installed with a different configuration do\n```console\n$ spack install --fresh celeritas\n```\nIf you need to set a default configuration\n```console\n$ spack install celeritas +cuda cuda_arch=80\n```\n\n\nThen see the \"Downstream usage as a library\" section of the [installation\ndocumentation][install] for how to use Celeritas in your application or framework.\n\n[spack-start]: https://spack.readthedocs.io/en/latest/getting_started.html\n[install]: https://celeritas-project.github.io/celeritas/user/usage/installation.html\n\n# Installation for developers\n\nSince Celeritas is still under heavy development and is not yet full-featured\nfor downstream integration, you are likely installing it for development\npurposes. The [installation documentation][install] has a\ncomplete description of the code's dependencies and installation process for\ndevelopment.\n\nAs an example, if you have the [Spack][spack] package manager\ninstalled and want to do development on a CUDA system with Volta-class graphics\ncards, execute the following steps from within the cloned Celeritas source\ndirectory:\n```console\n# Set up CUDA (optional)\n$ spack external find cuda\n# Install celeritas dependencies\n$ spack env create celeritas scripts/spack.yaml\n$ spack env activate celeritas\n$ spack config add packages:all:variants:\"cxxstd=17 +cuda cuda_arch=80\"\n$ spack install\n# Configure, build, and test\n$ ./build.sh base\n```\n\nIf you don't use Spack but have all the dependencies you want (Geant4,\ngoogletest, VecGeom, etc.) in your `CMAKE_PREFIX_PATH`, you can configure and\nbuild Celeritas as you would any other project:\n```console\n$ mkdir build \u0026\u0026 cd build\n$ cmake ..\n$ make \u0026\u0026 ctest\n```\n\nCeleritas guarantees full compatibility and correctness only on the\ncombinations of compilers and dependencies tested under continuous integration.\nSee the configure output from the [GitHub runners](https://github.com/celeritas-project/celeritas/actions/workflows/push.yml) for the full list of combinations.\n- Compilers\n    - GCC 11, 12, 14\n    - Clang 10, 15, 18\n    - MSVC 19\n    - GCC 11.5 + NVCC 12.6\n    - ROCm Clang 18\n- Platforms\n    - Linux x86_64, ARM\n    - Windows x86_64\n- C++ standard\n    - C++17 and C++20\n- Dependencies:\n    - Geant4 11.0.4\n    - VecGeom 1.2.10\n\nPartial compatibility and correctness is available for an extended range of\nGeant4:\n- 10.5-10.7: no support for tracking manager offload\n- 11.0: no support for fast simulation offload\n\nNote also that navigation bugs in Geant4 and VecGeom older than the versions\nlisted above *will* cause failures in some geometry-related unit tests. Future\nbehavior changes in external packages may also cause failures.\n\nSince we compile with extra warning flags and avoid non-portable code, most\nother compilers *should* work.\nThe full set of configurations is viewable on CI platform [GitHub Actions][gha]).\nCompatibility fixes that do not cause newer versions to fail are welcome.\n\n[spack]: https://github.com/spack/spack\n[install]: https://celeritas-project.github.io/celeritas/user/usage/installation.html\n[gha]: https://github.com/celeritas-project/celeritas/actions\n\n# Development\n\n\u003c!-- This section should be kept in sync with the doc/development files --\u003e\n\nSee the [contribution guide][contributing-guidelines] for the contribution process,\n[the development guidelines][development-guidelines] for further\ndetails on coding in Celeritas, and [the administration guidelines][administration-guidelines] for community standards and roles.\n\n[contributing-guidelines]: https://celeritas-project.github.io/celeritas/user/development/contributing.html\n[development-guidelines]: https://celeritas-project.github.io/celeritas/user/development/coding.html\n[administration-guidelines]: https://celeritas-project.github.io/celeritas/user/development/administration.html\n\n# Directory structure\n\n| **Directory** | **Description**                                       |\n|---------------|-------------------------------------------------------|\n| **app**       | Source code for installed executable applications     |\n| **cmake**     | Implementation code for CMake build configuration     |\n| **doc**       | Code documentation and manual                         |\n| **example**   | Example applications and input files                  |\n| **external**  | Automatically fetched external CMake dependencies     |\n| **scripts**   | Development and continuous integration helper scripts |\n| **src**       | Library source code                                   |\n| **test**      | Unit tests                                            |\n\n# Citing Celeritas\n\n\u003c!-- This section should be kept in sync with the CITATIONS.cff file --\u003e\n\nIf using Celeritas in your work, we ask that you cite the following article:\n\n\u003e 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.\n\nSee also its [DOECode](https://www.osti.gov/doecode/biblio/94866) registration:\n\n\u003e Johnson, Seth R., Amanda Lund, Soon Yung Jun, Stefano Tognini, Guilherme Lima, Philippe Canal, Ben Morgan, Tom Evans, and Julien Esseiva. 2022. “Celeritas.” https://doi.org/10.11578/dc.20221011.1.\n\nA continually evolving list of works authored by (or with content authored by)\ncore team members is continually updated at [our publications page](https://github.com/celeritas-project/celeritas/blob/doc/gh-pages-base/publications.md)\nand displayed on [the official project web site](https://celeritas.ornl.gov/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceleritas-project%2Fceleritas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fceleritas-project%2Fceleritas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceleritas-project%2Fceleritas/lists"}