Result of a Krotov optimization with
for each iteration number, the number of seconds that were spent in the optimization
for each iteration, a list of complex overlaps between the target state and the forward-propagated state for each objective, assuming
Objective.targetcontains the target state. If there is no target state, an empty list.
List of the optimized control fields, in the order corresponding to
If the optimization was performed with
store_all_pulses=True, for each iteration, a list of the optimized pulses (in the order corresponding to
guess_controls). These pulses are defined at midpoints of the tlist intervals. Empty list if
for each objective, a list of states for each value in tlist, obtained from propagation under the final optimized control fields.
List of objectives with the given controls plugged in.
A copy of
objectives, where all control fields are replaced by the elements of the controls.
- Return type
For plugging in the optimized controls, the
optimized_objectivesattribute is equivalent to
load(filename, objectives=None, finalize=False)¶
objectives (None or list[Objective]) – If given, after loading
Resultfrom the given filename, overwrite
objectiveswith the given objectives. This is necessary because
dump()does not preserve time-dependent controls that are Python functions.
finalize (bool) – If given as True, make sure that the
optimized_controlsare properly finalized. This allows to load a
Resultthat was dumped before
optimize_pulses()finished, e.g. by
Resultinstance loaded from filename
- Return type
Resultobject can be restored from the resulting file using
load(). However, time-dependent control fields that are callables/functions will not be preserved, as they are not “pickleable”.