{"id":26286908,"url":"https://github.com/BLAST-ImpactX/impactx","last_synced_at":"2025-03-14T21:01:12.364Z","repository":{"id":37825443,"uuid":"387853787","full_name":"BLAST-ImpactX/impactx","owner":"BLAST-ImpactX","description":"high-performance modeling of beam dynamics in particle accelerators with collective effects","archived":false,"fork":false,"pushed_at":"2025-03-13T09:03:23.000Z","size":2676,"stargazers_count":35,"open_issues_count":108,"forks_count":24,"subscribers_count":6,"default_branch":"development","last_synced_at":"2025-03-13T09:54:24.318Z","etag":null,"topics":["accelerator","beam-dynamics","csr","gpu","particle","particle-in-cell","physics","pic","research","simulation","space-charge"],"latest_commit_sha":null,"homepage":"https://impactx.readthedocs.io","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/BLAST-ImpactX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.rst","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-20T16:37:22.000Z","updated_at":"2025-03-13T09:03:28.000Z","dependencies_parsed_at":"2023-11-19T03:24:56.622Z","dependency_job_id":"d7589120-1432-4f5a-8bb0-4c37cb9c8985","html_url":"https://github.com/BLAST-ImpactX/impactx","commit_stats":{"total_commits":648,"total_committers":17,"mean_commits":38.11764705882353,"dds":0.3472222222222222,"last_synced_commit":"71d0e5b3f7a5e27f337c303c1fde61700f5ea702"},"previous_names":["blast-impactx/impactx","ecp-warpx/impactx"],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BLAST-ImpactX%2Fimpactx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BLAST-ImpactX%2Fimpactx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BLAST-ImpactX%2Fimpactx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BLAST-ImpactX%2Fimpactx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BLAST-ImpactX","download_url":"https://codeload.github.com/BLAST-ImpactX/impactx/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243646617,"owners_count":20324585,"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":["accelerator","beam-dynamics","csr","gpu","particle","particle-in-cell","physics","pic","research","simulation","space-charge"],"created_at":"2025-03-14T21:00:38.577Z","updated_at":"2025-03-14T21:01:12.305Z","avatar_url":"https://github.com/BLAST-ImpactX.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"# ImpactX\n\n[![CI Status](https://github.com/BLAST-ImpactX/impactx/actions/workflows/ubuntu.yml/badge.svg)](https://github.com/BLAST-ImpactX/impactx/actions/workflows/ubuntu.yml)\n[![Documentation Status](https://readthedocs.org/projects/impactx/badge/?version=latest)](https://impactx.readthedocs.io)\n[![License ImpactX](https://img.shields.io/badge/license-BSD--3--Clause--LBNL-blue.svg)](https://spdx.org/licenses/BSD-3-Clause-LBNL.html)\n[![Supported Platforms](https://img.shields.io/badge/platforms-linux%20|%20osx%20|%20win-blue)](https://impactx.readthedocs.io/en/latest/install/users.html)  \n[![DOI (source)](https://img.shields.io/badge/DOI%20(source)-10.5281/zenodo.6954922-blue.svg)](https://doi.org/10.5281/zenodo.6954922)\n[![DOI (paper)](https://img.shields.io/badge/DOI%20(paper)-10.18429%2FJACoW--NAPAC2022--TUYE2-blue.svg)](https://doi.org/10.18429/JACoW-NAPAC2022-TUYE2)  \n[![Language: C++17](https://img.shields.io/badge/language-C%2B%2B17-orange.svg)](https://isocpp.org/)\n[![Language: Python](https://img.shields.io/badge/language-Python-orange.svg)](https://python.org/)\n\nImpactX: an s-based beam dynamics code including space charge effects.\nThis is the next generation of the [IMPACT-Z](https://github.com/impact-lbl/IMPACT-Z) code.\n\n## Documentation\n\nIn order to learn how to install and run the code, please see the online documentation:\nhttps://impactx.readthedocs.io\n\n* ImpactX Doxygen: https://impactx.readthedocs.io/en/latest/_static/doxyhtml\n* AMReX Doxygen: https://amrex-codes.github.io/amrex/doxygen\n* WarpX Doxygen: https://warpx.readthedocs.io/en/latest/_static/doxyhtml\n\n## Contributing\n\n[![AMReX](https://img.shields.io/static/v1?label=\"runs%20on\"\u0026message=\"AMReX\"\u0026color=\"blueviolet\")](https://amrex-codes.github.io/)\n\nOur workflow is described in [CONTRIBUTING.rst](CONTRIBUTING.rst).\n\n## Developer Environment\n\nPlease see our [developer installation section](https://impactx.readthedocs.io/en/latest/install/dependencies.html#install-dependencies) of the documentation for an easy install of our software dependencies.\n\n## Get the Source Code\n\nBefore you start, you will need a copy of the ImpactX source code:\n\n```bash\ngit clone git@github.com:BLAST-ImpactX/impactx.git\ncd impactx\n```\n\n## Compile\n\n```bash\n# find dependencies \u0026 configure\ncmake -S . -B build\n\n# compile\ncmake --build build -j 4\n```\n\nThat's all!\nImpactX binaries are now in `build/bin/`.\nMost people execute these binaries directly or copy them out.\n\nYou can inspect and modify build options after running `cmake -S . -B` build with either\n\n```bash\nccmake build\n```\n\nor by adding arguments with `-D\u003cOPTION\u003e=\u003cVALUE\u003e` to the first CMake call, e.g.:\n\n```bash\ncmake -S . -B build -DImpactX_COMPUTE=CUDA -DImpactX_MPI=OFF\n```\n\n### Python Compile\n\n```bash\n# find dependencies \u0026 configure\ncmake -S . -B build -DImpactX_PYTHON=ON\n\n# compile \u0026 install\ncmake --build build -j 4 --target pip_install\n```\n\n## Run\n\nAn executable ImpactX binary with the current compile-time options encoded in its file name will be created in `build/bin/`.\n\nAdditionally, a symbolic link named `impactx` can be found in that directory, which points to the last built ImpactX executable.\n\nThe command-line syntax for this executable is:\n```console\nUsage: impactx \u003cinputs-file\u003e [some.overwritten.option=value]...\n\nMandatory arguments (remove the \u003c\u003e):\n  inputs-file     the path to an input file; can be relative to the current\n                  working directory or absolute.\n                  Example: input_fodo.in\n\nOptional arguments (remove the []):\n  options         this can overwrite any line in an inputs-file\n                  Example: quad1.ds=0.5 sbend1.rc=1.5\n\nExamples:\n  In the current working directory, there is a file \"input_fodo.in\" and the\n  \"impactx\" executable.\n  The line to execute would look like this:\n    ./impactx input_fodo.in\n\n  In the current working directory, there is a file \"input_fodo.in\" and the\n  executable \"impactx\" is in a directory that is listed in the \"PATH\"\n  environment variable.\n  The line to execute would look like this:\n    impactx input_fodo.in\n\n  In the current working directory, there is a file \"input_fodo.in\" and the\n  \"impactx\" executable. We want to voerwrite the segment length of the beamline\n  element \"quad1\" that is already defined in it. We also want to change the\n  radius of curvature of the bending magnet \"sbend1\" to a different value than\n  in the file \"input_fodo.in\".\n  The line to execute would look like this:\n    ./impactx input_fodo.in quad1.ds=0.5 sbend1.rc=1.5\n```\n\n## Test\n\nIn order to run our tests, you need to have a few Python packages installed:\n```console\npython3 -m pip install --upgrade pip\npython3 -m pip install --upgrade build packaging setuptools[core] wheel pytest\npython3 -m pip install --upgrade -r tests/python/requirements.txt\n```\n\nYou can run all our tests with:\n\n```console\nctest --test-dir build --output-on-failure\n```\n\nFurther options:\n* help: `ctest --test-dir build --help`\n* list all tests: `ctest --test-dir build -N`\n* only run tests that have \"FODO\" in their name: `ctest --test-dir build -R FODO`\n\n## Acknowledgements\n\nThis work was supported by the Laboratory Directed Research and Development Program of Lawrence Berkeley National Laboratory under U.S. Department of Energy Contract No. DE-AC02-05CH11231.\n\nImpactX is supported by the CAMPA collaboration, a project of the U.S. Department of Energy, Office of Science, Office of Advanced Scientific Computing Research and Office of High Energy Physics, Scientific Discovery through Advanced Computing (SciDAC) program.\n\n## Copyright Notice\n\nImpactX Copyright (c) 2022, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy).\nAll rights reserved.\n\nIf you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Intellectual Property Office at IPO@lbl.gov.\n\nPlease see the full license agreement in [LICENSE.txt](LICENSE.txt).  \nPlease see the notices in [NOTICE.txt](NOTICE.txt).  \nThe SPDX license identifier is `BSD-3-Clause-LBNL`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBLAST-ImpactX%2Fimpactx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBLAST-ImpactX%2Fimpactx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBLAST-ImpactX%2Fimpactx/lists"}