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 (scotty.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

numpy.ndarray[Any, numpy.dtype[numpy.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 (numpy.ndarray[Any, numpy.dtype[numpy.float64]]) –

Return type

Tuple[Union[float, numpy.ndarray[Any, numpy.dtype[numpy.float64]]], Union[float, numpy.ndarray[Any, numpy.dtype[numpy.float64]]], Union[float, numpy.ndarray[Any, numpy.dtype[numpy.float64]]], Union[float, numpy.ndarray[Any, numpy.dtype[numpy.float64]]], Union[float, numpy.ndarray[Any, numpy.dtype[numpy.float64]]], numpy.ndarray[Any, numpy.dtype[numpy.float64]]]