PK
ë»8U<
<
optimization_code.pyUT K“/cK“/c### code for optimization over t_p (paper https://arxiv.org/abs/2102.08336).
# The full code of the Lindblad simulations is available upon request from Francesco Battistel (battistel.fra@protonmail.com)
def eval_optimization_waveform_params(self, pulse_len, waveform_params, setup):
waveform_params['pulse_len'] = pulse_len # NB: pulse_len = t_p-2*t_rise to match the convention in the paper
# compute time evolution according to Lindbald equation. All system and noise parameters are contained in setup and waveform_params
superoperator, final_time = self.get_noise_integ_superop(
waveform_params=waveform_params, setup=setup)
# returns the population in |20> at the end of T_slot
cost_func = de.extract_data_optimization(superoperator, final_time,
n_levels_qubit=self.sim_params['n_levels_qubit'],
n_levels_readres=self.sim_params['n_levels_readres'],
avg_photon_number=setup.qubit_dic['readres']['avg_photon_number'])
return cost_func
def get_optimized_waveform_params(self, waveform_params, setup):
# optimize t_p-2*t_rise given all other system parameters being fixed
# first-order estimate of \tilde{g} as in Eq. (10)
expected_gtilde = np.abs(2*np.pi * setup.bare_coupling * waveform_params['drive_amp'] * setup.qubit_dic['qubit']['anharm'] / \
(np.sqrt(2) * (setup.qubit_dic['qubit']['oper_freq'] - setup.qubit_dic['readres']['oper_freq']) * \
(setup.qubit_dic['qubit']['oper_freq'] - setup.qubit_dic['readres']['oper_freq'] + setup.qubit_dic['qubit']['anharm'])))
kappa = 1/setup.qubit_dic['readres']['t1']
if expected_gtilde > kappa/4: # if in the underdamped regime
damped_gtilde = np.sqrt(expected_gtilde**2-kappa**2/16) * np.exp(-kappa/(7*expected_gtilde))
x0_guess = np.array([np.pi/(2*damped_gtilde),])
if x0_guess > waveform_params['slot_len']-2*waveform_params['rise_time']: # if minimum should occur after T_slot, set guess as T_slot-2*t_rise
x0_guess = np.array([(waveform_params['slot_len']-2*waveform_params['rise_time']),])
else: # if in the critical or overdamped regime
x0_guess = np.array([(waveform_params['slot_len']-2*waveform_params['rise_time']),])
# automatically calls eval_optimization_waveform_params until convergence
minimization = scipy.optimize.minimize_scalar(self.eval_optimization_waveform_params,
method = 'bounded',
bracket = [max((x0_guess[0]-2*waveform_params['rise_time'])/2, 0),
x0_guess[0]], # useful first interval for the search, but not a strict bound
bounds = [0,
min(1.1 * x0_guess[0], (waveform_params['slot_len']-2*waveform_params['rise_time']))], # actual bounds
tol=1e-8,
args = (waveform_params, setup))
optimized_pulse_len = minimization.x # NB: optimized_pulse_len = t_p-2*t_rise to match the convention in the paper
optimized_waveform_params = waveform_params.copy()
optimized_waveform_params['pulse_len'] = optimized_pulse_len
return optimized_waveform_paramsPKéš‚<
<
PK
ë»8U~~
README.txtUT K“/cK“/c*** A hardware-efficient leakage-reduction scheme for quantum error correction with superconducting transmon qubits ***
Authors: Francesco Battistel, Boris M. Varbanov, Barbara M. Terhal
â€¨QuTech, Delft University of Technology; JARA Institute for Quantum Information
Corresponding author: Francesco Battistel
Contact Information: battistel.fra@protonmail.com
***General Introduction***
[Additional data after peer review]â€¨This collection of datasets contains data generated in simulation for the paper at https://arxiv.org/abs/2102.08336, as well as the code used for the analysis. The code used to generate the data is available upon request to the corresponding author.â€¨This research project was made possible by the ERC grant EQEC No. 682726
***Abstract***â€¨Leakage outside of the qubit computational subspace poses a threatening challenge to quantum error correction (QEC). We propose a scheme using two leakage-reduction units (LRUs) that mitigate these issues for a transmon-based surface code, without requiring an overhead in terms of hardware or QEC-cycle time as in previous proposals. For data qubits we consider a microwave drive to transfer leakage to the readout resonator, where it quickly decays, ensuring that this negligibly disturbs the computational states for realistic system parameters. For ancilla qubits we apply a |1âŸ© â†” |2âŸ© Ï€ pulse conditioned on the measurement outcome. Using density-matrix simulations of the distance- 3 surface code we show that the average leakage lifetime is reduced to almost 1 QEC cycle, even when the LRUs are implemented with limited fidelity. Furthermore, we show that this leads to a significant reduction of the logical error rate. This LRU scheme opens the prospect for near-term scalable QEC demonstrations.
***Description of the data in this data set***â€¨All data is provided in the netCDF format. We refer to the paper for the variable names.
The notebooks for the analysis are written in Python 3.6
- S17_raw_data_additional: results of the density-matrix simulations. Each different choice of parameters is saved in a different archive file. The title provides the essential information about the parameters changing. See coordinates of the netCDF files for the full information.
- S17_decoded_data_additional: it contains the weight matrices used for decoding, as well as the results of decoding itself. The name of the files are in direct correspondence to S17_raw_data
- Lindblad_raw_data_additional: results of the Lindblad simulations of the res-LRU. All points in the heatmaps are saved including the time evolution of the quantities of interest (some examples of which are shown in the paper). [This entirely substitutes Lindblad_raw_data]
- data_code_figures_additional: minimal data shown in the figures of the paper for quick access, as well as the code generating the figures from that.
The code for data analysis is provided in data_analysis
PKz¤Ó]~~PK-
ë»8Uéš‚<
<
@optimization_code.pyUTK“/cPK-
ë»8Uz¤Ó]~~
@‹
README.txtUTK“/cPKŒN