wakis
3D electromagnetic time-domain solver, specialized in wake potential and beam-coupling impedance computation for particle accelerators
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 9 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.7%) to scientific vocabulary
Keywords
Repository
3D electromagnetic time-domain solver, specialized in wake potential and beam-coupling impedance computation for particle accelerators
Basic Info
- Host: GitHub
- Owner: ImpedanCEI
- License: other
- Language: Python
- Default Branch: main
- Homepage: https://wakis.readthedocs.io/
- Size: 86.3 MB
Statistics
- Stars: 29
- Watchers: 1
- Forks: 12
- Open Issues: 5
- Releases: 3
Topics
Metadata Files
README.md

Open-source Wake and Impedance Solver
wakis is a 3D Time-domain Electromagnetic solver that solves the Integral form of Maxwell's equations using the Finite Integration Technique (FIT) numerical method. It computes the longitudinal and transverse wake potential and beam-coupling impedance from the simulated electric and magnetic fields. It is also a multi-purpose solver, capable of simulating planewaves interaction with nano-structures, optical diffraction, and much more!
About
🚀 Some of wakis features:
* Wake potential and impedance calculations for particle beams with different relativistic $\beta$
* Material tensors: permittivity $\varepsilon$, permeability $\mu$, conductivity $\sigma$. Possibility of anisotropy.
* CAD geometry importer (STL & STEP format) for definition of embedded boundaries and material regions, based on pyvista
* Boundary conditions: PEC, PMC, Periodic, ABC-FOEXTRAP, Perfect Matched Layers (PML)
* Different time-domain sources: particle beam, planewave, gaussian wavepacket
* 100% python, fully exposed API (material tensors, fields $E$, $H$, $J$). Matrix operators based on numpy and scipy.sparse routines ensure fast calculations.
* 1d, 2d, 3d built-in plotting on-the-fly
* Optimized memory consumption
* GPU acceleration using cupy/cupyx
* CUDA-aware MPI parallelization with mpi4py and ipyparallel: added in#v0.6.0
🧩 Other complementary tools in the ecosystem:
* Wakefield extrapolation via broadband resonator fitting with PIML iddefix evolutionary algorithms
* Non-equidistant Filon Fourier integration with neffint
* Beam-induced heating estimation due to impedance with bihc
📣 Tag and version changes are decribed in each Wakis Github Release:
* To be informed of the latest features/bug fixes pushed to main, check the draft release.md
* For specific needs, please contact the developer 👩💻👋: elena.de.la.fuente.garcia@cern.ch
How to use
📖 Documentation, powered by sphinx, is available at wakis.readthedocs.io
Check 📁 examples/ and notebooks/ for different physical applications:
* Planewave interacting with a PEC or dielectric sphere
* Gaussian wavepacket travelling through vacuum / dielectric
* Custom perturbation interacting with PEC geometry
* Wakefield simulation of accelerator cavity on CPU, GPU and with MPI
Check 🌐📁 SWAN_tutorial/ for hands-on notebook examples ready to run on CERN's SWAN service's GPUs (A100, Tesla T4):
Check 🌐📁 wakis-benchmarks/ for beam-coupling impedance calculations & comparisons to the commercial tool CST® Wakefield solver:
* PEC cubic cavity below cutoff (mm) and above cutoff (cm)
* Conductive cubic cavity below cutoff
* Lossy pillbox cavity (cylindrical) above cutoff
* Simulations using beams with different relativistic $\beta$
Check 🌐📁 CEI-logo/ for a fun & complete beam-coupling impedance workflow tutorial, including:
* 001: Electromagnetic simulation preparation, inspection & 1d, 2d, 3d plotting.
* 002: Wakefield simulation on GPU
* 003: Extrapolation of wakefield simulation to fully decayed with iddefix. Conversion to wake function for beam dynamics simulation with neffint.
* 004: Beam-induced heating estimation due to impedance with bihc
* 005: MPI simulation example in notebooks with ipyparallel and mpi4py
Installation
Wakis supports Python 3.9 - 3.11 and can be installed in any conda environment.
📖 For a detailed installation guide (GPU, MPI setup, FAQs), check our documentation.
Users: Install via PyPI
For basic usage, simply run:
bash
pip install wakis
For additional features, including interactive 3D plots in Jupyter notebooks, use:
bash
pip install wakis['notebook']
To install complementary tools in the Wakis ecosystem:
bash
pip install neffint iddefix bihc
💡 Have a bug, feature request, or suggestion? Open a GitHub Issue so the community can track it.
Developers: Contribute to Wakis
First, Fork the repository and clone it from main:
```bash
SSH:
git clone git@github.com:YourUserName/wakis.git
or HTTPS:
git clone https://github.com/YourUserName/wakis.git
Create a dedicated **conda environment** and install dependencies:
bash
cd wakis/
conda create --name wakis-env python=3.11
conda activate wakis-env
pip install -r requirements.txt
pip install -e . # install wakis in editable mode
pip install neffint iddefix bihc # Optional tools
``
🛠️ **Want to contribute?** To merge your changes intomain`, create a Pull Request (PR) following our PR template.
Motivation
🎯 The determination of electromagnetic wakefields and their impact on accelerator performance is a significant issue in current accelerator components. These wakefields, which are generated within the accelerator vacuum chamber as a result of the interaction between the structure and a passing beam, can have significant effects on the machine.
These effects can be characterized through the beam coupling impedance in the frequency domain and wake potential in the time domain. Accurate evaluation of these properties is essential for predicting dissipated power and maintaining beam stability.
wakis is an open-source tool that can compute wake potential and impedance for both longitudinal and transverse planes for general 3D structures.
🌱
wakiswas firstly presented at the International Particle Accelerator Conference in 2023 (IPAC23) as a post-processing tool: https://doi.org/10.18429/JACoW-IPAC2023-WEPL170🌳 It has now evolved from a post-processing tool to a full 3D electromagnetic, time domain solver; and has been presented at the ICAP24: The 14th International Computational Accelerator Physics Conference in 2024: https://indico.gsi.de/event/19249/contributions/82636/
🌸 A dedicated paper has been submitted and will be presented at IPAC'25: The 16th International Particle Accelerator Conference: https://indico.jacow.org/event/81/contributions/8026/
Citing Wakis
🔖 Each Wakis release is linked to a Zenodo publication under a unique DOI. If you are using Wakis in your scientific research, please help our scientific visibility by citing this work:
[1] E. de la Fuente Garcia et. al., “Wakis”. Zenodo, 2025. doi: https://doi.org/10.5281/zenodo.15527405
Owner
- Name: ImpedanCEI
- Login: ImpedanCEI
- Kind: organization
- Location: Switzerland
- Repositories: 2
- Profile: https://github.com/ImpedanCEI
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, consider cite it as below to support open-source science" authors: - family-names: "de la Fuente Garcia" given-names: "Elena" orcid: "https://orcid.org/0009-0004-5649-2160" title: "Wakis" version: 0.5.0 doi: https://doi.org/10.5281/zenodo.14988676 date-released: 07-03-2025 url: "https://github.com/ImpedanCEI/wakis"
GitHub Events
Total
- Create event: 11
- Release event: 3
- Issues event: 8
- Watch event: 17
- Delete event: 2
- Issue comment event: 5
- Push event: 220
- Pull request event: 11
- Pull request review event: 5
- Fork event: 4
Last Year
- Create event: 11
- Release event: 3
- Issues event: 8
- Watch event: 17
- Delete event: 2
- Issue comment event: 5
- Push event: 220
- Pull request event: 11
- Pull request review event: 5
- Fork event: 4
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 7
- Total pull requests: 16
- Average time to close issues: about 18 hours
- Average time to close pull requests: about 6 hours
- Total issue authors: 4
- Total pull request authors: 4
- Average comments per issue: 0.29
- Average comments per pull request: 0.06
- Merged pull requests: 11
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 7
- Pull requests: 10
- Average time to close issues: about 18 hours
- Average time to close pull requests: about 10 hours
- Issue authors: 4
- Pull request authors: 4
- Average comments per issue: 0.29
- Average comments per pull request: 0.1
- Merged pull requests: 5
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- erikshipton (3)
- finetrade (2)
- Sudhanshu805 (1)
- Jishnnn (1)
Pull Request Authors
- elenafuengar (14)
- MaltheRaschke (4)
- mctfr (1)
- elleanor-lamb (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 108 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 26
- Total maintainers: 2
pypi.org: wakis
3D Electromagnetic Time-Domain wake and impedance solver
- Homepage: https://wakis.readthedocs.io/
- Documentation: https://wakis.readthedocs.io/en/latest/index.html
- License: Apache 2.0
-
Latest release: 0.6.0
published 9 months ago
