Skip to content

For IMPACT-Z beam dynamics code users and developers

License

Notifications You must be signed in to change notification settings

impact-lbl/IMPACT-Z

Repository files navigation

IMPACT-Z is a parallel+serial particle-in-cell code whose primary purpose is to model the dynamics of multiple charged particle beams in linear and ring acceler ators. The code uses longitudinal position (z) as independent variable and includes the effects of externally applied fields from magnets and accelerating cavities as well as the effect of self-fields (space charge fields). Mathematically, the code solves the Vlasov/Poisson equations using a particle-based technique. The code, which is written in Fortran90 with MPI, runs on both single-processor and multi-processor systems. It has been applied to studies of halo formation and coupling resonance in high intensity beams, microbunching instability in high brightness electron linac, beam dynamics in SNS linac, JARPC linac, RIA driver linac, CERN superconducting linac, LEDA halo experiment, Proton Synchrotron at CERN, etc.

The ImpactZexeMac, ImpactZexeUbuntu, and ImpactZexeWin.exe are old executables.

Main contact: Ji Qiang ([email protected]), Lawrence Berkeley National Laboratory

Compiling The Code

If you are new to CMake, this short tutorial from the HEP Software foundation is the perfect place to get started with it.

If you just want to use CMake to build the project, jump into sections 1. Introduction, 2. Building with CMake and 9. Finding Packages.

Unix

Single Processor Code:

# inside the IMPACT-Z src/ directory:
cmake -S . -B build
cmake --build build
# the executable in now in build/

# this command needs sudo if you install into system paths:
cmake --build build --target install

Multi Processor Code:

# inside the IMPACT-Z src/ directory:
cmake -S . -B build -DUSE_MPI=ON
cmake --build build
cmake --build build --target install