Example #1
0
    def mw_pulse(self,
                 freq,
                 phase,
                 rabi_f,
                 t_start,
                 t_stop,
                 sigma_Gauss=None,
                 RWA=True):
        self.H_mw_qubit_1 = np.array(
            list(
                qt.basis(6, 0) * qt.basis(6, 2).dag() +
                qt.basis(6, 1) * qt.basis(6, 3).dag()))[:, 0]
        self.H_mw_qubit_2 = np.array(
            list(
                qt.basis(6, 0) * qt.basis(6, 1).dag() +
                qt.basis(6, 2) * qt.basis(6, 3).dag()))[:, 0]

        if RWA == True:
            if sigma_Gauss == None:
                # Note RWA
                self.solver_obj.add_H1_MW_RF_RWA(self.H_mw_qubit_1,
                                                 rabi_f * (np.pi), phase,
                                                 freq - self.f_qubit1, t_start,
                                                 t_stop)
                self.solver_obj.add_H1_MW_RF_RWA(self.H_mw_qubit_2,
                                                 rabi_f * (np.pi), phase,
                                                 freq - self.f_qubit2, t_start,
                                                 t_stop)
                # if you want not to do the RWA, DO: (not if you frequency is high, you will need a lot of simulation points!)
                # self.solver_obj.add_H1_MW_RF_RWA(self.H_mw_qubit_1, rabi_f/(2*np.pi), -phase, -freq-self.f_qubit1, t_start, t_stop)
                # self.solver_obj.add_H1_MW_RF_RWA(self.H_mw_qubit_2, rabi_f/(2*np.pi), -phase, -freq-self.f_qubit2, t_start, t_stop)
            else:
                # Add microwave oject, where the gaussian is defined.
                mw_obj_1 = ME.microwave_RWA()
                mw_obj_1.init(rabi_f * (np.pi), phase, freq - self.f_qubit1,
                              t_start, t_stop)
                mw_obj_1.add_gauss_mod(sigma_Gauss)
                mw_obj_2 = ME.microwave_RWA()
                mw_obj_2.init(rabi_f * (np.pi), phase, freq - self.f_qubit2,
                              t_start, t_stop)
                mw_obj_2.add_gauss_mod(sigma_Gauss)
                self.solver_obj.add_H1_MW_RF_obj(self.H_mw_qubit_1, mw_obj_1)
                self.solver_obj.add_H1_MW_RF_obj(self.H_mw_qubit_2, mw_obj_2)
        else:
            MW_obj_1 = ME.microwave_pulse()
            MW_obj_1.init_normal(rabi_f * np.pi, phase, freq - self.f_qubit1,
                                 t_start, t_stop,
                                 self.H_mw_qubit_1 + self.H_mw_qubit_1.T)
            self.solver_obj.add_H1_MW_RF_obj(MW_obj_1)
            MW_obj_2 = ME.microwave_pulse()
            MW_obj_2.init_normal(rabi_f * np.pi, phase, freq - self.f_qubit2,
                                 t_start, t_stop,
                                 self.H_mw_qubit_2 + self.H_mw_qubit_2.T)
            self.solver_obj.add_H1_MW_RF_obj(MW_obj_2)
    def mw_pulse(self, freq, phase, rabi_f, t_start, t_stop):

        self.H_mw_qubit_1 = np.array(
            list(
                qt.basis(4, 0) * qt.basis(4, 2).dag() +
                qt.basis(4, 1) * qt.basis(4, 3).dag()))[:, 0]
        self.H_mw_qubit_2 = np.array(
            list(
                qt.basis(4, 0) * qt.basis(4, 1).dag() +
                qt.basis(4, 2) * qt.basis(4, 3).dag()))[:, 0]

        MW_obj_1 = ME.microwave_pulse()
        MW_obj_1.init_normal(rabi_f * np.pi, phase, freq, t_start, t_stop,
                             self.H_mw_qubit_1 + self.H_mw_qubit_1.T)
        self.solver_obj.add_H1_MW_RF_obj(MW_obj_1)

        MW_obj_2 = ME.microwave_pulse()
        MW_obj_2.init_normal(rabi_f * np.pi, phase, freq, t_start, t_stop,
                             self.H_mw_qubit_2 + self.H_mw_qubit_2.T)
        self.solver_obj.add_H1_MW_RF_obj(MW_obj_2)
 def RF_exchange(self, rabi, freq, t_start, t_stop, phase):
     MW_obj_1 = ME.microwave_pulse()
     MW_obj_1.init_normal(rabi * 2 * np.pi, phase, freq, t_start, t_stop,
                          self.J)
     self.solver_obj.add_H1_MW_RF_obj(MW_obj_1)