scotty.fun_evolution module
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
q_R (Union[float, numpy.ndarray[Any, numpy.dtype[numpy.float64]]]) –
q_zeta (Union[float, numpy.ndarray[Any, numpy.dtype[numpy.float64]]]) –
q_Z (Union[float, numpy.ndarray[Any, numpy.dtype[numpy.float64]]]) –
K_R (Union[float, numpy.ndarray[Any, numpy.dtype[numpy.float64]]]) –
K_Z (Union[float, numpy.ndarray[Any, numpy.dtype[numpy.float64]]]) –
Psi (numpy.ndarray[Any, numpy.dtype[numpy.float64]]) –
- 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]]]