wtf section

wtf stands for what to fit. This section parametrizes the failed cavities, as well as how they are fixed.

k out of n method

Entry

Type

Description

Mandatory?

Allowed values

failed

list

Index/name of failed cavities.

Must be a list[list[int]] or

list[list[str]].

history_kwargs

dict

kwargs for the

OptimizationHistory.

id_nature

str

Indicates if failed is element

index/cavity index/name,

element or cavity or name.

(‘element’, ‘cavity’, ‘name’)

objective_preset

str

Objectives for the

optimisation algorithm.

(‘EnergyMismatch’, ‘EnergyPhaseMismatch’, ‘EnergySeveralMismatches’, ‘EnergySyncPhaseMismatch’, ‘experimental’, ‘rephased_ADS’, ‘simple_ADS’, ‘sync_phase_as_objective_ADS’)

optimisation_

algorithm

str

Name of optimisation

algorithm.

(‘bayesian_optimization’, ‘differential_evolution’, ‘downhill_simplex’, ‘downhill_simplex_penalty’, ‘experimental’, ‘explorator’, ‘least_squares’, ‘least_squares_penalty’, ‘nelder_mead’, ‘nelder_mead_penalty’, ‘nsga’)

optimisation_

algorithm_kwargs

dict

Keyword arguments passed to

the optimisation algorithm.

strategy

str

How compensating cavities are

selected.

(‘k out of n’, ‘l neighboring lattices’, ‘global’, ‘global_downstream’, ‘manual’)

tie_politics

str

How to select the compensating

elements when several are

equidistant to the failure.

(‘upstream first’, ‘downstream first’)

shift

int

Distance increase for

downstream elements (shift <

0) or upstream elements

(shift > 0). Used to have a

window of compensating

cavities which is not centered

around the failed elements.

k

int

Number of compensating

cavities per failed cavity.

l neighboring lattices method

Entry

Type

Description

Mandatory?

Allowed values

failed

list

Index/name of failed cavities.

Must be a list[list[int]] or

list[list[str]].

history_kwargs

dict

kwargs for the

OptimizationHistory.

id_nature

str

Indicates if failed is element

index/cavity index/name,

element or cavity or name.

(‘element’, ‘cavity’, ‘name’)

objective_preset

str

Objectives for the

optimisation algorithm.

(‘EnergyMismatch’, ‘EnergyPhaseMismatch’, ‘EnergySeveralMismatches’, ‘EnergySyncPhaseMismatch’, ‘experimental’, ‘rephased_ADS’, ‘simple_ADS’, ‘sync_phase_as_objective_ADS’)

optimisation_

algorithm

str

Name of optimisation

algorithm.

(‘bayesian_optimization’, ‘differential_evolution’, ‘downhill_simplex’, ‘downhill_simplex_penalty’, ‘experimental’, ‘explorator’, ‘least_squares’, ‘least_squares_penalty’, ‘nelder_mead’, ‘nelder_mead_penalty’, ‘nsga’)

optimisation_

algorithm_kwargs

dict

Keyword arguments passed to

the optimisation algorithm.

strategy

str

How compensating cavities are

selected.

(‘k out of n’, ‘l neighboring lattices’, ‘global’, ‘global_downstream’, ‘manual’)

tie_politics

str

How to select the compensating

elements when several are

equidistant to the failure.

(‘upstream first’, ‘downstream first’)

shift

int

Distance increase for

downstream elements (shift <

0) or upstream elements

(shift > 0). Used to have a

window of compensating

cavities which is not centered

around the failed elements.

l

int

Number of compensating

lattices per failed cavity.

min_number_of_

cavities_in_lattice

int

Minimum number of compensating

cavities in the lattice; when

a lattice does not reach this

number, we use it anyway for

compensation, but we also take

another lattice. Designed to

remove the lattices that do

not have any cavity.

Manual association of failed / compensating cavities

If you want to manually associate each failed cavity with its compensating cavities:

Entry

Type

Description

Mandatory?

Allowed values

failed

list

Index/name of failed cavities.

Must be a list[list[int]] or

list[list[str]].

history_kwargs

dict

kwargs for the

OptimizationHistory.

id_nature

str

Indicates if failed is element

index/cavity index/name,

element or cavity or name.

(‘element’, ‘cavity’, ‘name’)

objective_preset

str

Objectives for the

optimisation algorithm.

(‘EnergyMismatch’, ‘EnergyPhaseMismatch’, ‘EnergySeveralMismatches’, ‘EnergySyncPhaseMismatch’, ‘experimental’, ‘rephased_ADS’, ‘simple_ADS’, ‘sync_phase_as_objective_ADS’)

optimisation_

algorithm

str

Name of optimisation

algorithm.

(‘bayesian_optimization’, ‘differential_evolution’, ‘downhill_simplex’, ‘downhill_simplex_penalty’, ‘experimental’, ‘explorator’, ‘least_squares’, ‘least_squares_penalty’, ‘nelder_mead’, ‘nelder_mead_penalty’, ‘nsga’)

optimisation_

algorithm_kwargs

dict

Keyword arguments passed to

the optimisation algorithm.

strategy

str

How compensating cavities are

selected.

(‘k out of n’, ‘l neighboring lattices’, ‘global’, ‘global_downstream’, ‘manual’)

failed

list

Index/name of failed cavities.

Must be a

list[list[list[int]]] or

list[list[list[str]]].

compensating_manual

list

Index/name of compensating

cavities cavities. Must be a

list[list[list[int]]] or

list[list[list[str]]]. The

number of:class:.FaultScenarios (

length of most outer list)

must match failed. The number

of groups of compensating

cavities (second level) must

match failed.

Example

# Indexes are cavity indexes
idx = "cavity"
failed = [
   [0, 1],       # First simulation first cryomodule is down
   [0],          # Second simulation only first cavity is down
   [1, 45]       # Third simulation second and 46th cavity are down
]

Optimisation algorithms

Here are mappings of optimisation_algorithm key to actual OptimisationAlgorithm. Check the documentation of the optimisation algorithm you want to use, in particular if you want to tune it using optimisation_algorithm_kwargs key.

Optimisation algorithm

Corresponding keys

BayesianOptimizationLW

bayesian_optimization, experimental

DifferentialEvolution

differential_evolution

DownhillSimplex

downhill_simplex, nelder_mead

DownhillSimplexPenalty

downhill_simplex_penalty, nelder_mead_penalty

Explorator

explorator

LeastSquares

least_squares

LeastSquaresPenalty

least_squares_penalty

NSGA

nsga

SimulatedAnnealing

simulated_annealing