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