factory module
This module holds a factory to create the BeamCalculator.
- BEAM_CALCULATORS = ('Envelope1D', 'TraceWin', 'Envelope3D')
- _get_beam_calculator(tool: Literal['Envelope1D', 'TraceWin', 'Envelope3D'], flag_cython: bool = False, **kwargs) type
Get the proper
BeamCalculatorconstructor.
- class BeamCalculatorsFactory(beam_calculator: dict[str, Any], files: dict[str, Any], beam: dict[str, Any], beam_calculator_post: dict[str, Any] | None = None, **other_kw: dict)
Bases:
objectA class to create
BeamCalculatorobjects.- __init__(beam_calculator: dict[str, Any], files: dict[str, Any], beam: dict[str, Any], beam_calculator_post: dict[str, Any] | None = None, **other_kw: dict) None
Set up factory with arguments common to all
BeamCalculator.- Parameters:
beam_calculator (dict[str, Any]) – Configuration entries for the first
BeamCalculator, used for optimisation.files (dict[str, Any]) – Configuration entries for the input/output paths.
beam (dict[str, Any]) – Configuration dictionary holding the initial beam parameters.
beam_calculator_post (dict[str, Any] | None) – Configuration entries for the second optional
BeamCalculator, used for a more thorough calculation of the beam propagation once the compensation settings are found.other_kw (dict) – Other keyword arguments, not used for the moment.
- _set_out_folders(all_beam_calculator_kw: Sequence[dict[str, Any]]) list[Path]
Set in which subfolder the results will be saved.
- _patch_to_remove_misunderstood_key() None
Patch to remove a key not understood by TraceWin. Declare id list.
Todo
fixme
- run(tool: Literal['Envelope1D', 'TraceWin', 'Envelope3D'], **beam_calculator_kw) BeamCalculator
Create a single
BeamCalculator.- Parameters:
tool (Literal["Envelope1D", "TraceWin", "Envelope3D"]) – The name of the beam calculator to construct.
- Returns:
An instance of the proper beam calculator.
- Return type:
- run_all() tuple[BeamCalculator, ...]
Create all the beam calculators.
- _check_consistency_absolute_phases(beam_calculators: Sequence[BeamCalculator]) None
Check that
flag_phi_absis the same for all solvers.