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

model.library.transformations.tz(state: State, dz: torch.Tensor, dp: torch.Tensor) State[source]

TZ translation (sign matches MADX)

Parameters:
  • state (State) – initial state

  • dz (Tensor) – qz translation error

  • dp (Tensor) – momentum deviation

Return type:

State

model.library.transformations.wedge(state: State, epsilon: torch.Tensor, r: torch.Tensor) State[source]

Dipole linear wedge transformation

Parameters:
  • state (State) – initial state

  • epsilon (Tensor) – wedge angle

  • r (Tensor) – bending radius

Return type:

State