The qupulse project aims to produce a software toolkit facilitating experiments involving pulse driven state manipulation of physical qubits.
It provides a high-level hardware-independent representation of pulses as well as means to translate this representation to hardware-specific device instructions and waveforms, execute these instructions and perform corresponding measurements.
Pulses can be assembled from previously defined subpulses, allowing easy construction of high-level from low-level pulses and re-use of previous work. Additionally, all pulses are parameterizable allowing users to fine-tune and adapt pulse templates to specific hardware or functionality without redefining an entire pulse sequence. To ensure meaningful parameter values, constraints can be put on parameters on a per-pulse basis.
The qtune package is designed for the automation of fine-tuning gate-defined quantum dots which includes the optimization of the sensing dot contrast, the chemical potential and tunnel couplings between dots and electron reservoirs. The optimization algorithm can be chosen for each parameter or group of parameters individually. The package also containes a quasi-Newton method using the Kalman filter for gradient updates .
qtune features an HDF5 storage system and a GUI. Its general implementation makes it usefull for the design of an algorithm for any optimization problem with constraints.
The filter_functions package implements the efficient numerical calculation of generalized filter functions for sequences of quantum gates. Filter functions capture a driven quantum system's susceptibility to noise with a given power spectral density. The formalism can be extended to treat unitary quantum operations and perturbatively compute the process matrix in the presence of universal classical noise. From this, various quantities of interest such as the average gate fidelity, leakage, or measurement probabilities can be derived.
The software is written in Python and allows the fast calculation of filter functions and the Liouville representation of a noisy quantum channel for piecewise-constant control pulses. Pulses implementing quantum gates can be easily sequenced and their composite filter function computed from those of the original pulses, allowing for the simple assembly of sequences of quantum gates such as algorithms. The package is extensively documented and provides various convenience routines for plotting and analysis.