Transformations module
Collection of symplectic transformations, building blocks for accelerator elements
calibration_forward[_{knobs, track}] – calibration transformation (from beam frame to bpm frame) calibration_inverse[_{knobs, track}] – calibration transformation (from bpm frame to beam frame) corrector[_{knobs, track}] – corrector transformation drift[_{knobs, track}] – drift transformation kinematic[_{knobs, track}] – kinematic correction transformation fquad[_{knobs, track}] – focusing quadrupole transformation dquad[_{knobs, track}] – defocusing quadrupole transformation quadrupole[_{knobs, track}] – generic quadrupole transformation linear – generic linear transformation gradient[_{knobs, track}] – thin quadrupole transformation sextupole[_{knobs, track}] – thin sextupole transformation octupole[_{knobs, track}] – thin octupole transformation dipole[_{knobs, track}] – dipole transformation bend[_{knobs, track}] – generic linear bend transformation wedge[_{knobs, track}] – dipole wedge transformation sector_bend – exact sector bend body tranformation sector_bend_fringe – sector bend fringe transformation sector_bend_wedge – sector bend wedge transformation polar[_{knobs, track}] – polar drift cylindrical[_{knobs, track}] – cylindrical multipole error kick upto octupole degree cylindrical_error[_{knobs, track}] – cylindrical multipole error kick upto octupole degree tx[_{knobs, track}] – TX translation ty[_{knobs, track}] – TY translation tz[_{knobs, track}] – TZ translation rx[_{knobs, track}] – RX rotation ry[_{knobs, track}] – RY rotation rz[_{knobs, track}] – RZ rotation
- model.library.transformations.bend(state: State, r: torch.Tensor, kn: torch.Tensor, ks: torch.Tensor, dp: torch.Tensor, length: torch.Tensor) State [source]
Combined function bend transformation
Note, singular if kn = ks = 0
- Parameters:
state (State) – initial state
r (Tensor) – bending radius
kn (Tensor) – normal quadrupole strength
ks (Tensor) – skew quadrupole strength
dp (Tensor) – momentum deviation
length (Tensor) – length
- Return type:
State
- model.library.transformations.calibration_forward(state: State, gxx: torch.Tensor, gxy: torch.Tensor, gyx: torch.Tensor, gyy: torch.Tensor) State [source]
Calibration transformation (from beam frame to bpm frame)
qx -> (1 + gxx) qx + gxy qy qy -> gyx qx + (1 + gyy) qy
- Parameters:
state (State) – initial state
gxx (Tensor) – qx scaling
gxy (Tensor) – qx coupling
gyx (Tensor) – qy coupling
gyy (Tensor) – qy scaling
- Return type:
State
- model.library.transformations.calibration_inverse(state: State, gxx: torch.Tensor, gxy: torch.Tensor, gyx: torch.Tensor, gyy: torch.Tensor) State [source]
Calibration transformation (from bpm frame to beam frame)
- Parameters:
state (State) – initial state
gxx (Tensor) – qx scaling
gxy (Tensor) – qx coupling
gyx (Tensor) – qy coupling
gyy (Tensor) – qy scaling
- Return type:
State
- model.library.transformations.corrector(state: State, kx: torch.Tensor, ky: torch.Tensor) State [source]
Corrector transformation
px -> px + kx py -> py + ky
- Parameters:
state (State) – initial state
kx (Tensor) – px kick
ky (Tensor) – py kick
- Return type:
State
- model.library.transformations.cylindrical(state: State, r: torch.Tensor, kqn: torch.Tensor, kqs: torch.Tensor, ks: torch.Tensor, ko: torch.Tensor, dp: torch.Tensor, length: torch.Tensor) State [source]
Cylindrical multipole kick upto octupole degree
- Parameters:
state (State) – initial state
r (Tensor) – bending radius
kqn (Tensor) – normal quadrupole strength
kqs (Tensor) – skew quadrupole strength
ks (Tensor) – sextupole strength
ks – octupole strength
dp (Tensor) – momentum deviation
length (Tensor) – length
- Return type:
State
- model.library.transformations.cylindrical_error(state: State, r: torch.Tensor, kqn: torch.Tensor, kqs: torch.Tensor, ks: torch.Tensor, ko: torch.Tensor, length: torch.Tensor) State [source]
Cylindrical multipole kick upto octupole degree without leading order linear part
- Parameters:
state (State) – initial state
r (Tensor) – bending radius
kqn (Tensor) – normal quadrupole strength
kqs (Tensor) – skew quadrupole strength
ks (Tensor) – sextupole strength
ks – octupole strength
length (Tensor) – length
- Return type:
State
- model.library.transformations.dipole(state: State, r: torch.Tensor, dp: torch.Tensor, length: torch.Tensor) State [source]
Dipole transformation
- Parameters:
state (State) – initial state
r (Tensor) – bending radius
dp (Tensor) – momentum deviation
length (Tensor) – length
- Return type:
State
- model.library.transformations.dquad(state: State, kn: torch.Tensor, dp: torch.Tensor, length: torch.Tensor) State [source]
Defocusing quadrupole transformation
- Parameters:
state (State) – initial state
kn (Tensor, positive) – quadrupole strength
dp (Tensor) – momentum deviation
length (Tensor) – length
- Return type:
State
- model.library.transformations.drift(state: State, dp: torch.Tensor, length: torch.Tensor) State [source]
Drift transformation
- Parameters:
state (State) – initial state
dp (Tensor) – momentum deviation
length (Tensor) – length
- Return type:
State
- model.library.transformations.fquad(state: State, kn: torch.Tensor, dp: torch.Tensor, length: torch.Tensor) State [source]
Focusing quadrupole transformation
- Parameters:
state (State) – initial state
kn (Tensor, positive) – quadrupole strength
dp (Tensor) – momentum deviation
length (Tensor) – length
- Return type:
State
- model.library.transformations.gradient(state: State, kn: torch.Tensor, ks: torch.Tensor, length: torch.Tensor) State [source]
Thin quadrupole transformation
- Parameters:
state (State) – initial state
kn (Tensor) – skew strength
ks (Tensor) – skew strength
length (Tensor) – length
- Return type:
State
- model.library.transformations.kinematic(state: State, dp: torch.Tensor, length: torch.Tensor) State [source]
Kinematic correction transformation
- Parameters:
state (State) – initial state
dp (Tensor) – momentum deviation
length (Tensor) – length
- Return type:
State
- model.library.transformations.linear(state: State, vector: torch.Tensor, matrix: torch.Tensor) State [source]
Generic linear transformation
- Parameters:
state (State) – initial state
vector (Tensor) – constant vector (dispersion)
matrix (Tensor) – matrix
- Return type:
State
- model.library.transformations.octupole(state: State, ko: torch.Tensor, length: torch.Tensor) State [source]
Thin octupole transformation
- Parameters:
state (State) – initial state
ko (Tensor) – strength
length (Tensor) – length
- Return type:
State
- model.library.transformations.polar(state: State, angle: torch.Tensor, dp: torch.Tensor) State [source]
Polar drift
Note, same as rotation around qy axis, but with different angle sign
- Parameters:
state (State) – initial state
angle (Tensor) – rotation angle
dp (Tensor) – momentum deviation
- Return type:
State
- model.library.transformations.quadrupole(state: State, kn: torch.Tensor, ks: torch.Tensor, dp: torch.Tensor, length: torch.Tensor) State [source]
Generic quadrupole transformation
Note, singular if kn = ks = 0
- Parameters:
state (State) – initial state
kn (Tensor) – normal quadrupole strength
ks (Tensor) – skew quadrupole strength
dp (Tensor) – momentum deviation
length (Tensor) – length
- Return type:
State
- model.library.transformations.rx(state: State, wx: torch.Tensor, dp: torch.Tensor) State [source]
RX rotation (sign matches MADX)
- Parameters:
state (State) – initial state
wx (Tensor) – qx rotation angle
dp (Tensor) – momentum deviation
- Return type:
State
- model.library.transformations.ry(state: State, wy: torch.Tensor, dp: torch.Tensor) State [source]
RY rotation (sign matches MADX)
- Parameters:
state (State) – initial state
wz (Tensor) – qy rotation angle
dp (Tensor) – momentum deviation
- Return type:
State
- model.library.transformations.rz(state: State, wz: torch.Tensor) State [source]
RZ rotation (sign matches MADX)
- Parameters:
state (State) – initial state
wz (Tensor) – qz rotation angle
dp (Tensor) – momentum deviation
- Return type:
State
- model.library.transformations.sector_bend(state: State, r: torch.Tensor, dp: torch.Tensor, length: torch.Tensor) State [source]
Exact sector bend body tranformation
- Parameters:
state (State) – initial state
r (Tensor) – bending radius
dp (Tensor) – momentum deviation
length (Tensor) – length
- Return type:
State
- model.library.transformations.sector_bend_fringe(state: State, r: torch.Tensor, dp: torch.Tensor) State [source]
Sector bend fringe transformation
sector_bend_fringe(state, +r, dp) - entrance fringe sector_bend_fringe(state, -r, dp) - exit fringe
- Parameters:
state (State) – initial state
r (Tensor) – bending radius
dp (Tensor) – momentum deviation
length (Tensor) – length
- Return type:
State
- model.library.transformations.sector_bend_wedge(state: State, w: torch.Tensor, r: torch.Tensor, dp: torch.Tensor) torch.Tensor [source]
Sector bend wedge transformation
- Parameters:
state (State) – initial state
w (Tensor) – wegde angle
r (Tensor) – bending radius
dp (Tensor) – momentum deviation
- Return type:
State
- model.library.transformations.sextupole(state: State, ks: torch.Tensor, length: torch.Tensor) State [source]
Thin sextupole transformation
- Parameters:
state (State) – initial state
ks (Tensor) – strength
length (Tensor) – length
- Return type:
State
- model.library.transformations.tx(state: State, dx: torch.Tensor) State [source]
TX translation (sign matches MADX)
- Parameters:
state (State) – initial state
dx (Tensor) – qx translation error
- Return type:
State
- model.library.transformations.ty(state: State, dy: torch.Tensor) State [source]
TY translation (sign matches MADX)
- Parameters:
state (State) – initial state
dy (Tensor) – qy translation error
- Return type:
State