pyEPR.calcs.back_box_numeric module

Numerical diagonalization of quantum Hamiltonian and parameter extraction.

@author: Phil Reinhold, Zlatko Minev, Lysander Christakis

Original code on black_box_hamiltonian and make_dispersive functions by Phil Reinhold Revisions and updates by Zlatko Minev & Lysander Christakis

pyEPR.calcs.back_box_numeric.epr_numerical_diagonalization(freqs, Ljs, φzpf, cos_trunc=8, fock_trunc=9, use_1st_order=False, return_H=False, non_linear_potential=None)[source]

Numerical diagonalization for pyEPR. Ask Zlatko for details.

Parameters:
  • fs – (GHz, not radians) Linearized model, H_lin, normal mode frequencies in Hz, length M
  • ljs – (Henries) junction linearized inductances in Henries, length J
  • fzpfs – (reduced) Reduced Zero-point fluctuation of the junction fluxes for each mode across each junction, shape MxJ
Returns:

Hamiltonian mode freq and dispersive shifts. Shifts are in MHz. Shifts have flipped sign so that down shift is positive.

pyEPR.calcs.back_box_numeric.make_dispersive(H, fock_trunc, fzpfs=None, f0s=None, chi_prime=False, use_1st_order=False)[source]
Input: Hamiltonian Matrix.
Optional: phi_zpfs and normal mode frequencies, f0s. use_1st_order : deprecated
Output:
Return dressed mode frequencies, chis, chi prime, phi_zpf flux (not reduced), and linear frequencies
Description:
Takes the Hamiltonian matrix H from bbq_hmt. It them finds the eigenvalues/eigenvectors and assigns quantum numbers to them — i.e., mode excitations, such as, for instance, for three mode, \(|0,0,0\rangle\) or \(|0,0,1\rangle\), which correspond to no excitations in any of the modes or one excitation in the 3rd mode, resp. The assignment is performed based on the maximum overlap between the eigenvectors of H_full and H_lin. If this crude explanation is confusing, let me know, I will write a more detailed one |:slightly_smiling_face:| Based on the assignment of the excitations, the function returns the dressed mode frequencies \(\omega_m^\prime\), and the cross-Kerr matrix (including anharmonicities) extracted from the numerical diagonalization, as well as from 1st order perturbation theory. Note, the diagonal of the CHI matrix is directly the anharmonicity term.
pyEPR.calcs.back_box_numeric.black_box_hamiltonian(fs, ljs, fzpfs, cos_trunc=5, fock_trunc=8, individual=False, non_linear_potential=None)[source]
Parameters:
  • fs – Linearized model, H_lin, normal mode frequencies in Hz, length N
  • ljs – junction linearized inductances in Henries, length M
  • fzpfs – Zero-point fluctuation of the junction fluxes for each mode across each junction, shape MxJ
Returns:

Hamiltonian in units of Hz (i.e H / h)

All in SI units. The ZPF fed in are the generalized, not reduced, flux.

Description:
Takes the linear mode frequencies, \(\omega_m\), and the zero-point fluctuations, ZPFs, and builds the Hamiltonian matrix of \(H_{full}\), assuming cos potential.
pyEPR.calcs.back_box_numeric.black_box_hamiltonian_nq(freqs, zmat, ljs, cos_trunc=6, fock_trunc=8, show_fit=False)[source]

N-Qubit version of bbq, based on the full Z-matrix Currently reproduces 1-qubit data, untested on n-qubit data Assume: Solve the model without loss in HFSS.