Convert

Convert between different twiss representations

twiss.convert.cs_to_wolski(pars: torch.Tensor) torch.Tensor[source]

Convert Courant-Snyder twiss parameters to Wolski twiss matrices

Parameters:
  • pars (Tensor) – Courant-Snyder twiss parameters ax, bx, ay, by

  • epsilon (float, optional, default=1.0E-12) – tolerance epsilon

Return type:

Tensor

Note

[ax, bx, ay, by] are CS twiss parameters

Examples

>>> from math import pi
>>> import torch
>>> from twiss.matrix import rotation
>>> from twiss.wolski import twiss
>>> m = rotation(*2*pi*torch.tensor([0.12, 0.19], dtype=torch.float64))
>>> t, n, w = twiss(m)
>>> torch.allclose(w, cs_to_wolski(wolski_to_cs(w)))
True
twiss.convert.lb_to_wolski(pars: torch.Tensor) torch.Tensor[source]

Convert Lebedev-Bogacz twiss parameters to Wolski twiss matrices.

Parameters:

pars (Tensor) – Lebedev-Bogacz twiss parameters a1x, b1x, a2x, b2x, a1y, b1y, a2y, b2y, u, v1, v2

Return type:

Tensor

Note

[a1x, b1x, a2x, b2x, a1y, b1y, a2y, b2y, u, v1, v2] are LB twiss parameters [a1x, b1x, a2y, b2y] are ‘in-plane’ twiss parameters

Examples

>>> from math import pi
>>> import torch
>>> from twiss.matrix import rotation
>>> from twiss.wolski import twiss
>>> m = rotation(*2*pi*torch.tensor([0.12, 0.19], dtype=torch.float64))
>>> t, n, w = twiss(m)
>>> torch.allclose(w, lb_to_wolski(wolski_to_lb(w)))
True
twiss.convert.wolski_to_cs(pars: torch.Tensor) torch.Tensor[source]

Convert Wolski twiss matrices to Courant-Snyder twiss parameters

Parameters:

pars (Tensor) – Wolski twiss matrices

Return type:

Tensor

Note

[ax, bx, ay, by] are CS twiss parameters

Examples

>>> from math import pi
>>> import torch
>>> from twiss.matrix import rotation
>>> from twiss.wolski import twiss
>>> m = rotation(*2*pi*torch.tensor([0.12, 0.19], dtype=torch.float64))
>>> t, n, w = twiss(m)
>>> torch.allclose(w, cs_to_wolski(wolski_to_cs(w)))
True
twiss.convert.wolski_to_lb(pars: torch.Tensor) torch.Tensor[source]

Convert Wolski twiss matrices to Lebedev-Bogacz twiss parameters

Parameters:

pars (Tensor) – Wolski twiss matrices

Return type:

Tensor

Note

[a1x, b1x, a2x, b2x, a1y, b1y, a2y, b2y, u, v1, v2] are LB twiss parameters [a1x, b1x, a2y, b2y] are ‘in-plane’ twiss parameters

Examples

>>> from math import pi
>>> import torch
>>> from twiss.matrix import rotation
>>> from twiss.wolski import twiss
>>> m = rotation(*2*pi*torch.tensor([0.12, 0.19], dtype=torch.float64))
>>> t, n, w = twiss(m)
>>> torch.allclose(w, lb_to_wolski(wolski_to_lb(w)))
True