scotty.fun_evolution module#

Functions for Scotty to evolve the beam or ray. I’ve separated this from scotty.fun_general to prevent circular importing

scotty.fun_evolution.beam_evolution_fun(tau, beam_parameters, K_zeta, hamiltonian)#
Parameters:
  • tau (float) – Parameter along the ray.

  • beam_parameters (complex128) – q_R, q_zeta, q_Z, K_R, K_Z, Psi_RR, Psi_zetazeta, Psi_ZZ, Psi_Rzeta, Psi_RZ, Psi_zetaZ.

  • hamiltonian (Hamiltonian)

Returns:

d (beam_parameters) / d tau

Return type:

d_beam_parameters_d_tau

scotty.fun_evolution.pack_beam_parameters(q_R, q_zeta, q_Z, K_R, K_Z, Psi)#

Pack coordinates and Psi matrix into single flat array for

Parameters:
Return type:

ndarray[tuple[int, …], dtype[float64]]

scotty.fun_evolution.unpack_beam_parameters(beam_parameters)#

Unpack the flat solver state vector into separate coordinate variables and Psi matrix

Parameters:

beam_parameters (ndarray[tuple[int, ...], dtype[float64]])

Return type:

Tuple[float | ndarray[tuple[int, …], dtype[float64]], float | ndarray[tuple[int, …], dtype[float64]], float | ndarray[tuple[int, …], dtype[float64]], float | ndarray[tuple[int, …], dtype[float64]], float | ndarray[tuple[int, …], dtype[float64]], ndarray[tuple[int, …], dtype[float64]]]