element_envelope1d_parameters module
Define a class to hold solver parameters for Envelope1D.
This module holds ElementEnvelope1DParameters, that inherits
from the Abstract Base Class ElementBeamCalculatorParameters.
It holds the transfer matrix function that is used, according to the solver
(Runge-Kutta or leapfrog) and their version (Python or Cython), as well as the
meshing in accelerating elements.
The Element objects with a transfer matrix are listed in
PARAMETERS_1D.
- class ElementEnvelope1DParameters(transf_mat_function: Callable, length_m: float, n_steps: int, **kwargs: str | int)
Bases:
ElementBeamCalculatorParametersHold the parameters to compute beam propagation in an Element.
hasandgetmethod inherited fromElementBeamCalculatorParametersparent class.- __init__(transf_mat_function: Callable, length_m: float, n_steps: int, **kwargs: str | int) None
Set the actually useful parameters.
- set_absolute_meshes(pos_in: float, s_in: int) tuple[float, int]
Set the absolute indexes and arrays, depending on previous elem.
- abstract transfer_matrix_arguments() Sequence[Any]
Give the element parameters necessary to compute transfer matrix.
- transf_mat_function_wrapper(w_kin_in: float, **rf_field_kwargs) dict
Calculate beam propagation in the
Element.
- _transfer_matrix_results_to_dict(r_zz: ndarray, gamma_phi: ndarray, integrated_field: float | None) dict
Convert the results given by the transf_mat function to dict.
- _transfer_matrix_results_to_dict_broken_field_map(r_zz: ndarray, gamma_phi: ndarray, itg_field: float | None) dict
Convert the results given by the transf_mat function to dict.
This method should override the default
_transfer_matrix_results_to_dictwhen the element under study is a broken field map.
- _abc_impl = <_abc._abc_data object at 0x7fd3d7ca5a40>
- class DriftEnvelope1DParameters(transf_mat_module: ModuleType, elt: Element, n_steps: int = 1, **kwargs: str | int)
Bases:
ElementEnvelope1DParametersHold the properties to compute transfer matrix of a
Drift.As this is 1D, it is also used for
Solenoid,Quad, brokenFieldMap.- __init__(transf_mat_module: ModuleType, elt: Element, n_steps: int = 1, **kwargs: str | int) None
Create the specific parameters for a drift.
- transfer_matrix_arguments() tuple[float, int]
Give the element parameters necessary to compute transfer matrix.
- _abc_impl = <_abc._abc_data object at 0x7fd3ce62da00>
- class FieldMapEnvelope1DParameters(transf_mat_module: ModuleType, elt: FieldMap, method: str, n_steps_per_cell: int, solver_id: str, phi_s_model: str = 'historical', **kwargs: str | int)
Bases:
ElementEnvelope1DParametersHold the properties to compute transfer matrix of a
FieldMap.Non-accelerating cavities will use
DriftEnvelope1DParametersinstead.- __init__(transf_mat_module: ModuleType, elt: FieldMap, method: str, n_steps_per_cell: int, solver_id: str, phi_s_model: str = 'historical', **kwargs: str | int) None
Create the specific parameters for a field map.
- transfer_matrix_arguments() tuple[float, int]
Give the element parameters necessary to compute transfer matrix.
- _transfer_matrix_results_to_dict(r_zz: ndarray, gamma_phi: ndarray, integrated_field: float | None) dict
Convert the results given by the transf_mat function to a dict.
Overrides the default method defined in the ABC.
- _abc_impl = <_abc._abc_data object at 0x7fd3ce62d100>
- class BendEnvelope1DParameters(transf_mat_module: ModuleType, elt: Bend, n_steps: int = 1, **kwargs: str | int)
Bases:
ElementEnvelope1DParametersHold the specific parameters to compute
Bendtransfer matrix.In particular, we define
factor_1,factor_2andfactor_3to speed-up calculations.- __init__(transf_mat_module: ModuleType, elt: Bend, n_steps: int = 1, **kwargs: str | int) None
Instantiate object and pre-compute some parameters for speed.
- Parameters:
transf_mat_module (types.ModuleType) – Module where the transfer matrix function is defined.
elt (Bend) –
BENDelement.n_steps (int, optional) – Number of integration steps. The default is 1.
- _pre_compute_factors_for_transfer_matrix(length_m: float, h_squared: float, k_x: float, index_is_lower_than_unity: bool) tuple[float, float, float]
Compute factors to speed up the transfer matrix calculation.
factor_1is:\[\frac{-h^2\Delta s}{k_x^2}\]factor_2is:\[\frac{h^2 \sin{(k_x\Delta s)}}{k_x^3}\]if \(n \leq 1\). Else:
\[\frac{h^2 \sinh{(k_x\Delta s)}}{k_x^3}\]factor_3is:\[\Delta s \left(1 - \frac{h^2}{k_x^2}\right)\]
- transfer_matrix_arguments() tuple[float, float, float, float]
Give the element parameters necessary to compute transfer matrix.
- _abc_impl = <_abc._abc_data object at 0x7fd3cde3a300>