Skip to content

Commit 05ad2c9

Browse files
authored
Merge pull request #304 from desy-ml/267-update-acknowledgements
Update acknowledgements and prepare `v0.7.0` release
2 parents 2713510 + a342347 commit 05ad2c9

File tree

11 files changed

+151
-26
lines changed

11 files changed

+151
-26
lines changed

CHANGELOG.md

Lines changed: 44 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,31 @@
11
# Changelog
22

3-
## v0.7.0 [🚧 Work in Progress]
3+
## v0.7.1 [🚧 Work in Progress]
44

5-
This is a major release with significant upgrades under the hood of Cheetah. Despite extensive testing, you might still encounter a few bugs. Please report them by opening an issue, so we can fix them as soon as possible and improve the experience for everyone.
5+
### 🚨 Breaking Changes
6+
7+
### 🚀 Features
8+
9+
### 🐛 Bug fixes
10+
11+
### 🐆 Other
12+
13+
### 🌟 First Time Contributors
14+
15+
## [v0.7.0](https://github.com/desy-ml/cheetah/releases/tag/v0.7.0) (2024-12-13)
16+
17+
We are proud to announce this new major release of Cheetah! This is probably the biggest release since the original Cheetah release, with many with significant upgrades under the hood. Cheetah is now fully vectorised and compatible with PyTorch broadcasting rules, while additional physics and higher fidelity options for existing physics have also been introduced. Despite extensive testing, you might still encounter a few bugs. Please report them by opening an issue, so we can fix them as soon as possible and improve the experience for everyone.
618

719
### 🚨 Breaking Changes
820

9-
- Cheetah is now vectorised. This means that you can run multiple simulations in parallel by passing a batch of beams and settings, resulting a number of interfaces being changed. For Cheetah developers this means that you now have to account for an arbitrary-dimensional tensor of most of the properties of you element, rather than a single value, vector or whatever else a property was before. (see #116, #157, #170, #172, #173, #198, #208, #213, #215, #218, #229, #233, #258, #265, #284, #291) (@jank324, @cr-xu, @hespe, @roussel-ryan)
21+
- Cheetah is now vectorised. This means that you can run multiple simulations in parallel by passing a batch of beams and settings, resulting a number of interfaces being changed. For Cheetah developers this means that you now have to account for an arbitrary-dimensional tensor of most of the properties of you element, rather than a single value, vector or whatever else a property was before. (see #116, #157, #170, #172, #173, #198, #208, #213, #215, #218, #229, #233, #258, #265, #284, #291) (@jank324, @cr-xu, @Hespe, @roussel-ryan)
1022
- As part of the vectorised rewrite, the `Aperture` no longer removes particles. Instead, `ParticleBeam.survival_probabilities` tracks the probability that a particle has survived (i.e. the inverse probability that it has been lost). This also comes with the removal of `Beam.empty`. Note that particle losses in `Aperture` are currently not differentiable. This will be addressed in a future release. (see #268) (@cr-xu, @jank324)
11-
- The fifth particle coordinate `s` is renamed to `tau`. Now Cheetah uses the canonical variables in phase space $(x,px=\frac{P_x}{p_0},y,py, \tau=c\Delta t, \delta=\Delta E/{p_0 c})$. In addition, the trailing "s" was removed from some beam property names (e.g. `beam.xs` becomes `beam.x`). (see #163, #284) (@cr-xu, @hespe)
23+
- The fifth particle coordinate `s` is renamed to `tau`. Now Cheetah uses the canonical variables in phase space $(x,px=\frac{P_x}{p_0},y,py, \tau=c\Delta t, \delta=\Delta E/{p_0 c})$. In addition, the trailing "s" was removed from some beam property names (e.g. `beam.xs` becomes `beam.x`). (see #163, #284) (@cr-xu, @Hespe)
1224
- `Screen` no longer blocks the beam (by default). To return to old behaviour, set `Screen.is_blocking = True`. (see #208) (@jank324, @roussel-ryan)
13-
- The way `dtype`s are determined is now more in line with PyTorch's conventions. This may cause different-than-expected `dtype`s in old code. (see #254) (@hespe, @jank324)
14-
- `Beam.parameters()` no longer shadows `torch.nn.Module.parameters()`. The previously returned properties now need to be queried individually. (see #300) (@hespe)
15-
- `e1` and `e2` in `Dipole` and `RBend` have been renamed and made more consistent between the different magnet types. They now have prefixes `dipole_` and `rbend_` respectively. (see #289) (@hespe, @jank324)
16-
- The `_transfer_map` property of `CustomTransferMap` has been renamed to `predefined_transfer_map`. (see #289) (@hespe, @jank324)
25+
- The way `dtype`s are determined is now more in line with PyTorch's conventions. This may cause different-than-expected `dtype`s in old code. (see #254) (@Hespe, @jank324)
26+
- `Beam.parameters()` no longer shadows `torch.nn.Module.parameters()`. The previously returned properties now need to be queried individually. (see #300) (@Hespe)
27+
- `e1` and `e2` in `Dipole` and `RBend` have been renamed and made more consistent between the different magnet types. They now have prefixes `dipole_` and `rbend_` respectively. (see #289) (@Hespe, @jank324)
28+
- The `_transfer_map` property of `CustomTransferMap` has been renamed to `predefined_transfer_map`. (see #289) (@Hespe, @jank324)
1729

1830
### 🚀 Features
1931

@@ -27,27 +39,27 @@ This is a major release with significant upgrades under the hood of Cheetah. Des
2739
- `Quadrupole` now supports tracking with Cheetah's matrix-based method or with Bmad's more accurate method (see #153) (@jp-ga, @jank324)
2840
- Port Bmad-X tracking methods to Cheetah for `Quadrupole`, `Drift`, and `Dipole` (see #153, #240) (@jp-ga, @jank324)
2941
- Add `TransverseDeflectingCavity` element (following the Bmad-X implementation) (see #240, #278 #296) (@jp-ga, @cr-xu, @jank324)
30-
- `Dipole` and `RBend` now take a focusing moment `k1` (see #235, #247) (@hespe)
31-
- Implement a converter for lattice files imported from Elegant (see #222, #251, #273, #281) (@hespe, @jank324)
32-
- `Beam` and `Element` objects now have a `.clone()` method to create a deep copy (see #289) (@hespe, @jank324)
42+
- `Dipole` and `RBend` now take a focusing moment `k1` (see #235, #247) (@Hespe)
43+
- Implement a converter for lattice files imported from Elegant (see #222, #251, #273, #281) (@Hespe, @jank324)
44+
- `Beam` and `Element` objects now have a `.clone()` method to create a deep copy (see #289) (@Hespe, @jank324)
3345
- `ParticleBeam` now comes with methods for plotting the beam distribution in a variety of ways (see #292) (@roussel-ryan, @jank324)
3446

3547
### 🐛 Bug fixes
3648

3749
- Now all `Element` have a default length of `torch.zeros((1))`, fixing occasional issues with using elements without length, such as `Marker`, `BPM`, `Screen`, and `Aperture`. (see #143) (@cr-xu)
3850
- Fix bug in `Cavity` `_track_beam` (see #150) (@jp-ga)
39-
- Fix issue where dipoles would not get a unique name by default (see #186) (@hespe)
51+
- Fix issue where dipoles would not get a unique name by default (see #186) (@Hespe)
4052
- Add `name` to `Drift` element `__repr__` (see #201) (@ansantam)
4153
- Fix bug where `dtype` was not used when creating a `ParameterBeam` from Twiss parameters (see #206) (@jank324)
4254
- Fix bug after running `Segment.inactive_elements_as_drifts` the drifts could have the wrong `dtype` (see #206) (@jank324)
4355
- Fix an issue where splitting elements would result in splits with a different `dtype` (see #211) (@jank324)
4456
- Fix issue in Bmad import where collimators had no length by interpreting them as `Drift` + `Aperture` (see #249) (@jank324)
45-
- Fix NumPy 2 compatibility issues with PyTorch on Windows (see #220, #242) (@hespe)
57+
- Fix NumPy 2 compatibility issues with PyTorch on Windows (see #220, #242) (@Hespe)
4658
- Fix issue with Dipole hgap conversion in Bmad import (see #261) (@cr-xu)
47-
- Fix plotting for segments that contain tensors with `require_grad=True` (see #288) (@hespe)
48-
- Fix bug where `Element.length` could not be set as a `torch.nn.Parameter` (see #301) (@jank324, @hespe)
49-
- Fix registration of `torch.nn.Parameter` at initilization for elements and beams (see #303) (@hespe)
50-
- Fix warnings about NumPy deprecations and unintentional tensor clones (see #308) (@hespe)
59+
- Fix plotting for segments that contain tensors with `require_grad=True` (see #288) (@Hespe)
60+
- Fix bug where `Element.length` could not be set as a `torch.nn.Parameter` (see #301) (@jank324, @Hespe)
61+
- Fix registration of `torch.nn.Parameter` at initilization for elements and beams (see #303) (@Hespe)
62+
- Fix warnings about NumPy deprecations and unintentional tensor clones (see #308) (@Hespe)
5163

5264
### 🐆 Other
5365

@@ -57,13 +69,25 @@ This is a major release with significant upgrades under the hood of Cheetah. Des
5769
- Update reference from arXiv preprint to PRAB publication (see #166) (@jank324)
5870
- Rename converter modules to the respective name of the accelerator code (see #167) (@jank324)
5971
- Added imports to the code example in the README (see #188) (@jank324)
60-
- Refactor definitions of physical constants (see #189) (@hespe)
72+
- Refactor definitions of physical constants (see #189) (@Hespe)
6173
- Fix the quadrupole strength units in the quadrupole docstring (see #202) (@ansantam)
62-
- Add CI runs for macOS (arm64) and Windows (see #226) (@cr-xu, @jank324, @hespe)
74+
- Add CI runs for macOS (arm64) and Windows (see #226) (@cr-xu, @jank324, @Hespe)
6375
- Clean up CI pipelines (see #243, #244) (@jank324)
6476
- Fix logo display in README (see #252) (@jank324)
65-
- Made `Beam` an abstract class (see #284) (@hespe)
77+
- Made `Beam` an abstract class (see #284) (@Hespe)
6678
- Releases are now automatically archived on Zenodo and given a DOI (@jank324)
79+
- The Acknowledgements section in the README has been updated to reflect new contributors (see #304) (@jank324, @AnEichler)
80+
81+
### 🌟 First Time Contributors
82+
83+
- Grégoire Charleux (@greglenerd)
84+
- Remi Lehe (@RemiLehe)
85+
- Axel Huebl (@ax3l)
86+
- Juan Pablo Gonzalez-Aguilera (@jp-ga)
87+
- Andrea Santamaria Garcia (@ansantam)
88+
- Ryan Roussel (@roussel-ryan)
89+
- Christian Hespe (@Hespe)
90+
- Annika Eichler (@AnEichler)
6791

6892
## [v0.6.3](https://github.com/desy-ml/cheetah/releases/tag/v0.6.3) (2024-03-28)
6993

README.md

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
# Cheetah
1010

11-
<img src="images/logo.png" align="right" width="25%"/>
11+
<img src="https://github.com/desy-ml/cheetah/raw/master/images/logo.png" align="right" width="25%"/>
1212

1313
Cheetah is a high-speed differentiable beam dynamics code specifically design to support machine learning applications for particle accelerators.
1414

@@ -87,7 +87,7 @@ You may plot a segment with reference particle traces bay calling
8787
segment.plot_overview(incoming=beam)
8888
```
8989

90-
![Overview Plot](images/misalignment.png)
90+
![Overview Plot](https://github.com/desy-ml/cheetah/raw/master/images/misalignment.png)
9191

9292
where the optional keyword argument `beam` is the incoming beam represented by the reference particles. Cheetah will use a default incoming beam, if no beam is passed.
9393

@@ -122,7 +122,7 @@ If you use Cheetah, please cite the following two papers:
122122

123123
Activate your virtual environment. (Optional)
124124

125-
Install the cheetah package as editable
125+
Install the `cheetah` package as editable
126126

127127
```sh
128128
pip install -e .
@@ -137,7 +137,38 @@ pre-commit install
137137

138138
## Acknowledgements
139139

140-
We acknowledge the contributions of the following people to the development of Cheetah: Jan Kaiser, Chenran Xu, Oliver Stein, Annika Eichler, Andrea Santamaria Garcia and others.
140+
### Author Contributions
141+
142+
The following people have contributed to the development of Cheetah:
143+
144+
- Jan Kaiser (@jank324)
145+
- Chenran Xu (@cr-xu)
146+
- Annika Eichler (@AnEichler)
147+
- Andrea Santamaria Garcia (@ansantam)
148+
- Christian Hespe (@Hespe)
149+
- Oliver Stein (@OliStein523)
150+
- Grégoire Charleux (@greglenerd)
151+
- Remi Lehe (@RemiLehe)
152+
- Axel Huebl (@ax3l)
153+
- Juan Pablo Gonzalez-Aguilera (@jp-ga)
154+
- Ryan Roussel (@roussel-ryan)
155+
- Auralee Edelen (@lee-edelen)
156+
157+
### Institutions
158+
159+
The development of Cheetah is a joint effort by members of the following institutions:
160+
161+
<img src="https://github.com/desy-ml/cheetah/raw/master/images/desy.png" alt="DESY" style="width: 5em;" vspace="2em"/>&nbsp;&nbsp;
162+
<img src="https://github.com/desy-ml/cheetah/raw/master/images/kit.png" alt="KIT" style="width: 7em;" vspace="2em"/>&nbsp;&nbsp;
163+
<img src="https://github.com/desy-ml/cheetah/raw/master/images/lbnl.png" alt="LBNL" style="width: 11em;" vspace="2em"/>&nbsp;&nbsp;
164+
<img src="https://github.com/desy-ml/cheetah/raw/master/images/university_of_chicago.png" alt="University of Chicago" style="width: 11em;" vspace="2em"/>&nbsp;&nbsp;
165+
<img src="https://github.com/desy-ml/cheetah/raw/master/images/slac.png" alt="SLAC" style="width: 9em;" vspace="2em"/>&nbsp;&nbsp;
166+
<img src="https://github.com/desy-ml/cheetah/raw/master/images/university_of_liverpool.png" alt="University of Liverpool" style="width: 10em;" vspace="2em"/>&nbsp;&nbsp;
167+
<img src="https://github.com/desy-ml/cheetah/raw/master/images/cockcroft.png" alt="Cockcroft Institute" style="width: 7em;" vspace="2em"/>
168+
169+
### Funding
141170

142171
The work to develop Cheetah has in part been funded by the IVF project InternLabs-0011 (HIR3X) and the Initiative and Networking Fund by the Helmholtz Association (Autonomous Accelerator, ZT-I-PF-5-6).
172+
Further, we gratefully acknowledge funding by the EuXFEL R&D project "RP-513: Learning Based Methods".
173+
This work is also supported by the U.S. Department of Energy, Office of Science under Contract No. DE-AC02-76SF00515 and the Center for Bright Beams, NSF Award No. PHY-1549132.
143174
In addition, we acknowledge support from DESY (Hamburg, Germany) and KIT (Karlsruhe, Germany), members of the Helmholtz Association HGF.

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
1616

1717
project = "Cheetah"
18-
copyright = "2023, Jan Kaiser, Chenran Xu"
18+
copyright = "2021-2024 Jan Kaiser, Chenran Xu"
1919
author = "Jan Kaiser, Chenran Xu"
2020
release = "0.7.0"
2121

docs/index.rst

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Welcome to Cheetah's documentation!
1010

1111
GitHub repository: https://github.com/desy-ml/cheetah
1212

13-
Paper: https://arxiv.org/abs/2401.05815
13+
Paper: https://doi.org/10.1103/PhysRevAccelBeams.27.054601
1414

1515

1616
Installation
@@ -113,6 +113,76 @@ We suggest installing pre-commit hooks to automatically conform with the code fo
113113
pre-commit install
114114
115115
116+
Acknowledgements
117+
----------------
118+
119+
Author Contributions
120+
~~~~~~~~~~~~~~~~~~~~~
121+
122+
The following people have contributed to the development of Cheetah:
123+
124+
- Jan Kaiser (@jank324)
125+
- Chenran Xu (@cr-xu)
126+
- Annika Eichler (@AnEichler)
127+
- Andrea Santamaria Garcia (@ansantam)
128+
- Christian Hespe (@Hespe)
129+
- Oliver Stein (@OliStein523)
130+
- Grégoire Charleux (@greglenerd)
131+
- Remi Lehe (@RemiLehe)
132+
- Axel Huebl (@ax3l)
133+
- Juan Pablo Gonzalez-Aguilera (@jp-ga)
134+
- Ryan Roussel (@roussel-ryan)
135+
- Auralee Edelen (@lee-edelen)
136+
137+
Institutions
138+
~~~~~~~~~~~~
139+
140+
The development of Cheetah is a joint effort by members of the following institutions:
141+
142+
.. image:: https://github.com/desy-ml/cheetah/raw/master/images/desy.png
143+
:alt: DESY
144+
:width: 5em
145+
:vspace: 2em
146+
147+
.. image:: https://github.com/desy-ml/cheetah/raw/master/images/kit.png
148+
:alt: KIT
149+
:width: 7em
150+
:vspace: 2em
151+
152+
.. image:: https://github.com/desy-ml/cheetah/raw/master/images/lbnl.png
153+
:alt: LBNL
154+
:width: 11em
155+
:vspace: 2em
156+
157+
.. image:: https://github.com/desy-ml/cheetah/raw/master/images/university_of_chicago.png
158+
:alt: University of Chicago
159+
:width: 11em
160+
:vspace: 2em
161+
162+
.. image:: https://github.com/desy-ml/cheetah/raw/master/images/slac.png
163+
:alt: SLAC
164+
:width: 9em
165+
:vspace: 2em
166+
167+
.. image:: https://github.com/desy-ml/cheetah/raw/master/images/university_of_liverpool.png
168+
:alt: University of Liverpool
169+
:width: 10em
170+
:vspace: 2em
171+
172+
.. image:: https://github.com/desy-ml/cheetah/raw/master/images/cockcroft.png
173+
:alt: Cockcroft Institute
174+
:width: 7em
175+
:vspace: 2em
176+
177+
Funding
178+
~~~~~~~
179+
180+
The work to develop Cheetah has in part been funded by the IVF project InternLabs-0011 (HIR3X) and the Initiative and Networking Fund by the Helmholtz Association (Autonomous Accelerator, ZT-I-PF-5-6).
181+
Further, we gratefully acknowledge funding by the EuXFEL R&D project "RP-513: Learning Based Methods".
182+
This work was also supported by the U.S. National Science Foundation under Award PHY-1549132, the Center for Bright Beams.
183+
In addition, we acknowledge support from DESY (Hamburg, Germany) and KIT (Karlsruhe, Germany), members of the Helmholtz Association HGF.
184+
185+
116186
Indices and tables
117187
==================
118188

images/cockcroft.png

27.4 KB
Loading

images/desy.png

23.9 KB
Loading

images/kit.png

28.2 KB
Loading

images/lbnl.png

13.7 KB
Loading

images/slac.png

22.2 KB
Loading

images/university_of_chicago.png

98.9 KB
Loading

0 commit comments

Comments
 (0)