impactx

high-performance modeling of beam dynamics in particle accelerators with collective effects

https://github.com/blast-impactx/impactx

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    4 of 17 committers (23.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.5%) to scientific vocabulary

Keywords

accelerator amrex beam-dynamics csr gpu particle particle-in-cell physics pic research simulation space-charge

Keywords from Contributors

hpsf adaptive-mesh-refinement amr atmospheric-modelling mesh energy-system-model datacleaner data-profilers optim geophysics
Last synced: 6 months ago · JSON representation

Repository

high-performance modeling of beam dynamics in particle accelerators with collective effects

Basic Info
Statistics
  • Stars: 46
  • Watchers: 5
  • Forks: 27
  • Open Issues: 147
  • Releases: 35
Topics
accelerator amrex beam-dynamics csr gpu particle particle-in-cell physics pic research simulation space-charge
Created over 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Zenodo

README.md

ImpactX

CI Status Documentation Status License ImpactX Supported Platforms
DOI (source) DOI (paper)
Language: C++17 Language: Python

ImpactX: an s-based beam dynamics code including space charge effects. This is the next generation of the IMPACT-Z code.

Documentation

In order to learn how to install and run the code, please see the online documentation: https://impactx.readthedocs.io

  • ImpactX Doxygen: https://impactx.readthedocs.io/en/latest/_static/doxyhtml
  • AMReX Doxygen: https://amrex-codes.github.io/amrex/doxygen
  • WarpX Doxygen: https://warpx.readthedocs.io/en/latest/_static/doxyhtml

Contributing

AMReX

Our workflow is described in CONTRIBUTING.rst.

Developer Environment

Please see our developer installation section of the documentation for an easy install of our software dependencies.

Get the Source Code

Before you start, you will need a copy of the ImpactX source code:

bash git clone git@github.com:BLAST-ImpactX/impactx.git cd impactx

Compile

```bash

find dependencies & configure

cmake -S . -B build

compile

cmake --build build -j 4 ```

That's all! ImpactX binaries are now in build/bin/. Most people execute these binaries directly or copy them out.

You can inspect and modify build options after running cmake -S . -B build with either

bash ccmake build

or by adding arguments with -D<OPTION>=<VALUE> to the first CMake call, e.g.:

bash cmake -S . -B build -DImpactX_COMPUTE=CUDA -DImpactX_MPI=OFF

Python Compile

```bash

find dependencies & configure

cmake -S . -B build -DImpactX_PYTHON=ON

compile & install

cmake --build build -j 4 --target pip_install ```

Run

An executable ImpactX binary with the current compile-time options encoded in its file name will be created in build/bin/.

Additionally, a symbolic link named impactx can be found in that directory, which points to the last built ImpactX executable.

The command-line syntax for this executable is: ```console Usage: impactx [some.overwritten.option=value]...

Mandatory arguments (remove the <>): inputs-file the path to an input file; can be relative to the current working directory or absolute. Example: input_fodo.in

Optional arguments (remove the []): options this can overwrite any line in an inputs-file Example: quad1.ds=0.5 sbend1.rc=1.5

Examples: In the current working directory, there is a file "inputfodo.in" and the "impactx" executable. The line to execute would look like this: ./impactx inputfodo.in

In the current working directory, there is a file "inputfodo.in" and the executable "impactx" is in a directory that is listed in the "PATH" environment variable. The line to execute would look like this: impactx inputfodo.in

In the current working directory, there is a file "inputfodo.in" and the "impactx" executable. We want to overwrite the segment length of the beamline element "quad1" that is already defined in it. We also want to change the radius of curvature of the bending magnet "sbend1" to a different value than in the file "inputfodo.in". The line to execute would look like this: ./impactx input_fodo.in quad1.ds=0.5 sbend1.rc=1.5 ```

Test

In order to run our tests, you need to have a few Python packages installed: console python3 -m pip install --upgrade pip python3 -m pip install --upgrade build packaging setuptools[core] wheel pytest pytest-benchmark python3 -m pip install --upgrade -r tests/python/requirements.txt

You can run all our tests with:

console ctest --test-dir build --output-on-failure

Further options: * help: ctest --test-dir build --help * list all tests: ctest --test-dir build -N * only run tests that have "FODO" in their name: ctest --test-dir build -R FODO

Acknowledgements

This 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.

ImpactX 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.

Copyright Notice

ImpactX 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). All rights reserved.

If you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Intellectual Property Office at IPO@lbl.gov.

Please see the full license agreement in LICENSE.txt.
Please see the notices in NOTICE.txt.
The SPDX license identifier is BSD-3-Clause-LBNL.

Owner

  • Name: ImpactX
  • Login: BLAST-ImpactX
  • Kind: organization

high-performance modeling of beam dynamics in particle accelerators with collective effects

GitHub Events

Total
  • Create event: 20
  • Commit comment event: 3
  • Release event: 3
  • Issues event: 78
  • Watch event: 12
  • Delete event: 13
  • Issue comment event: 188
  • Push event: 163
  • Pull request event: 279
  • Pull request review event: 402
  • Pull request review comment event: 367
  • Fork event: 2
Last Year
  • Create event: 20
  • Commit comment event: 3
  • Release event: 3
  • Issues event: 78
  • Watch event: 12
  • Delete event: 13
  • Issue comment event: 188
  • Push event: 163
  • Pull request event: 279
  • Pull request review event: 402
  • Pull request review comment event: 367
  • Fork event: 2

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 853
  • Total Committers: 17
  • Avg Commits per committer: 50.176
  • Development Distribution Score (DDS): 0.366
Past Year
  • Commits: 289
  • Committers: 13
  • Avg Commits per committer: 22.231
  • Development Distribution Score (DDS): 0.467
Top Committers
Name Email Commits
Axel Huebl a****l@p****a 541
Chad Mitchell 4****9 119
pre-commit-ci[bot] 6****] 95
Parthib Roy 1****0 36
Marco Garten m****n@l****v 20
Ryan Sandberg R****g@l****v 10
Andrew Myers a****2@g****m 6
Remi Lehe r****e@n****g 6
dependabot[bot] 4****] 6
Edoardo Zoni 5****i 4
Ji Qiang 3****l 3
Weiqun Zhang W****g@l****v 2
Alexander Sinn 6****n 1
Sajid Ali s****1@u****u 1
TAN WEI HOU 1****u 1
Alex Bojanich a****3@g****m 1
Paul Moeller m****r@b****z 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 52
  • Total pull requests: 160
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 5 days
  • Total issue authors: 11
  • Total pull request authors: 10
  • Average comments per issue: 0.56
  • Average comments per pull request: 0.36
  • Merged pull requests: 111
  • Bot issues: 0
  • Bot pull requests: 19
Past Year
  • Issues: 51
  • Pull requests: 160
  • Average time to close issues: 8 days
  • Average time to close pull requests: 5 days
  • Issue authors: 10
  • Pull request authors: 10
  • Average comments per issue: 0.53
  • Average comments per pull request: 0.36
  • Merged pull requests: 111
  • Bot issues: 0
  • Bot pull requests: 19
Top Authors
Issue Authors
  • ax3l (21)
  • cemitch99 (13)
  • proy30 (5)
  • sweber04 (4)
  • keehong1 (3)
  • SchroederSa (1)
  • jonasbjorklundsvensson (1)
  • EZoni (1)
  • nikitakuklev (1)
  • egstern (1)
  • n01r (1)
Pull Request Authors
  • ax3l (77)
  • proy30 (40)
  • pre-commit-ci[bot] (17)
  • cemitch99 (17)
  • kyrsjo (3)
  • dependabot[bot] (2)
  • egstern (1)
  • AlexanderSinn (1)
  • EZoni (1)
  • atmyers (1)
Top Labels
Issue Labels
component: python (10) component: elements (7) component: dashboard (7) bug (6) bug: affects latest release (6) question (5) tracking: particles (5) component: documentation (4) component: distributions (4) install (3) component: third party (2) backend: hip (2) component: diagnostics (2) backend: cuda (2) help wanted (2) machine / system (1) component: space charge (1) good first issue (1) backend: openmp (1) component: CSR (1) enhancement (1) component: core (1) backend: sycl (1) component: tests (1)
Pull Request Labels
component: tests (36) component: dashboard (27) bug (23) component: python (23) bug: affects latest release (19) component: elements (16) component: documentation (13) Performance optimization (10) backend: openmp (7) component: space charge (7) tracking: particles (7) backend: cuda (6) component: third party (5) backend: hip (5) install (5) backend: sycl (4) changes input scripts / defaults (4) component: diagnostics (4) tracking: envelope (4) dependencies (3) warning (3) workaround (3) machine / system (3) component: CSR (2) enhancement (2) github_actions (2) component: distributions (1) help wanted (1) tracking: reference orbit (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 1,613 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 11
  • Total maintainers: 1
pypi.org: impactx-noacc

ImpactX: the next generation of the IMPACT-Z beam dynamics code

  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1,613 Last month
Rankings
Dependent packages count: 9.5%
Average: 31.5%
Dependent repos count: 53.5%
Maintainers (1)
Last synced: 6 months ago
conda-forge.org: impactx

ImpactX enables high-performance modeling of beam dynamics in particle accelerators with collective effects. This is the next generation of the IMPACT-Z code. ImpactX runs on modern GPUs or CPUs alike, provides user-friendly interfaces suitable for AI/ML workflows, has many benchmarks to ensure its correctness, and an extensive documentation.

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 34.0%
Forks count: 39.0%
Average: 43.8%
Stargazers count: 50.9%
Dependent packages count: 51.2%
Last synced: 6 months ago

Dependencies

.github/workflows/codeql.yml actions
  • actions/checkout v3 composite
  • advanced-security/filter-sarif v1 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/autobuild v2 composite
  • github/codeql-action/init v2 composite
  • github/codeql-action/upload-sarif v2 composite
.github/workflows/cuda.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
.github/workflows/hip.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
.github/workflows/source.yml actions
  • actions/checkout v3 composite
.github/workflows/ubuntu.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
.github/workflows/windows.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • seanmiddleditch/gha-setup-ninja master composite
docs/requirements.txt pypi
  • breathe *
  • docutils <=0.16
  • pygments *
  • recommonmark *
  • sphinx >=2.0
  • sphinx-design *
  • sphinx_rtd_theme >=0.3.1
examples/requirements.txt pypi
  • matplotlib *
  • numpy *
  • pandas *
  • scipy *
requirements.txt pypi
  • numpy *
requirements_mpi.txt pypi
  • mpi4py >=2.1.0
.github/workflows/macos.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
.github/workflows/tooling.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
pyproject.toml pypi
setup.py pypi