示例#1
0
    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
                )
示例#2
0
 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)
示例#3
0
    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)