helper module

Set initial values/limits in DesignSpaceFactory.

same_value_as_nominal(variable, reference_element, **kwargs)[source]

Return variable value in reference_element.

This is generally a good initial value for optimisation.

Parameters:
Return type:

float

phi_s_limits(reference_element, max_increase_sync_phase_in_percent, max_absolute_sync_phase_in_deg=0.0, min_absolute_sync_phase_in_deg=-90.0, **kwargs)[source]

Return classic limits for the synchronous phase.

Minimum is min_absolute_sync_phase_in_deg, which is -90 degrees by default. Maximum is nominal synchronous phase + max_increase_in_percent, or max_absolute_sync_phase_in_deg which is 0 degrees by default.

Parameters:
  • reference_element (Element) – Element in its nominal tuning.

  • max_increase_in_percent (float) – Maximum increase of the synchronous phase in percent.

  • max_absolute_sync_phase_in_deg (float, optional) – Maximum absolute synchronous phase in radians. The default is 0.

  • min_absolute_sync_phase_in_deg (float, optional) – Minimum absolute synchronous phase in radians. The default is \(-\pi / 2\).

  • max_increase_sync_phase_in_percent (float)

Returns:

Lower and upper limits for the synchronous phase.

Return type:

tuple[float, float]

phi_0_limits(**kwargs)[source]

Return classic limits for the absolute or relative rf phase.

Returns:

Always \((-2\pi, 2\pi)\).

Return type:

tuple[float, float]

k_e_limits(reference_element, max_decrease_k_e_in_percent, max_increase_k_e_in_percent, maximum_k_e_is_calculated_wrt_maximum_k_e_of_section=False, reference_elements=None, **kwargs)[source]

Get classic limits for k_e.

Parameters:
  • reference_element (Element) – The nominal element.

  • max_decrease_in_percent (float) – Allowed decrease in percent with respect to the nominal k_e.

  • max_increase_in_percent (float) – Allowed increase in percent with respect to the nominal k_e.

  • maximum_k_e_is_calculated_wrt_maximum_k_e_of_section (bool, optional) – Use this flag to compute allowed increase of k_e with respect to the maximum k_e of the section, instead of the k_e of the nominal cavity. This is what we used in [PB22]. The default is False.

  • reference_elements (list[Element] | None) – List of the nominal elements. Must be provided if maximum_k_e_is_calculated_wrt_maximum_k_e_of_section is True.

  • max_decrease_k_e_in_percent (float)

  • max_increase_k_e_in_percent (float)

Returns:

Lower and upper bounds for k_e.

Return type:

tuple[float, float]

_get_maximum_k_e_of_section(section_idx, reference_elements)[source]

Get the maximum k_e of section.

Parameters:
Return type:

float