# krotov package¶

The main function exposed here is optimize_pulses().

This acts on a list of Objective instances, which may either be constructed manually, or through the helper functions gate_objectives() and ensemble_objectives().

The submodules contain various auxiliary functions for constructing arguments for optimize_pulses(), for common use cases. This includes functions for constructing control fields (guess pulses), optimization functionals, convergence checks, analysis tools, and propagators, as well as more technical routines for parallelization, low-level data conversion, and estimators for second-order updates.

Submodules:

## Summary¶

__all__ Classes:

 Objective A single objective for optimization with Krotov’s method. Result Result of a Krotov optimization with optimize_pulses().

__all__ Functions:

 ensemble_objectives Extend objectives for an “ensemble optimization” gate_objectives Construct a list of objectives for optimizing towards a quantum gate optimize_pulses Use Krotov’s method to optimize towards the given objectives.