Welcome to LightWin’s documentation!
LightWin
- Installation
- Usage
- The
get()
method - Configuration
- Units and conventions
- Utility scripts
- API Reference
- beam_calculation package
- beam_calculation.envelope_1d package
- beam_calculation.envelope_1d.beam_parameters_factory module
- beam_calculation.envelope_1d.element_envelope1d_parameters module
- beam_calculation.envelope_1d.element_envelope1d_parameters_factory module
- beam_calculation.envelope_1d.envelope_1d module
- beam_calculation.envelope_1d.simulation_output_factory module
- beam_calculation.envelope_1d.transfer_matrices_c module
- beam_calculation.envelope_1d.transfer_matrices_p module
- beam_calculation.envelope_1d.transfer_matrix_factory module
- beam_calculation.envelope_3d package
- beam_calculation.envelope_3d.beam_parameters_factory module
- beam_calculation.envelope_3d.element_envelope3d_parameters module
- beam_calculation.envelope_3d.element_envelope3d_parameters_factory module
- beam_calculation.envelope_3d.envelope_3d module
- beam_calculation.envelope_3d.simulation_output_factory module
- beam_calculation.envelope_3d.transfer_matrices_p module
- beam_calculation.envelope_3d.transfer_matrix_factory module
- beam_calculation.integrators package
- beam_calculation.parameters package
- beam_calculation.simulation_output package
- beam_calculation.tracewin package
- beam_calculation.tracewin.beam_parameters_factory module
- beam_calculation.tracewin.element_tracewin_parameters module
- beam_calculation.tracewin.element_tracewin_parameters_factory module
- beam_calculation.tracewin.simulation_output_factory module
- beam_calculation.tracewin.tracewin module
- beam_calculation.tracewin.transfer_matrix_factory module
- beam_calculation.beam_calculator module
- beam_calculation.factory module
- beam_calculation.envelope_1d package
- config package
- config_manager module
- constants module
- core package
- core.accelerator package
- core.beam_parameters package
- core.commands package
- core.commands.adjust module
- core.commands.command module
- core.commands.dummy_command module
- core.commands.end module
- core.commands.error module
- core.commands.factory module
- core.commands.field_map_path module
- core.commands.freq module
- core.commands.helper module
- core.commands.lattice module
- core.commands.marker module
- core.commands.repeat_ele module
- core.commands.set_adv module
- core.commands.set_sync_phase module
- core.commands.shift module
- core.commands.steerer module
- core.commands.superpose_map module
- core.elements package
- core.elements.field_maps package
- core.elements.aperture module
- core.elements.bend module
- core.elements.diagnostic module
- core.elements.drift module
- core.elements.dummy module
- core.elements.edge module
- core.elements.element module
- core.elements.factory module
- core.elements.helper module
- core.elements.quad module
- core.elements.solenoid module
- core.elements.superposed_field_map module
- core.elements.thin_steering module
- core.list_of_elements package
- core.transfer_matrix package
- core.electric_field module
- core.instruction module
- core.instructions_factory module
- core.particle module
- evaluator package
- experimental package
- failures package
- optimisation package
- optimisation.algorithms package
- optimisation.algorithms.algorithm module
- optimisation.algorithms.differential_evolution module
- optimisation.algorithms.downhill_simplex module
- optimisation.algorithms.downhill_simplex_penalty module
- optimisation.algorithms.explorator module
- optimisation.algorithms.factory module
- optimisation.algorithms.least_squares module
- optimisation.algorithms.least_squares_penalty module
- optimisation.algorithms.nsga module
- optimisation.algorithms.pso module
- optimisation.design_space package
- optimisation.objective package
- optimisation.algorithms package
- tracewin_utils package
- util package
- visualization package
- beam_calculation package
- Examples
Todo
Precise that BeamParametersFactory and TransferMatrixFactory are mandatory.
(The original entry is located in /home/placais/LightWin/source/beam_calculation/beam_calculator.py:docstring of beam_calculation.beam_calculator, line 8.)
Todo
default_field_map_folder
has a wrong default value. Should take
path to the .dat
file, that is not known at this point. Maybe
handle this directly in the InstructionsFactory
or
whatever.
(The original entry is located in /home/placais/LightWin/source/beam_calculation/beam_calculator.py:docstring of beam_calculation.beam_calculator.BeamCalculator._set_up_common_factories, line 3.)
Todo
Handle reference synchronous phase.
(The original entry is located in /home/placais/LightWin/source/beam_calculation/beam_calculator.py:docstring of beam_calculation.beam_calculator.BeamCalculator.reference_phase, line 3.)
Todo
update_reference_phase
is currently unused, because it is not
useful once the propagation has been calculated. So… should I
keep it? Maybe it can be useful in post_optimisation_run_with_this,
or in scripts to convert the phase between the different
references, or when I want to save the .dat?
(The original entry is located in /home/placais/LightWin/source/beam_calculation/beam_calculator.py:docstring of beam_calculation.beam_calculator.BeamCalculator.run, line 3.)
Todo
Patch in transfer matrix to get proper input transfer matrix. In future, input beam will not hold transf mat in anymore.
(The original entry is located in /home/placais/LightWin/source/beam_calculation/envelope_1d/simulation_output_factory.py:docstring of beam_calculation.envelope_1d.simulation_output_factory.SimulationOutputFactoryEnvelope1D.run, line 3.)
Todo
I think that this module could be greatly enhanced. I am not a Cython specialist and suggestions are welcome.
(The original entry is located in docstring of beam_calculation.envelope_1d.transfer_matrices_c, line 5.)
Todo
Field maps better to create the transfer matrix in one passage at the end?
(The original entry is located in docstring of beam_calculation.envelope_1d.transfer_matrices_c, line 9.)
Todo
the passing of the field maps is not clean at all
(The original entry is located in docstring of beam_calculation.envelope_1d.transfer_matrices_c, line 12.)
Todo
Possible to use only lists here. May speed up the code, especially in _c. But numpy is fast, no?
(The original entry is located in /home/placais/LightWin/source/beam_calculation/envelope_1d/transfer_matrices_p.py:docstring of beam_calculation.envelope_1d.transfer_matrices_p, line 6.)
Todo
send beta as argument to avoid recomputing it each time
(The original entry is located in /home/placais/LightWin/source/beam_calculation/envelope_1d/transfer_matrices_p.py:docstring of beam_calculation.envelope_1d.transfer_matrices_p, line 10.)
Todo
clean, fix, separate leapfrog integration in dedicated module
(The original entry is located in /home/placais/LightWin/source/beam_calculation/envelope_1d/transfer_matrices_p.py:docstring of beam_calculation.envelope_1d.transfer_matrices_p.z_field_map_leapfrog, line 3.)
Todo
Maybe Envelope3D
could inherit from Envelope1D
and this method would be written outnonly once.
(The original entry is located in /home/placais/LightWin/source/beam_calculation/envelope_3d/envelope_3d.py:docstring of beam_calculation.envelope_3d.envelope_3d.Envelope3D._adapt_cavity_settings, line 6.)
Todo
Patch in transfer matrix to get proper input transfer matrix. In future, input beam will not hold transf mat in anymore.
(The original entry is located in /home/placais/LightWin/source/beam_calculation/envelope_3d/simulation_output_factory.py:docstring of beam_calculation.envelope_3d.simulation_output_factory.SimulationOutputFactoryEnvelope3D.run, line 3.)
Todo
3D field maps?
(The original entry is located in /home/placais/LightWin/source/beam_calculation/envelope_3d/transfer_matrices_p.py:docstring of beam_calculation.envelope_3d.transfer_matrices_p, line 6.)
Todo
Maybe it would be clearer to compose r_xx, r_yy, r_zz. As an example, the zz_drift is used in several places.
(The original entry is located in /home/placais/LightWin/source/beam_calculation/envelope_3d/transfer_matrices_p.py:docstring of beam_calculation.envelope_3d.transfer_matrices_p, line 9.)
Todo
Will be necessary to separate this module into several sub-packages
(The original entry is located in /home/placais/LightWin/source/beam_calculation/envelope_3d/transfer_matrices_p.py:docstring of beam_calculation.envelope_3d.transfer_matrices_p, line 13.)
Todo
more math, less numpy. look at envelope 1d version
(The original entry is located in /home/placais/LightWin/source/beam_calculation/envelope_3d/transfer_matrices_p.py:docstring of beam_calculation.envelope_3d.transfer_matrices_p, line 16.)
Todo
As I am working on floats and not on np arrays, maybe the functions from the cmath package would be more adapted?
(The original entry is located in /home/placais/LightWin/source/beam_calculation/envelope_3d/transfer_matrices_p.py:docstring of beam_calculation.envelope_3d.transfer_matrices_p._quadrupole_trigo_hyperbolic, line 3.)
Todo
fixme
(The original entry is located in /home/placais/LightWin/source/beam_calculation/factory.py:docstring of beam_calculation.factory.BeamCalculatorsFactory._patch_to_remove_misunderstood_key, line 3.)
Todo
different functions, for different outputs. At least, an _element_to_index and a _element_to_indexes. And also a different function for when the index element is desired.
(The original entry is located in /home/placais/LightWin/source/beam_calculation/simulation_output/factory.py:docstring of beam_calculation.simulation_output.factory._element_to_index, line 7.)
Todo
Do I really need the r_zz_elt
key??
(The original entry is located in /home/placais/LightWin/source/beam_calculation/simulation_output/simulation_output.py:docstring of beam_calculation.simulation_output.simulation_output, line 3.)
Todo
Do I really need z_abs? Envelope1D does not uses it while TraceWin does.
(The original entry is located in /home/placais/LightWin/source/beam_calculation/simulation_output/simulation_output.py:docstring of beam_calculation.simulation_output.simulation_output, line 6.)
Todo
Transfer matrices are stored in TransferMatrix
, but also in
BeamParameters.zdelta
.
(The original entry is located in /home/placais/LightWin/source/beam_calculation/simulation_output/simulation_output.py:docstring of beam_calculation.simulation_output.simulation_output, line 9.)
Todo
Maybe the synchronous phase model should appear somewhere in here?
(The original entry is located in /home/placais/LightWin/source/beam_calculation/simulation_output/simulation_output.py:docstring of beam_calculation.simulation_output.simulation_output, line 13.)
Todo
normalized or not???
(The original entry is located in /home/placais/LightWin/source/beam_calculation/tracewin/beam_parameters_factory.py:docstring of beam_calculation.tracewin.beam_parameters_factory.BeamParametersFactoryTraceWin._extract_emittance_for_99percent, line 3.)
Todo
another possibly unbound error to handle
(The original entry is located in /home/placais/LightWin/source/beam_calculation/tracewin/simulation_output_factory.py:docstring of beam_calculation.tracewin.simulation_output_factory._add_dummy_data, line 6.)
Todo
fix possible unbound error for n_columns
.
(The original entry is located in /home/placais/LightWin/source/beam_calculation/tracewin/simulation_output_factory.py:docstring of beam_calculation.tracewin.simulation_output_factory._remove_incomplete_line, line 3.)
Todo
Maybe I should also store the synchronous phase?
(The original entry is located in /home/placais/LightWin/source/beam_calculation/tracewin/tracewin.py:docstring of beam_calculation.tracewin.tracewin.TraceWin._save_cavities_entry_phases, line 8.)
Todo
Handling of arguments for TW could be cleaner
(The original entry is located in /home/placais/LightWin/source/config/beam_calculator.py:docstring of config.beam_calculator, line 3.)
Todo
I do not like the fact that some design_space_kw
values are defined
twice… I could move the default values to the initialisation of the
DesignSpace object maybe. Eventually, everything from this script will be
moved to the object instantiation anyway.
(The original entry is located in /home/placais/LightWin/source/config/design_space.py:docstring of config.design_space, line 3.)
Todo
It would be interesting to be able to pass some fig_kw directly from the
.toml
. I guess it is one of the reason of why I started refactoring the
plots…
(The original entry is located in /home/placais/LightWin/source/config/plots.py:docstring of config.plots, line 8.)
Todo
Specific test for every optimisation method? For now, just trust the user.
(The original entry is located in /home/placais/LightWin/source/config/wtf.py:docstring of config.wtf, line 3.)
Todo
Maybe make test and config to dict more compact?
(The original entry is located in /home/placais/LightWin/source/config_manager.py:docstring of config_manager, line 9.)
Todo
- position:
element name
element number
end_section
- variable:
maybe add this? Unnecessary at this point
(The original entry is located in /home/placais/LightWin/source/config_manager.py:docstring of config_manager, line 12.)
Todo
Remove global variables.
(The original entry is located in /home/placais/LightWin/source/config_manager.py:docstring of config_manager, line 20.)
Todo
Compute_transfer_matrices: simplify, add a calculation of missing phi_0 at the end
(The original entry is located in /home/placais/LightWin/source/core/accelerator/accelerator.py:docstring of core.accelerator.accelerator, line 9.)
Todo
Cleaner Accelerator factory (use class, not just a function).
(The original entry is located in /home/placais/LightWin/source/core/accelerator/accelerator.py:docstring of core.accelerator.accelerator, line 13.)
Todo
Should I reset the sync particle entry phase?
(The original entry is located in /home/placais/LightWin/source/core/accelerator/accelerator.py:docstring of core.accelerator.accelerator.Accelerator.keep_settings, line 3.)
Todo
Remove tracewin command from BeamParameters
(The original entry is located in /home/placais/LightWin/source/core/beam_parameters/__init__.py:docstring of core.beam_parameters, line 6.)
Todo
Remove the is_3d
, is_multipart
as I always create the same
object with True
, True
.
Also self._determine_phase_spaces()
is useless.
(The original entry is located in /home/placais/LightWin/source/core/beam_parameters/factory.py:docstring of core.beam_parameters.factory.InitialBeamParametersFactory, line 5.)
Todo
Would be better if all emittances had the same units? Check consistency with rest of the code…
(The original entry is located in /home/placais/LightWin/source/core/beam_parameters/helper.py:docstring of core.beam_parameters.helper.twiss_from_sigma, line 9.)
Todo
Check if property setter work with the *= thingy
(The original entry is located in /home/placais/LightWin/source/core/beam_parameters/helper.py:docstring of core.beam_parameters.helper.twiss_from_sigma, line 13.)
Todo
Could be cleaner.
(The original entry is located in /home/placais/LightWin/source/core/beam_parameters/initial_beam_parameters.py:docstring of core.beam_parameters.initial_beam_parameters.InitialBeamParameters.sigma, line 3.)
Todo
Implement SET_SYNC_PHASE
(The original entry is located in /home/placais/LightWin/source/core/commands/__init__.py:docstring of core.commands, line 3.)
Todo
How should I save the min/max variables?? For now, use None.
(The original entry is located in /home/placais/LightWin/source/core/commands/adjust.py:docstring of core.commands.adjust, line 8.)
Todo
handle personalized name of commands (marker)
(The original entry is located in /home/placais/LightWin/source/core/commands/factory.py:docstring of core.commands.factory, line 3.)
Todo
Check if it would be relatable to hold some arguments? As for now, I would be better off with a run function instead of a class.
(The original entry is located in /home/placais/LightWin/source/core/commands/factory.py:docstring of core.commands.factory.CommandFactory.__init__, line 3.)
Todo
Make this robust.
(The original entry is located in /home/placais/LightWin/source/core/commands/factory.py:docstring of core.commands.factory.CommandFactory._personalized_name, line 3.)
Todo
As for now, the effect of this command will be overriden by the _force_a_lattice_for_every_element. See how I should handle this…
(The original entry is located in /home/placais/LightWin/source/core/commands/lattice.py:docstring of core.commands.lattice.LatticeEnd.apply, line 3.)
Todo
Should also modify RFQ_CEL, CAVSIN, NCELLS according to doc.
(The original entry is located in /home/placais/LightWin/source/core/commands/set_sync_phase.py:docstring of core.commands.set_sync_phase, line 3.)
Todo
Check if this still works, as lattice and idx_in_lattice are now initialized with -1 instead of None.
(The original entry is located in /home/placais/LightWin/source/core/commands/superpose_map.py:docstring of core.commands.superpose_map.SuperposeMap._decrement_lattice_indexes, line 3.)
Todo
Check behavior w.r.t. LATTICE.
(The original entry is located in /home/placais/LightWin/source/core/elements/edge.py:docstring of core.elements.edge, line 3.)
Todo
clean the patch for the ‘name’. my has and get methods do not work with @property
(The original entry is located in /home/placais/LightWin/source/core/elements/element.py:docstring of core.elements.element, line 3.)
Todo
Make this robust.
(The original entry is located in /home/placais/LightWin/source/core/elements/factory.py:docstring of core.elements.factory.ElementFactory._personalized_name, line 3.)
Todo
Similar to synchronous phase, allow for V_cav to be “master” instead of k_e.
(The original entry is located in /home/placais/LightWin/source/core/elements/field_maps/cavity_settings.py:docstring of core.elements.field_maps.cavity_settings, line 7.)
Todo
Which syntax for when I want to compute the value of a property but not
return it? Maybe a _ = self.phi_0_abs
? Maybe this case should not
appear here, appart for when I debug.
(The original entry is located in /home/placais/LightWin/source/core/elements/field_maps/cavity_settings.py:docstring of core.elements.field_maps.cavity_settings.CavitySettings, line 3.)
Todo
Determine if status should be kept here or in the field map.
(The original entry is located in /home/placais/LightWin/source/core/elements/field_maps/cavity_settings.py:docstring of core.elements.field_maps.cavity_settings.CavitySettings, line 11.)
Todo
For TraceWin solver, I will also need the field map index.
(The original entry is located in /home/placais/LightWin/source/core/elements/field_maps/cavity_settings.py:docstring of core.elements.field_maps.cavity_settings.CavitySettings, line 14.)
Todo
Maybe not necessary to raise an error when there is a mismatch.
(The original entry is located in /home/placais/LightWin/source/core/elements/field_maps/cavity_settings.py:docstring of core.elements.field_maps.cavity_settings.CavitySettings._check_consistency_of_status_and_reference, line 3.)
Todo
This will be subclassed, as the different solvers do not have the same
needs. TraceWin
does not need to load the electromagnetic fields,
so every FIELD_MAP
is implemented.
Envelope1D
cannot support 3D.
etc
(The original entry is located in /home/placais/LightWin/source/core/elements/field_maps/factory.py:docstring of core.elements.field_maps.factory, line 6.)
Todo
Handle the different kind of field_maps…
(The original entry is located in /home/placais/LightWin/source/core/elements/field_maps/field_map.py:docstring of core.elements.field_maps.field_map, line 3.)
Todo
Handle the SET_SYNCH_PHASE command
(The original entry is located in /home/placais/LightWin/source/core/elements/field_maps/field_map.py:docstring of core.elements.field_maps.field_map, line 6.)
Todo
Hande phi_s fitting with beam_calculation.tracewin.Tracewin
(The original entry is located in /home/placais/LightWin/source/core/elements/field_maps/field_map.py:docstring of core.elements.field_maps.field_map, line 9.)
Todo
when subclassing field_maps, do not forget to update the transfer matrix
selector in:
- Envelope3D
- SingleElementEnvelope3DParameters
- SetOfCavitySettings
- the run_with_this
methods
(The original entry is located in /home/placais/LightWin/source/core/elements/field_maps/field_map.py:docstring of core.elements.field_maps.field_map, line 12.)
Todo
Maybe move this to the field_map package once it is implemented
(The original entry is located in /home/placais/LightWin/source/core/elements/superposed_field_map.py:docstring of core.elements.superposed_field_map, line 7.)
Todo
The line
is edited to remove personalized name, weight and always have
the same arguments at the same position. But after I shall re-add them with
reinsert_optional_commands_in_line. This is very patchy and un-Pythonic.
(The original entry is located in /home/placais/LightWin/source/core/instruction.py:docstring of core.instruction, line 3.)
Todo
Instantiate this in BeamCalculator
. It could be initialized with
the load_electromagnetic_files
flag (False for TraceWin), the list of
implemented elements/commands (ex Envelope3D, not everything is set).
(The original entry is located in /home/placais/LightWin/source/core/instructions_factory.py:docstring of core.instructions_factory, line 3.)
Todo
maybe ElementFactory and CommandFactory should be instantiated from this? Or from another class, but they do have a lot in common
(The original entry is located in /home/placais/LightWin/source/core/instructions_factory.py:docstring of core.instructions_factory, line 8.)
Todo
for now, forcing loading of cython field maps
(The original entry is located in /home/placais/LightWin/source/core/instructions_factory.py:docstring of core.instructions_factory, line 12.)
Todo
Check if the return value from apply_commands
is necessary.
(The original entry is located in /home/placais/LightWin/source/core/instructions_factory.py:docstring of core.instructions_factory.InstructionsFactory.run, line 3.)
Todo
Also handle .dst
file in subset_list_run()
.
(The original entry is located in /home/placais/LightWin/source/core/list_of_elements/factory.py:docstring of core.list_of_elements.factory, line 11.)
Todo
Maybe it will be necessary to handle cases where the synch particle is not perfectly on the axis?
(The original entry is located in /home/placais/LightWin/source/core/list_of_elements/factory.py:docstring of core.list_of_elements.factory, line 14.)
Todo
Find a smart way to sublass ListOfElementsFactory
according to
the BeamCalculator
… Loading field maps not necessary with
TraceWin
for example.
(The original entry is located in /home/placais/LightWin/source/core/list_of_elements/factory.py:docstring of core.list_of_elements.factory, line 18.)
Todo
The elements_to_dump
key should be in the configuration file
(The original entry is located in /home/placais/LightWin/source/core/list_of_elements/factory.py:docstring of core.list_of_elements.factory, line 23.)
Todo
Maybe gather some things with the subset?
(The original entry is located in /home/placais/LightWin/source/core/list_of_elements/factory.py:docstring of core.list_of_elements.factory.ListOfElementsFactory.from_existing_list, line 7.)
Todo
Filtering consistency.
(The original entry is located in /home/placais/LightWin/source/core/list_of_elements/helper.py:docstring of core.list_of_elements.helper, line 3.)
Todo
Delete dat_content
, which does the same thing as elts_n_cmds
but
less good
(The original entry is located in /home/placais/LightWin/source/core/list_of_elements/list_of_elements.py:docstring of core.list_of_elements.list_of_elements, line 9.)
Todo
Check if it can be more efficient. Maybe store R_xx, R_yy, R_zz separately?
(The original entry is located in /home/placais/LightWin/source/core/transfer_matrix/transfer_matrix.py:docstring of core.transfer_matrix.transfer_matrix, line 3.)
Todo
Maybe transfer matrices should always be (6, 6)??
(The original entry is located in /home/placais/LightWin/source/core/transfer_matrix/transfer_matrix.py:docstring of core.transfer_matrix.transfer_matrix, line 6.)
Todo
_init_from
methods in factory???
(The original entry is located in /home/placais/LightWin/source/core/transfer_matrix/transfer_matrix.py:docstring of core.transfer_matrix.transfer_matrix, line 9.)
Todo
The SimulationOutput.get method with transfer matrix components fails with
TraceWin
solver.
(The original entry is located in /home/placais/LightWin/source/core/transfer_matrix/transfer_matrix.py:docstring of core.transfer_matrix.transfer_matrix, line 12.)
Todo
maybe create a mother class more generic, also for FaultScenarioEvaluator?
(The original entry is located in /home/placais/LightWin/source/evaluator/simulation_output/factory.py:docstring of evaluator.simulation_output.factory, line 3.)
Todo
different factories for evaluation during the fit and evaluation after
(The original entry is located in /home/placais/LightWin/source/evaluator/simulation_output/simulation_output_evaluator.py:docstring of evaluator.simulation_output.simulation_output_evaluator, line 7.)
Todo
Maybe should inherit from a more generic factory.
(The original entry is located in /home/placais/LightWin/source/experimental/new_evaluator/simulation_output/factory.py:docstring of experimental.new_evaluator.simulation_output.factory, line 3.)
Todo
Remove the elts
argument??
(The original entry is located in /home/placais/LightWin/source/experimental/plotter/i_plotter.py:docstring of experimental.plotter.i_plotter, line 3.)
Todo
Maybe should inherit from MatplotlibPlotter?
(The original entry is located in /home/placais/LightWin/source/experimental/plotter/pd_plotter.py:docstring of experimental.plotter.pd_plotter, line 3.)
Todo
not clear what happens here. separate __init__ in several functions
(The original entry is located in /home/placais/LightWin/source/failures/fault.py:docstring of failures.fault, line 5.)
Todo
store DesignSpace as attribute rather than Variable Constraint compute_constraints
(The original entry is located in /home/placais/LightWin/source/failures/fault.py:docstring of failures.fault, line 8.)
Todo
Could be cleaner.
(The original entry is located in /home/placais/LightWin/source/failures/fault_scenario.py:docstring of failures.fault_scenario.FaultScenario.__init__, line 3.)
Todo
make this more readable
(The original entry is located in /home/placais/LightWin/source/failures/fault_scenario.py:docstring of failures.fault_scenario.FaultScenario.fix_all, line 3.)
Todo
I should create a SetOfCavitySettings
with
CavitySettings
for every cavity of the compensation zone.
Mandatory to recompute the synchronous phases.
(The original entry is located in /home/placais/LightWin/source/failures/set_of_cavity_settings.py:docstring of failures.set_of_cavity_settings, line 3.)
Todo
Should create the full SetOfCavitySettings directly from the OptimisationAlgorithm. For now, the OptimisationAlgorithm creates a first SetOfCavitySettings. Then, the BeamCalculator calls this method to generate a new SetOfCavitySettings. Ugly, especially given the fact that OptimisationAlgorithm has its ListOfElements.
(The original entry is located in /home/placais/LightWin/source/failures/set_of_cavity_settings.py:docstring of failures.set_of_cavity_settings.SetOfCavitySettings.from_incomplete_set, line 14.)
Todo
List of allowed tracewin arguments in doc
(The original entry is located in source/manual/configuration.beam_calculator.rst, line 32.)
Todo
There are doublons between doc in config.beam_calculator
and here. Maybe keep in module, but make the format better.
(The original entry is located in source/manual/configuration.beam_calculator.rst, line 35.)
Todo
List of allowed tracewin arguments in doc
(The original entry is located in /home/placais/LightWin/docs/source/manual/configuration.beam_calculator.rst, line 32.)
Todo
There are doublons between doc in config.beam_calculator
and here. Maybe keep in module, but make the format better.
(The original entry is located in /home/placais/LightWin/docs/source/manual/configuration.beam_calculator.rst, line 35.)
Todo
A Jupyter Notebook would be better to show with examples.
(The original entry is located in /home/placais/LightWin/docs/source/manual/get_method.rst, line 6.)
Todo
Consider providing more detailed instructions for setting the PYTHONPATH
.
For now, you can search for “PYTHONPATH” or “ModuleNotFoundError” online for additional guidance.
(The original entry is located in source/manual/installation.python.rst, line 89.)
Todo
Revise integration so that a missing Cython does not lead to import errors.
Specific Cython tests
(The original entry is located in source/manual/installation.cython.rst, line 88.)
Todo
Revise integration so that a missing Cython does not lead to import errors.
Specific Cython tests
(The original entry is located in /home/placais/LightWin/docs/source/manual/installation.cython.rst, line 88.)
Todo
Consider providing more detailed instructions for setting the PYTHONPATH
.
For now, you can search for “PYTHONPATH” or “ModuleNotFoundError” online for additional guidance.
(The original entry is located in /home/placais/LightWin/docs/source/manual/installation.python.rst, line 89.)
Todo
Consistency between font size of normal text and math text. Not aesthetic when I have text and units side to side.
(The original entry is located in /home/placais/LightWin/docs/source/manual/units.rst, line 8.)
Todo
General units: MeV etc
(The original entry is located in /home/placais/LightWin/docs/source/manual/units.rst, line 11.)
Todo
Ease re-usage of old simulations. Very easy to implement, just use the recompute
flag, override the run_with_this
method, and user must provide a results
directory.
(The original entry is located in /home/placais/LightWin/docs/source/manual/usage.rst, line 7.)
Todo
Check if it is necessary to pass out the whole elts
to
OptimisationAlgorithm
?
(The original entry is located in /home/placais/LightWin/source/optimisation/algorithms/algorithm.py:docstring of optimisation.algorithms.algorithm, line 9.)
Todo
Methods and flags to keep the optimisation history or not, and also to save
it or not. See Explorator
.
(The original entry is located in /home/placais/LightWin/source/optimisation/algorithms/algorithm.py:docstring of optimisation.algorithms.algorithm, line 13.)
Todo
Better handling of the attribute folder
. In particular, a correct value
should be set at the OptimisationAlgorithm
instanciation.
(The original entry is located in /home/placais/LightWin/source/optimisation/algorithms/algorithm.py:docstring of optimisation.algorithms.algorithm, line 17.)
Todo
Make this class more robust. In particular: save all objectives (not just
the norm), handle export when there is more than two variables, also save
complementary data (e.g.: always save phi_s
even it is not in the
constraints nor variables).
(The original entry is located in /home/placais/LightWin/source/optimisation/algorithms/explorator.py:docstring of optimisation.algorithms.explorator, line 7.)
Todo
Allow for different number of points according to variable.
(The original entry is located in /home/placais/LightWin/source/optimisation/algorithms/explorator.py:docstring of optimisation.algorithms.explorator, line 13.)
Todo
Docstrings
(The original entry is located in /home/placais/LightWin/source/optimisation/algorithms/factory.py:docstring of optimisation.algorithms.factory, line 3.)
Todo
Add support for when all element do not have the same variables/constraints.
(The original entry is located in /home/placais/LightWin/source/optimisation/design_space/design_space.py:docstring of optimisation.design_space.design_space._from_file, line 3.)
Todo
check docstrings ref [1]
(The original entry is located in /home/placais/LightWin/source/optimisation/design_space/helper.py:docstring of optimisation.design_space.helper, line 3.)
Todo
decorator to auto output the variables and constraints?
(The original entry is located in /home/placais/LightWin/source/optimisation/objective/factory.py:docstring of optimisation.objective.factory, line 6.)
Todo
Clarify that objective_position_preset
should be understandable by
failures.position
.
(The original entry is located in /home/placais/LightWin/source/optimisation/objective/factory.py:docstring of optimisation.objective.factory, line 9.)
Todo
Allow from_file
.
(The original entry is located in /home/placais/LightWin/source/optimisation/objective/factory.py:docstring of optimisation.objective.factory.EnergySyncPhaseMismatch._get_phi_s, line 3.)
Todo
end_section, elt.name
(The original entry is located in /home/placais/LightWin/source/optimisation/objective/position.py:docstring of optimisation.objective.position, line 11.)
Todo
full_linac
seems useless. Could be a strategy instead of an override
setting. Would need to edit the ObjectiveFactory
too.
(The original entry is located in /home/placais/LightWin/source/optimisation/objective/position.py:docstring of optimisation.objective.position, line 14.)
Todo
Implement loss functions.
(The original entry is located in /home/placais/LightWin/source/optimisation/objective/quantity_is_between.py:docstring of optimisation.objective.quantity_is_between, line 3.)
Todo
Insert line skip at each section change in the output.dat
(The original entry is located in /home/placais/LightWin/source/tracewin_utils/dat_files.py:docstring of tracewin_utils.dat_files, line 3.)
Todo
some functions are not used anymore I guess…
(The original entry is located in /home/placais/LightWin/source/tracewin_utils/electromagnetic_fields.py:docstring of tracewin_utils.electromagnetic_fields, line 6.)
Todo
Better handling of the module import
(The original entry is located in /home/placais/LightWin/source/tracewin_utils/electromagnetic_fields.py:docstring of tracewin_utils.electromagnetic_fields, line 9.)
Todo
I think that this should be a method right? Different FieldMap objects -> different loading func?
(The original entry is located in /home/placais/LightWin/source/tracewin_utils/electromagnetic_fields.py:docstring of tracewin_utils.electromagnetic_fields.load_electromagnetic_fields, line 6.)
Todo
Clean this, a lot of old things that may not be used.
(The original entry is located in /home/placais/LightWin/source/util/debug.py:docstring of util.debug, line 3.)
Todo
Ellipse plot could be better
(The original entry is located in /home/placais/LightWin/source/util/debug.py:docstring of util.debug, line 6.)
Todo
Clean this, check what is still used.
(The original entry is located in /home/placais/LightWin/source/util/helper.py:docstring of util.helper, line 3.)
Todo
Second example does not work
(The original entry is located in /home/placais/LightWin/source/util/helper.py:docstring of util.helper.pascal_case, line 3.)
Todo
Modernize this, with type hint etc.
(The original entry is located in /home/placais/LightWin/source/util/log_manager.py:docstring of util.log_manager, line 13.)
Todo
fix colors in plots after pass beauty
(The original entry is located in /home/placais/LightWin/source/util/pass_beauty.py:docstring of util.pass_beauty, line 13.)
Todo
discriminate feasible from unfeasible solutions
(The original entry is located in /home/placais/LightWin/source/visualization/anim.py:docstring of visualization.anim, line 3.)
Todo
better detection of what is a multiparticle simulation and what is not. Currently looking for “‘partran’: 0” in the name of the solver, making the assumption that multipart is the default. But it depends on the .ini… update: just use .is_a_multiparticle_simulation
(The original entry is located in /home/placais/LightWin/source/visualization/plot.py:docstring of visualization.plot, line 6.)
Todo
Fix when there is only one accelerator to plot.
(The original entry is located in /home/placais/LightWin/source/visualization/plot.py:docstring of visualization.plot, line 12.)
Todo
Different plot according to dimension of FieldMap, or according to if it accelerates or not (ex when quadrupole defined by a field map)
(The original entry is located in /home/placais/LightWin/source/visualization/plot.py:docstring of visualization.plot, line 15.)