minimize_difference_with_ref module
Define a simple optimization objective.
It is a simple difference over a given quantity between the reference linac and the linac under tuning.
- class MinimizeDifferenceWithRef(name: str, weight: float, get_key: str, get_kwargs: dict[str, Element | str | bool], reference: SimulationOutput, descriptor: str | None = None)
Bases:
ObjectiveA simple difference at a given point between ref and fix.
- __init__(name: str, weight: float, get_key: str, get_kwargs: dict[str, Element | str | bool], reference: SimulationOutput, descriptor: str | None = None) None
Set complementary
SimulationOutput.get()flags, reference value.- Parameters:
get_key (str) – Name of the quantity to get, which must be an attribute of
SimulationOutput.get_kwargs (dict[str, Element | str | bool]) – Keyword arguments for the
SimulationOutput.get()method. We do not check its validity, but in general you will want to define the keyseltandpos. If objective concerns a phase, you may want to precise theto_degkey. You also should explicit theto_numpykey.reference (SimulationOutput) – The reference simulation output from which the ideal value will be taken.
- _value_getter(simulation_output: SimulationOutput) float
Get desired value using
SimulationOutput.get()method.
- evaluate(simulation_output: SimulationOutput) float
Compute residue of this objective.
- Parameters:
simulation_output (SimulationOutput | float) – Object containing simulation results of the broken linac.
- Returns:
residue – Difference between current evaluation and ideal_value value for
self.name, scaled byself.weight.- Return type:
- _abc_impl = <_abc._abc_data object at 0x7f36f755c140>