def flux_par4(self, offset=-0.08, flux_factor=0.16, Ejmax=h*44.0e9, f0=5.35e9, alpha=0.7, pl=None): set_all_tags(qdt, log=False) flux_o_flux0=flux_over_flux0(self.yoko, offset, flux_factor) qEj=Ej(Ejmax, flux_o_flux0) #flux_o_flux0=qdt.call_func("flux_over_flux0", voltage=self.yoko, offset=offset, flux_factor=flux_factor) freq, frq2=flux_parabola(self.yoko, offset, flux_factor, Ejmax, qdt.Ec) fq1=lamb_shifted_fq2(qEj/qdt.Ec, qdt.ft, qdt.Np, f0, qdt.epsinf, qdt.W, qdt.Dvv) line(self.yoko, freq, plotter=pl, linewidth=1.0, alpha=0.5) line(self.yoko, fq1/2, plotter=pl, linewidth=1.0, alpha=0.5)
def flux_par2(self, offset, flux_factor, Ejmax): set_all_tags(qdt, log=False) flux_o_flux0=qdt.call_func("flux_over_flux0", voltage=self.yoko, offset=offset, flux_factor=flux_factor) Ej=qdt.call_func("Ej", flux_over_flux0=flux_o_flux0, Ejmax=Ejmax) EjdivEc=Ej/qdt.Ec fq_vec=qdt.call_func("fq", Ej=EjdivEc*qdt.Ec) results=[] for fq in fq_vec: def Ba_eqn(x): return x[0]**2+2.0*x[0]*qdt.call_func("calc_Lamb_shift", fqq=x[0])-fq**2 results.append(fsolve(Ba_eqn, fq)) return squeeze(results)/1e9
def flux_par3(self, offset=-0.07, flux_factor=0.52, Ejmax=h*44.0e9, f0=5.35e9, alpha=0.0, C=qdt.Ct, pl=None): set_all_tags(qdt, log=False) #flux_o_flux0=qdt.call_func("flux_over_flux0", voltage=self.yoko, offset=offset, flux_factor=flux_factor) #print flux_o_flux0-pi/2*trunc(flux_o_flux0/(pi/2.0)) #Ej=qdt.call_func("Ej", flux_over_flux0=flux_o_flux0, Ejmax=Ejmax) #EjdivEc=Ej/qdt.Ec #fq_vec=array([sqrt(f*(f+1.0*qdt.call_func("calc_Lamb_shift", fqq=f))) for f in self.frequency]) fq_vec=array([f-qdt.call_func("Lamb_shift", f=f, f0=f0) for f in self.frequency]) fq_vec=array([sqrt(f*(f-2*qdt.call_func("Lamb_shift", f=f, f0=f0, couple_mult=alpha))) for f in self.frequency]) Ec=qdt.call_func("Ec", Cq=C) Ej=qdt._get_Ej(fq=fq_vec, Ec=Ec) #Ej_from_fq(fq_vec, qdt.Ec) flux_d_flux0=arccos(Ej/Ejmax)#-pi/2 flux_d_flux0=append(flux_d_flux0, -arccos(Ej/Ejmax)) flux_d_flux0=append(flux_d_flux0, -arccos(Ej/Ejmax)+pi) flux_d_flux0=append(flux_d_flux0, arccos(Ej/Ejmax)-pi) if pl is not None: volt=qdt._get_voltage(flux_over_flux0=flux_d_flux0, offset=offset, flux_factor=flux_factor) freq=s3a4_wg.frequency[:]/1e9 freq=append(freq, freq) #append(freq, append(freq, freq))) freq=append(freq, freq) #freq=append(freq, freq) line(freq, volt, plotter=pl, linewidth=1.0, alpha=0.5) #EjdivEc=Ej/qdt.Ec #ls_fq2=qdt.call_func("lamb_shifted_fq2", EjdivEc=EjdivEc) #E0, E1, E2=qdt.call_func("transmon_energy_levels", EjdivEc=EjdivEc, n_energy=3) #fq2=(E2-E1)/h #f_vec=lamb_shifted_anharm(EjdivEc, qdt.ft, qdt.Np, qdt.f0, qdt.epsinf, qdt.W, qdt.Dvv) #ah=-ls_fq2/2#-fq2) #fq_vec=array([sqrt((f-ah[n])*(f-ah[n]+alpha*calc_freq_shift(f-ah[n], qdt.ft, qdt.Np, f0, qdt.epsinf, qdt.W, qdt.Dvv))) for n, f in enumerate(self.frequency)]) #fq_vec=array([f/2-qdt.call_func("calc_Lamb_shift", fqq=f/2) for f in self.frequency]) #freq=(s3a4_wg.frequency[:]-1.45e9)/1e9 #freq=append(freq, freq) #freq=append(freq, freq) #Ej=Ej_from_fq(fq_vec, qdt.Ec) #flux_d_flux0=arccos(Ej/Ejmax)#-pi/2 #flux_d_flux0=append(flux_d_flux0, -arccos(Ej/Ejmax)) #flux_d_flux0=append(flux_d_flux0, -arccos(Ej/Ejmax)+pi) #flux_d_flux0=append(flux_d_flux0, arccos(Ej/Ejmax)-pi) #freq=append(freq, freq) #fq_vec+=f_vec/h/2 #fq2_vec=fq2(Ej, qdt.Ec) #Ej=Ej_from_fq(fq_vec, qdt.Ec) #qdt.call_func("lamb_shifted_fq2", EjdivEc=EjdivEc) #Ej=Ej_from_fq(fq_vec, qdt.Ec) #flux_d_flux0=arccos(Ej/Ejmax)#-pi/2 #flux_d_flux0=append(flux_d_flux0, -arccos(Ej/Ejmax)) #volt=voltage_from_flux(flux_d_flux0, offset, flux_factor) #line(freq, volt, plotter=pl, plot_name="second", color="green", linewidth=1.0, alpha=0.5) #flux_d_flux0.append(-) return qdt._get_voltage(flux_over_flux0=flux_d_flux0, offset=offset, flux_factor=flux_factor)
def flux_par3(self, offset=-0.07, flux_factor=0.52, Ejmax=h*44.0e9, f0=5.35e9, alpha=0.0, C=qdt.Ct, pl=None): set_all_tags(qdt, log=False) #flux_o_flux0=qdt.call_func("flux_over_flux0", voltage=self.yoko, offset=offset, flux_factor=flux_factor) #print flux_o_flux0-pi/2*trunc(flux_o_flux0/(pi/2.0)) #Ej=qdt.call_func("Ej", flux_over_flux0=flux_o_flux0, Ejmax=Ejmax) #EjdivEc=Ej/qdt.Ec #fq_vec=array([sqrt(f*(f+1.0*qdt.call_func("calc_Lamb_shift", fqq=f))) for f in self.frequency]) fq_vec=array([f-qdt.call_func("Lamb_shift", f=f, f0=f0) for f in self.frequency]) fq_vec=array([sqrt(f*(f-2*qdt.call_func("Lamb_shift", f=f, f0=f0, couple_mult=alpha))) for f in self.frequency]) Ec=qdt.call_func("Ec", Cq=C) Ej=qdt._get_Ej(fq=fq_vec, Ec=Ec) #Ej_from_fq(fq_vec, qdt.Ec) flux_d_flux0=arccos(Ej/Ejmax)#-pi/2 flux_d_flux0=append(flux_d_flux0, -arccos(Ej/Ejmax)) flux_d_flux0=append(flux_d_flux0, -arccos(Ej/Ejmax)+pi) flux_d_flux0=append(flux_d_flux0, arccos(Ej/Ejmax)-pi) if pl is not None: volt=qdt._get_voltage(flux_over_flux0=flux_d_flux0, offset=offset, flux_factor=flux_factor) freq=s3a4_wg.frequency[:]/1e9 freq=append(freq, freq) #append(freq, append(freq, freq))) freq=append(freq, freq) #freq=append(freq, freq) line(freq, volt, plotter=pl, linewidth=1.0, alpha=0.5) #EjdivEc=Ej/qdt.Ec #ls_fq2=qdt.call_func("lamb_shifted_fq2", EjdivEc=EjdivEc) #E0, E1, E2=qdt.call_func("transmon_energy_levels", EjdivEc=EjdivEc, n_energy=3) #fq2=(E2-E1)/h #f_vec=lamb_shifted_anharm(EjdivEc, qdt.ft, qdt.Np, qdt.f0, qdt.epsinf, qdt.W, qdt.Dvv) #ah=-ls_fq2/2#-fq2) #fq_vec=array([sqrt((f-ah[n])*(f-ah[n]+alpha*calc_freq_shift(f-ah[n], qdt.ft, qdt.Np, f0, qdt.epsinf, qdt.W, qdt.Dvv))) for n, f in enumerate(self.frequency)]) #fq_vec=array([f/2-qdt.call_func("calc_Lamb_shift", fqq=f/2) for f in self.frequency]) #freq=(s3a4_wg.frequency[:]-1.45e9)/1e9 #freq=append(freq, freq) #freq=append(freq, freq) #Ej=Ej_from_fq(fq_vec, qdt.Ec) #flux_d_flux0=arccos(Ej/Ejmax)#-pi/2 #flux_d_flux0=append(flux_d_flux0, -arccos(Ej/Ejmax)) #flux_d_flux0=append(flux_d_flux0, -arccos(Ej/Ejmax)+pi) #flux_d_flux0=append(flux_d_flux0, arccos(Ej/Ejmax)-pi) #freq=append(freq, freq) #fq_vec+=f_vec/h/2 #fq2_vec=fq2(Ej, qdt.Ec) #Ej=Ej_from_fq(fq_vec, qdt.Ec) #qdt.call_func("lamb_shifted_fq2", EjdivEc=EjdivEc) #Ej=Ej_from_fq(fq_vec, qdt.Ec) #flux_d_flux0=arccos(Ej/Ejmax)#-pi/2 #flux_d_flux0=append(flux_d_flux0, -arccos(Ej/Ejmax)) #volt=voltage_from_flux(flux_d_flux0, offset, flux_factor) #line(freq, volt, plotter=pl, plot_name="second", color="green", linewidth=1.0, alpha=0.5) #flux_d_flux0.append(-) return qdt._get_voltage(flux_over_flux0=flux_d_flux0, offset=offset, flux_factor=flux_factor)
def flux_par(self, offset, flux_factor, Ejmax): set_all_tags(qdt, log=False) # set_tag(qdt, "EjdivEc", log=False) # set_tag(qdt, "Ej", log=False) # set_tag(qdt, "offset", log=False) # set_tag(qdt, "flux_factor", log=False) flux_o_flux0=qdt.call_func("flux_over_flux0", voltage=self.yoko, offset=offset, flux_factor=flux_factor) Ej=qdt.call_func("Ej", flux_over_flux0=flux_o_flux0, Ejmax=Ejmax) EjdivEc=Ej/qdt.Ec fq=qdt.call_func("fq", Ej=EjdivEc*qdt.Ec) ls=qdt.call_func("calc_Lamb_shift", fqq=fq) return fq/1e9 ls_fq=qdt.call_func("lamb_shifted_fq", EjdivEc=EjdivEc) ls_fq2=qdt.call_func("lamb_shifted_fq2", EjdivEc=EjdivEc) return ls_fq/1e9#, ls_fq2/1e9
def flux_par3(self, offset=-0.08, flux_factor=0.52, Ejmax=h*44.0e9, f0=5.35e9, alpha=0.7, pl=None): set_all_tags(qdt, log=False) flux_o_flux0=qdt.call_func("flux_over_flux0", voltage=self.yoko, offset=offset, flux_factor=flux_factor) #print flux_o_flux0-pi/2*trunc(flux_o_flux0/(pi/2.0)) #Ej=qdt.call_func("Ej", flux_over_flux0=flux_o_flux0, Ejmax=Ejmax) #EjdivEc=Ej/qdt.Ec fq_vec=array([sqrt(f*(f+1.0*qdt.call_func("calc_Lamb_shift", fqq=f))) for f in self.frequency]) fq_vec=array([f-qdt.call_func("calc_Lamb_shift", fqq=f) for f in self.frequency]) fq_vec=array([sqrt(f*(f+alpha*calc_freq_shift(f, qdt.ft, qdt.Np, f0, qdt.epsinf, qdt.W, qdt.Dvv))) for f in self.frequency]) Ej=Ej_from_fq(fq_vec, qdt.Ec) flux_d_flux0=arccos(Ej/Ejmax)#-pi/2 flux_d_flux0=append(flux_d_flux0, -arccos(Ej/Ejmax)) flux_d_flux0=append(flux_d_flux0, -arccos(Ej/Ejmax)+pi) flux_d_flux0=append(flux_d_flux0, arccos(Ej/Ejmax)-pi) if pl is not None: volt=voltage_from_flux(flux_d_flux0, offset, flux_factor) freq=s3a4_wg.frequency[:]/1e9 freq=append(freq, freq) #append(freq, append(freq, freq))) freq=append(freq, freq) #freq=append(freq, freq) line(freq, volt, plotter=pl, linewidth=1.0, alpha=0.5) Ejdivh=Ej/h w0=4*Ejdivh*(1-sqrt(1-fq_vec/(2*Ejdivh))) EjdivEc=Ej/qdt.Ec #print -(w0**2)/(8*Ejdivh) ls_fq2=qdt.call_func("lamb_shifted_fq2", EjdivEc=EjdivEc) E0, E1, E2=qdt.call_func("transmon_energy_levels", EjdivEc=EjdivEc, n_energy=3) fq2=(E2-E1)/h f_vec=lamb_shifted_anharm(EjdivEc, qdt.ft, qdt.Np, qdt.f0, qdt.epsinf, qdt.W, qdt.Dvv) print f_vec/h ah=-ls_fq2/2#-fq2) #fq_vec=array([sqrt((f-ah[n])*(f-ah[n]+alpha*calc_freq_shift(f-ah[n], qdt.ft, qdt.Np, f0, qdt.epsinf, qdt.W, qdt.Dvv))) for n, f in enumerate(self.frequency)]) fq_vec=array([f/2-qdt.call_func("calc_Lamb_shift", fqq=f/2) for f in self.frequency]) coup=qdt.call_func("calc_coupling", fqq=self.frequency) print coup volt=array([ voltage_from_flux(arccos(Ej_from_fq(f-f_vec[c]/h/2, qdt.Ec)/Ejmax), offset, flux_factor) for c,f in enumerate(self.frequency)]) #freq=nan_to_num(freq)/1e9 #print freq freq=s3a4_wg.frequency[:]/1e9 #freq=(s3a4_wg.frequency[:]+coup)/1e9 #freq=append(freq, freq) #freq=append(freq, freq) #Ej=Ej_from_fq(fq_vec, f_vec/h) #flux_d_flux0=arccos(Ej/Ejmax)#-pi/2 #flux_d_flux0=append(flux_d_flux0, -arccos(Ej/Ejmax)) #flux_d_flux0=append(flux_d_flux0, -arccos(Ej/Ejmax)+pi) #flux_d_flux0=append(flux_d_flux0, arccos(Ej/Ejmax)-pi) #freq=append(freq, freq) #fq_vec+=f_vec/h/2 #fq2_vec=fq2(Ej, qdt.Ec) #Ej=Ej_from_fq(fq_vec, qdt.Ec) #qdt.call_func("lamb_shifted_fq2", EjdivEc=EjdivEc) #Ej=Ej_from_fq(fq_vec, qdt.Ec) #flux_d_flux0=arccos(Ej/Ejmax)#-pi/2 #flux_d_flux0=append(flux_d_flux0, -arccos(Ej/Ejmax)) #volt=voltage_from_flux(flux_d_flux0, offset, flux_factor) line(freq, volt, plotter=pl, plot_name="second", color="green", linewidth=1.0, alpha=0.5) #flux_d_flux0.append(-) return voltage_from_flux(flux_d_flux0, offset, flux_factor)