Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apply transverse aperture to thick elements. #788

Open
wants to merge 23 commits into
base: development
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
35eeb95
Initial files for applying aperture to thick elements.
cemitch99 Jan 8, 2025
073c87b
Update aperture.H
cemitch99 Jan 8, 2025
960aad9
Add Python bindings for drift.
cemitch99 Jan 8, 2025
f764db9
Update elements.cpp
cemitch99 Jan 8, 2025
ffe74a0
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jan 8, 2025
3bf409e
Add draft example.
cemitch99 Jan 9, 2025
c550b95
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jan 9, 2025
99967d8
Move if conditional into mixin.
cemitch99 Jan 9, 2025
5ff2ee4
Add drift aperture input documentation.
cemitch99 Jan 9, 2025
578e7f2
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jan 9, 2025
a130d24
Apply suggestions from code review
cemitch99 Jan 10, 2025
13980ef
Update Drift.H
cemitch99 Jan 10, 2025
0554261
Change name xmax -> x_aperture...
cemitch99 Jan 10, 2025
fb572fe
Fix one missing xmax -> x_aperture in elements.cpp.
cemitch99 Jan 10, 2025
68bb406
Modify naming x_aperture -> aperture_x.
cemitch99 Jan 10, 2025
144e529
Update src/initialization/InitElement.cpp
cemitch99 Jan 10, 2025
77c1d17
Test workflow for adding elements using CFbend.
cemitch99 Jan 13, 2025
58c1a2c
Merge branch 'development' into add_apertures_thick
cemitch99 Jan 13, 2025
14f4a4c
Add aperture input to all thick elements.
cemitch99 Jan 14, 2025
2d10f4f
Update thin Aperture element naming.
cemitch99 Jan 14, 2025
39a7dbf
Update element parameter docs.
cemitch99 Jan 14, 2025
b00dc3e
Merge branch 'development' into add_apertures_thick
cemitch99 Jan 14, 2025
941536c
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jan 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 32 additions & 2 deletions docs/source/usage/parameters.rst
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,8 @@ Lattice Elements
* ``<element_name>.dx`` (``float``, in meters) horizontal translation error
* ``<element_name>.dy`` (``float``, in meters) vertical translation error
* ``<element_name>.rotation`` (``float``, in degrees) rotation error in the transverse plane
* ``<element_name>.aperture_x`` (``float``, in meters) horizontal half-aperture (elliptical)
* ``<element_name>.aperture_y`` (``float``, in meters) vertical half-aperture (elliptical)
* ``<element_name>.nslice`` (``integer``) number of slices used for the application of space charge (default: ``1``)

* ``drift`` for a free drift. This requires these additional parameters:
Expand All @@ -135,6 +137,8 @@ Lattice Elements
* ``<element_name>.dx`` (``float``, in meters) horizontal translation error
* ``<element_name>.dy`` (``float``, in meters) vertical translation error
* ``<element_name>.rotation`` (``float``, in degrees) rotation error in the transverse plane
* ``<element_name>.aperture_x`` (``float``, in meters) horizontal half-aperture (elliptical)
* ``<element_name>.aperture_y`` (``float``, in meters) vertical half-aperture (elliptical)
* ``<element_name>.nslice`` (``integer``) number of slices used for the application of space charge (default: ``1``)

* ``drift_chromatic`` for a free drift, with chromatic effects included.
Expand All @@ -145,6 +149,8 @@ Lattice Elements
* ``<element_name>.dx`` (``float``, in meters) horizontal translation error
* ``<element_name>.dy`` (``float``, in meters) vertical translation error
* ``<element_name>.rotation`` (``float``, in degrees) rotation error in the transverse plane
* ``<element_name>.aperture_x`` (``float``, in meters) horizontal half-aperture (elliptical)
* ``<element_name>.aperture_y`` (``float``, in meters) vertical half-aperture (elliptical)
* ``<element_name>.nslice`` (``integer``) number of slices used for the application of space charge (default: ``1``)

* ``drift_exact`` for a free drift, using the exact nonlinear map. This requires these additional parameters:
Expand All @@ -153,6 +159,8 @@ Lattice Elements
* ``<element_name>.dx`` (``float``, in meters) horizontal translation error
* ``<element_name>.dy`` (``float``, in meters) vertical translation error
* ``<element_name>.rotation`` (``float``, in degrees) rotation error in the transverse plane
* ``<element_name>.aperture_x`` (``float``, in meters) horizontal half-aperture (elliptical)
* ``<element_name>.aperture_y`` (``float``, in meters) vertical half-aperture (elliptical)
* ``<element_name>.nslice`` (``integer``) number of slices used for the application of space charge (default: ``1``)

* ``quad`` for a quadrupole. This requires these additional parameters:
Expand All @@ -167,6 +175,8 @@ Lattice Elements
* ``<element_name>.dx`` (``float``, in meters) horizontal translation error
* ``<element_name>.dy`` (``float``, in meters) vertical translation error
* ``<element_name>.rotation`` (``float``, in degrees) rotation error in the transverse plane
* ``<element_name>.aperture_x`` (``float``, in meters) horizontal half-aperture (elliptical)
* ``<element_name>.aperture_y`` (``float``, in meters) vertical half-aperture (elliptical)
* ``<element_name>.nslice`` (``integer``) number of slices used for the application of space charge (default: ``1``)

* ``quad_chromatic`` for A Quadrupole magnet, with chromatic effects included.
Expand All @@ -186,6 +196,8 @@ Lattice Elements
* ``<element_name>.dx`` (``float``, in meters) horizontal translation error
* ``<element_name>.dy`` (``float``, in meters) vertical translation error
* ``<element_name>.rotation`` (``float``, in degrees) rotation error in the transverse plane
* ``<element_name>.aperture_x`` (``float``, in meters) horizontal half-aperture (elliptical)
* ``<element_name>.aperture_y`` (``float``, in meters) vertical half-aperture (elliptical)
* ``<element_name>.nslice`` (``integer``) number of slices used for the application of space charge (default: ``1``)

* ``quadrupole_softedge`` for a soft-edge quadrupole. This requires these additional parameters:
Expand All @@ -199,6 +211,8 @@ Lattice Elements
* ``<element_name>.dx`` (``float``, in meters) horizontal translation error
* ``<element_name>.dy`` (``float``, in meters) vertical translation error
* ``<element_name>.rotation`` (``float``, in degrees) rotation error in the transverse plane
* ``<element_name>.aperture_x`` (``float``, in meters) horizontal half-aperture (elliptical)
* ``<element_name>.aperture_y`` (``float``, in meters) vertical half-aperture (elliptical)
* ``<element_name>.mapsteps`` (``integer``) number of integration steps per slice used for map and reference particle push in applied fields
(default: ``1``)
* ``<element_name>.nslice`` (``integer``) number of slices used for the application of space charge (default: ``1``)
Expand All @@ -217,6 +231,8 @@ Lattice Elements
* ``<element_name>.dx`` (``float``, in meters) horizontal translation error
* ``<element_name>.dy`` (``float``, in meters) vertical translation error
* ``<element_name>.rotation`` (``float``, in degrees) rotation error in the transverse plane
* ``<element_name>.aperture_x`` (``float``, in meters) horizontal half-aperture (elliptical)
* ``<element_name>.aperture_y`` (``float``, in meters) vertical half-aperture (elliptical)
* ``<element_name>.nslice`` (``integer``) number of slices used for the application of space charge (default: ``1``)

* ``sbend`` for a bending magnet. This requires these additional parameters:
Expand All @@ -226,6 +242,8 @@ Lattice Elements
* ``<element_name>.dx`` (``float``, in meters) horizontal translation error
* ``<element_name>.dy`` (``float``, in meters) vertical translation error
* ``<element_name>.rotation`` (``float``, in degrees) rotation error in the transverse plane
* ``<element_name>.aperture_x`` (``float``, in meters) horizontal half-aperture (elliptical)
* ``<element_name>.aperture_y`` (``float``, in meters) vertical half-aperture (elliptical)
* ``<element_name>.nslice`` (``integer``) number of slices used for the application of space charge (default: ``1``)

* ``sbend_exact`` for a bending magnet using the exact nonlinear map for the bend body. The map corresponds to the map described in:
Expand All @@ -239,6 +257,8 @@ Lattice Elements
* ``<element_name>.dx`` (``float``, in meters) horizontal translation error
* ``<element_name>.dy`` (``float``, in meters) vertical translation error
* ``<element_name>.rotation`` (``float``, in degrees) rotation error in the transverse plane
* ``<element_name>.aperture_x`` (``float``, in meters) horizontal half-aperture (elliptical)
* ``<element_name>.aperture_y`` (``float``, in meters) vertical half-aperture (elliptical)
* ``<element_name>.nslice`` (``integer``) number of slices used for the application of space charge (default: ``1``)

* ``solenoid`` for an ideal hard-edge solenoid magnet. This requires these additional parameters:
Expand All @@ -249,6 +269,8 @@ Lattice Elements
* ``<element_name>.dx`` (``float``, in meters) horizontal translation error
* ``<element_name>.dy`` (``float``, in meters) vertical translation error
* ``<element_name>.rotation`` (``float``, in degrees) rotation error in the transverse plane
* ``<element_name>.aperture_x`` (``float``, in meters) horizontal half-aperture (elliptical)
* ``<element_name>.aperture_y`` (``float``, in meters) vertical half-aperture (elliptical)
* ``<element_name>.nslice`` (``integer``) number of slices used for the application of space charge (default: ``1``)

* ``solenoid_softedge`` for a soft-edge solenoid. This requires these additional parameters:
Expand All @@ -267,6 +289,8 @@ Lattice Elements
* ``<element_name>.dx`` (``float``, in meters) horizontal translation error
* ``<element_name>.dy`` (``float``, in meters) vertical translation error
* ``<element_name>.rotation`` (``float``, in degrees) rotation error in the transverse plane
* ``<element_name>.aperture_x`` (``float``, in meters) horizontal half-aperture (elliptical)
* ``<element_name>.aperture_y`` (``float``, in meters) vertical half-aperture (elliptical)
* ``<element_name>.mapsteps`` (``integer``) number of integration steps per slice used for map and reference particle push in applied fields (default: ``1``)
* ``<element_name>.nslice`` (``integer``) number of slices used for the application of space charge (default: ``1``)

Expand All @@ -289,6 +313,8 @@ Lattice Elements
* ``<element_name>.dx`` (``float``, in meters) horizontal translation error
* ``<element_name>.dy`` (``float``, in meters) vertical translation error
* ``<element_name>.rotation`` (``float``, in degrees) rotation error in the transverse plane
* ``<element_name>.aperture_x`` (``float``, in meters) horizontal half-aperture (elliptical)
* ``<element_name>.aperture_y`` (``float``, in meters) vertical half-aperture (elliptical)
* ``<element_name>.nslice`` (``integer``) number of slices used for the application of space charge (default: ``1``)

* ``rfcavity`` a radiofrequency cavity.
Expand All @@ -304,6 +330,8 @@ Lattice Elements
* ``<element_name>.dx`` (``float``, in meters) horizontal translation error
* ``<element_name>.dy`` (``float``, in meters) vertical translation error
* ``<element_name>.rotation`` (``float``, in degrees) rotation error in the transverse plane
* ``<element_name>.aperture_x`` (``float``, in meters) horizontal half-aperture (elliptical)
* ``<element_name>.aperture_y`` (``float``, in meters) vertical half-aperture (elliptical)
* ``<element_name>.mapsteps`` (``integer``) number of integration steps per slice used for map and reference particle push in applied fields (default: ``1``)
* ``<element_name>.nslice`` (``integer``) number of slices used for the application of space charge (default: ``1``)

Expand Down Expand Up @@ -347,6 +375,8 @@ Lattice Elements
* ``<element_name>.dx`` (``float``, in meters) horizontal translation error
* ``<element_name>.dy`` (``float``, in meters) vertical translation error
* ``<element_name>.rotation`` (``float``, in degrees) rotation error in the transverse plane
* ``<element_name>.aperture_x`` (``float``, in meters) horizontal half-aperture (elliptical)
* ``<element_name>.aperture_y`` (``float``, in meters) vertical half-aperture (elliptical)
* ``<element_name>.nslice`` (``integer``) number of slices used for the application of space charge (default: ``1``)

* ``linear_map`` for a custom, linear transport matrix.
Expand Down Expand Up @@ -425,8 +455,8 @@ Lattice Elements
* ``aperture`` for a thin collimator element applying a transverse aperture boundary.
This requires these additional parameters:

* ``<element_name>.xmax`` (``float``, in meters) maximum value of the horizontal coordinate
* ``<element_name>.ymax`` (``float``, in meters) maximum value of the vertical coordinate
* ``<element_name>.aperture_x`` (``float``, in meters) horizontal half-aperture (elliptical or rectangular)
* ``<element_name>.aperture_y`` (``float``, in meters) vertical half-aperture (elliptical or rectangular)
* ``<element_name>.repeat_x`` (``float``, in meters) horizontal period for repeated aperture masking (inactive by default)
* ``<element_name>.repeat_y`` (``float``, in meters) vertical period for repeated aperture masking (inactive by default)
* ``<element_name>.shape`` (``string``) shape of the aperture boundary: ``rectangular`` (default) or ``elliptical``
Expand Down
Loading
Loading