factory module
Define a factory to easily create Accelerator.
- class AcceleratorFactory(beam_calculators, files, beam, **kwargs)[source]
Bases:
objectA class to create accelerators.
- Parameters:
beam_calculators (
BeamCalculator|Sequence[BeamCalculator|None])beam (
BeamKwargs)
- __init__(beam_calculators, files, beam, **kwargs)[source]
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 (
BeamKwargs) – Configuration dictionary holding the initial beam parameters.kwargs – Other configuration dictionaries.
- Return type:
None
- main_beam_calculator
BeamCalculatorthat will be used to find compensation settings.
- _check_consistency_reference_phase_policies(cavities)[source]
Check that solvers phases are consistent with
DATfile.
- _create_output_dirs(n_objects, with_reference=True)[source]
Create the proper out directories for every
Accelerator.The default structure looks like:
YYYY.MM.DD_HHhMM_SSs_MILLIms/ ├── 000000_ref │ ├── 0_Envelope1D/ │ └── 1_TraceWin/ ├── 000001 │ ├── 0_Envelope1D/ │ └── 1_TraceWin/ ├── 000002 │ ├── 0_Envelope1D/ │ └── 1_TraceWin/ ├── 000003 │ ├── 0_Envelope1D/ │ └── 1_TraceWin/ └── lightwin.log
The main
YYYY.MM.DD_HHhMM_SSs_MILLIms/directory is created at the same location as the originalDATfile. You can override its name with theproject_folderkey in the[files]TOMLsection.In every
accelerator_path(eg000002/), you will find one directory perBeamCalculator. In this example, compensation settings were found withEnvelope1Dand a second simulation was made withTraceWin.
- Parameters:
n_objects (
int) – Number ofAcceleratorto create.with_reference (
bool, default:True) – If first directory should be the nominal dir called000000_ref/.
- Return type:
- Returns:
Output path for every accelerator:
000000_ref/(ifwith_reference),000001/, …
- class NoFault(*args, **kwargs)[source]
Bases:
AcceleratorFactoryCreate single accelerator without failure.
Deprecated since version 0.15.0: Prefer
AcceleratorFactory.- __init__(*args, **kwargs)[source]
Facilitate creation of
Acceleratorobjects.- Parameters:
beam_calculators – Objects that will compute propagation of the beam.
files – Configuration entries for the input/output paths.
beam – Configuration dictionary holding the initial beam parameters.
kwargs – Other configuration dictionaries.
- Return type:
None
- class WithFaults(*args, wtf, **kwargs)[source]
Bases:
AcceleratorFactoryCreate accelerators with failures.
Deprecated since version 0.15.0: Prefer
AcceleratorFactory.- __init__(*args, wtf, **kwargs)[source]
Facilitate creation of
Acceleratorobjects.