def test_coupling_terms_multimode(self): qubit = Transmon("qubit", levels=3, kerr=-200e-3) cavity1 = Cavity("cavity1", levels=10, kerr=-10e-6) cavity2 = Cavity("cavity2", levels=6, kerr=-10e-6) system = System("system", modes=[qubit, cavity2, cavity1]) system.set_cross_kerr(qubit, cavity1, -2e-3) system.set_cross_kerr(qubit, cavity2, -1e-3) system.set_cross_kerr(cavity1, cavity2, -5e-6) self.assertEqual(len(system.couplings()), 3) for modes in [[qubit, cavity1], [qubit, cavity1, cavity2]]: with system.use_modes(modes): self.assertEqual( system.couplings()[0], 2 * np.pi * -2e-3 * qubit.n * cavity1.n ) for i, modes in enumerate([[qubit, cavity2], [qubit, cavity1, cavity2]]): with system.use_modes(modes): self.assertEqual( system.couplings()[i], 2 * np.pi * -1e-3 * qubit.n * cavity2.n ) for i, modes in enumerate([[cavity2, cavity1], [qubit, cavity1, cavity2]]): with system.use_modes(modes): self.assertEqual( system.couplings()[2 * i], 2 * np.pi * -5e-6 * cavity1.n * cavity2.n )
def test_coupling_terms(self): qubit = Transmon("qubit", levels=3, kerr=-200e-3) cavity = Cavity("cavity", levels=10, kerr=-10e-6) system = System("system", modes=[qubit, cavity]) chi = -2e-3 key = frozenset([qubit.name, cavity.name]) system.coupling_terms[key].append( CouplingTerm(qubit, "n", cavity, "n", strength=2 * np.pi * chi) ) self.assertEqual(len(system.couplings()), 1) self.assertEqual(system.couplings()[0], 2 * np.pi * chi * qubit.n * cavity.n) system.set_cross_kerr(qubit, cavity, chi) self.assertEqual(len(system.couplings()), 1) self.assertEqual(system.couplings()[0], 2 * np.pi * chi * qubit.n * cavity.n)
def test_set_cross_kerr(self): qubit = Transmon("qubit", levels=3, kerr=-200e-3) cavity = Cavity("cavity", levels=10, kerr=-10e-6) system = System("system", modes=[qubit, cavity]) with self.assertRaises(ValueError): system.set_cross_kerr(qubit, qubit, -1e-3) chi = -2e-3 system.set_cross_kerr(qubit, cavity, chi) self.assertEqual(len(system.couplings()), 1) self.assertEqual(system.couplings()[0], 2 * np.pi * chi * qubit.n * cavity.n) system.set_cross_kerr(qubit, cavity, chi) self.assertEqual(len(system.couplings()), 1) self.assertEqual(system.couplings()[0], 2 * np.pi * chi * qubit.n * cavity.n) system.set_cross_kerr(cavity, qubit, chi) self.assertEqual(len(system.couplings()), 1) self.assertEqual(system.couplings()[0], 2 * np.pi * chi * qubit.n * cavity.n)