factory module
Define a factory to easily create Accelerator.
- class AcceleratorFactory(beam_calculators: BeamCalculator | Sequence[BeamCalculator | None], files: dict[str, Any], beam: dict[str, Any], **kwargs: dict)
Bases:
ABCA class to create accelerators.
- __init__(beam_calculators: BeamCalculator | Sequence[BeamCalculator | None], files: dict[str, Any], beam: dict[str, Any], **kwargs: dict) None
Facilitate creation of
Acceleratorobjects.- Parameters:
beam_calculators (BeamCalculator | Sequence[BeamCalculator | None]) – Objects that will compute propagation of the beam.
files (dict[str, Any]) – Configuration entries for the input/output paths.
beam (dict[str, Any]) – Configuration dictionary holding the initial beam parameters.
kwargs – Other configuration dictionaries.
- run(*args, **kwargs) Accelerator
Create the object.
- _generate_folders_tree_structure(out_folders: Sequence[Path], n_simulations: int) list[Path]
Create the proper folders for every
Accelerator.The default structure is:
where_original_dat_is/YYYY.MM.DD_HHhMM_SSs_MILLIms/<-project_folder(absolute)000000_ref/<-accelerator_path(absolute)0_FirstBeamCalculatorName/<-out_folder(relative)(
1_SecondBeamCalculatorName/) <-out_folder(relative)
000001/0_FirstBeamCalculatorName/(
1_SecondBeamCalculatorName/)
000002/0_FirstBeamCalculatorName/(
1_SecondBeamCalculatorName/)
etc
- Parameters:
out_folders (Sequence[pathlib.Path]) – Name of the folders that will store outputs. By default, it is the name of the solver, preceeded by its position in the list of
BeamCalculator.
- _check_consistency_absolute_phases(cavities: Sequence[FieldMap]) None
Check that solvers phases are consistent with
.datfile.
- _abc_impl = <_abc._abc_data object at 0x7f36f7e2b840>
- class NoFault(beam_calculators: BeamCalculator, files: dict[str, Any], beam: dict[str, Any], **kwargs: dict)
Bases:
AcceleratorFactoryFactory used to generate a single accelerator, no faults.
- __init__(beam_calculators: BeamCalculator, files: dict[str, Any], beam: dict[str, Any], **kwargs: dict) None
Facilitate creation of
Accelerator.- Parameters:
beam_calculators (BeamCalculator) – A unique object to compute propagation of the field. Even if there is a
sat the end of the variable name.files (dict[str, Any]) – Configuration entries for the input/output paths.
beam (dict[str, Any]) – Configuration dictionary holding the initial beam parameters.
kwargs – Other configuration dictionaries.
- property beam_calculator: BeamCalculator
Shortcut to get the only existing
BeamCalculator.
- run(*args, **kwargs) Accelerator
Create a single accelerator.
- _abc_impl = <_abc._abc_data object at 0x7f36f6e2a8c0>
- class StudyWithoutFaultsAcceleratorFactory(beam_calculators: BeamCalculator, files: dict[str, Any], beam: dict[str, Any], **kwargs: dict)
Bases:
NoFaultAlias for
NoFault.- _abc_impl = <_abc._abc_data object at 0x7f36f6f1eec0>
- class WithFaults(beam_calculators: BeamCalculator | Sequence[BeamCalculator | None], files: dict[str, Any], beam: dict[str, Any], wtf: dict[str, Any], **kwargs: dict)
Bases:
AcceleratorFactoryFactory used to generate several accelerators for a fault study.
- __init__(beam_calculators: BeamCalculator | Sequence[BeamCalculator | None], files: dict[str, Any], beam: dict[str, Any], wtf: dict[str, Any], **kwargs: dict) None
Facilitate creation of
Acceleratorobjects.- Parameters:
beam_calculators (BeamCalculator | Sequence[BeamCalculator | None]) – Objects that will compute propagation of the beam.
files (dict[str, Any]) – Configuration entries for the input/output paths.
beam (dict[str, Any]) – Configuration dictionary holding the initial beam parameters.
wtf (dict[str, Any]) – Dictionary holding the information on what to fit.
kwargs – Other configuration dictionaries.
- run(*args, **kwargs) Accelerator
Return a single accelerator.
- run_all(**kwargs) list[Accelerator]
Create the required Accelerators as well as their output folders.
- _abc_impl = <_abc._abc_data object at 0x7f36f6f1fb80>
- class FullStudyAcceleratorFactory(beam_calculators: BeamCalculator | Sequence[BeamCalculator | None], files: dict[str, Any], beam: dict[str, Any], wtf: dict[str, Any], **kwargs: dict)
Bases:
WithFaultsAlias for
WithFaults.- _abc_impl = <_abc._abc_data object at 0x7f36f6e1f6c0>