Util

Utils module (test symplectic mappings)

tohubohu.util.forward2D(x: jax.Array, k: jax.Array) jax.Array[source]

Sample 2D symplectic mapping (forward) Henon mapping (McMillan form)

q, p = x a, b = k Q = p P = -q + a*p + (1 - b)*p**2 + b*p**3

tohubohu.util.forward4D(x: jax.Array, k: jax.Array) jax.Array[source]

Sample 4D symplectic mapping (forward) Accelerator mapping (4D Henon)

mux, muy = 2*pi*nux, 2*pi*nuy cx, sx, cy, sy = cos(mux), sin(mux), cos(muy), sin(muy) qx, qy, px, py = x cx, sx, cy, sy, mu = k Qx = cx*qx + sx*(px + qx**2 - qy**2 + mu*(qx**3 - 3*qx*qy**2)) Qy = cy*qy + sy*(py - 2*qx*qy + mu*(-3*qx**2*qy + qy**3)) Px = cx*(px + qx**2 - qy**2 + mu*(qx**3 - 3*qx*qy**2)) - sx*qx Py = cy*(py - 2*qx*qy + mu*(-3*qx**2*qy + qy**3)) - sy*qy

tohubohu.util.gingerbread_man_forward(x: jax.Array, *args, **kwargs) jax.Array[source]

Gingerbread man map (forward)

tohubohu.util.gingerbread_man_inverse(x: jax.Array, *args, **kwargs) jax.Array[source]

Gingerbread man map (inverse)

tohubohu.util.inverse2D(x: jax.Array, k: jax.Array) jax.Array[source]

Sample 2D symplectic mapping (inverse) Henon mapping (McMillan form)

tohubohu.util.inverse4D(x: jax.Array, k: jax.Array) jax.Array[source]

Sample 4D symplectic mapping (inverse) Accelerator mapping (4D Henon)