def run_electron_rabi(name): m = BSM.ElectronRabiMsmt(name) # BSM.ElectronRabiMsmt(name) BSM.prepare(m) leftline = m.params['AWG_MBI_MW_pulse_mod_frq'] HF = 2.19290e6 m.params['AWG_MBI_MW_pulse_mod_frq'] = leftline pts = 21 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) * 1 m.params['MW_pulse_delays'] = np.ones(pts) * 100e-9 # MW pulses m.params['MW_pulse_durations'] = np.linspace(0, 150e-9, pts) + 10e-9 m.params['MW_pulse_amps'] = np.ones(pts) * 0.7 m.params['MW_pulse_mod_frqs'] = np.ones(pts) * \ m.params['AWG_MBI_MW_pulse_mod_frq'] # for the autoanalysis m.params['sweep_name'] = 'MW pulse length (ns)' m.params['sweep_pts'] = m.params['MW_pulse_durations'] * 1e9 funcs.finish(m, debug=False)
def MBI_fidelity(name): m = BSM.ElectronRabiMsmt(name) # BSM.ElectronRabiMsmt(name) BSM.prepare(m) leftline = m.params['AWG_MBI_MW_pulse_mod_frq'] HF = 2.19290e6 m.params['AWG_MBI_MW_pulse_mod_frq'] = leftline pts = 4 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) * 1 m.params['MW_pulse_delays'] = np.ones(pts) * 100e-9 # MW pulses m.params['MW_pulse_durations'] = np.ones(pts) * 2800e-9 m.params['MW_pulse_amps'] = np.array([0.0213, 0.0218, 0.0218, 0.0218]) * 0 m.params['MW_pulse_mod_frqs'] = np.array( [leftline, leftline + HF, leftline + 2 * HF, leftline + 3 * HF]) # for the autoanalysis m.params['sweep_name'] = 'MW mod frq (MHz)' m.params['sweep_pts'] = m.params['MW_pulse_mod_frqs'] BSM.finish(m, debug=False)
def MBI_fidelity(name): m = BSM.ElectronRabiMsmt(name) # BSM.ElectronRabiMsmt(name) BSM.prepare(m) leftline = m.params['AWG_MBI_MW_pulse_mod_frq'] HF = 2.19290e6 m.params['AWG_MBI_MW_pulse_mod_frq'] = leftline pts = 4 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) * 1 m.params['MW_pulse_delays'] = np.ones(pts) * 100e-9 # MW pulses m.params['MW_pulse_durations'] = np.ones(pts) * 2800e-9 m.params['MW_pulse_amps'] = np.array([0.0213, 0.0218, 0.0218, 0.0218]) * 0 m.params['MW_pulse_mod_frqs'] = np.array([leftline, leftline + HF, leftline + 2*HF, leftline + 3*HF]) # for the autoanalysis m.params['sweep_name'] = 'MW mod frq (MHz)' m.params['sweep_pts'] = m.params['MW_pulse_mod_frqs'] BSM.finish(m, debug=False)
def hadamard_tomo(name): m = HadamardTomo(name) BSM.prepare(m) m.params['reps_per_ROsequence'] = 1000 m.params['pts'] = 3 # must be 3 for any N-tomography msmt BSM.finish(m, debug=False, upload=True)
def tomo_debug(): m = TomoDebug('debug') BSM.prepare(m) m.params['reps_per_ROsequence'] = 1000 m.params['pts'] = 3 # must be 3 for any N-tomography msmt BSM.finish(m, debug=False)
def phase_check(name): m = NPhaseCheck(name) BSM.prepare(m) m.params['reps_per_ROsequence'] = 1000 m.params['phases'] = np.array([0,180,90]) m.params['pts'] = len(m.params['phases']) # for the autoanalysis m.params['sweep_name'] = 'second pi2 phase (deg)' m.params['sweep_pts'] = m.params['phases'] BSM.finish(m, debug=False)
def phase_check(name): m = NPhaseCheck(name) BSM.prepare(m) m.params['reps_per_ROsequence'] = 1000 m.params['phases'] = np.array([0, 180, 90]) m.params['pts'] = len(m.params['phases']) # for the autoanalysis m.params['sweep_name'] = 'second pi2 phase (deg)' m.params['sweep_pts'] = m.params['phases'] BSM.finish(m, debug=False)
def H_phase_sweep(name): m = HadamardPhaseSweep(name) BSM.prepare(m) m.params['reps_per_ROsequence'] = 1000 m.params['phases'] = np.linspace(0, 360, 9) m.params['pts'] = len(m.params['phases']) m.params['N_rabi_frequency'] = 5.532e3 # for the autoanalysis m.params['sweep_name'] = 'second pi2 phase (deg)' m.params['sweep_pts'] = m.params['phases'] BSM.finish(m, debug=False, upload=False)
def CNOT_phase_check_sweep_CNOT_phase(): m = CNOTPhaseCheckSweepCNOTphase('CNOT_phase') BSM.prepare(m) pts = 17 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 # MW pulses m.params['CNOT_phase'] = np.linspace(0, 360, pts) # for the autoanalysis m.params['sweep_name'] = 'first CNOT phase' m.params['sweep_pts'] = m.params['CNOT_phase'] funcs.finish(m, debug=False, upload=True)
def CNOT_phase_check_sweep_CNOT_phase(): m = CNOTPhaseCheckSweepCNOTphase('CNOT_phase') BSM.prepare(m) pts = 17 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 # MW pulses m.params['CNOT_phase'] = np.linspace(0,360,pts) # for the autoanalysis m.params['sweep_name'] = 'first CNOT phase' m.params['sweep_pts'] = m.params['CNOT_phase'] funcs.finish(m, debug=False, upload=True)
def CNOT_phase_check_sweep_time(): m = CNOTPhaseCheckSweepTime('CNOT_to_pi2') BSM.prepare(m) pts = 17 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 # MW pulses m.params['CNOT_to_pi2_time'] = np.linspace(150e-9, 250e-9, pts) # for the autoanalysis m.params['sweep_name'] = 'second_CNOT_to_pi2_time' m.params['sweep_pts'] = m.params['CNOT_to_pi2_time'] funcs.finish(m, debug=False, upload=True)
def CNOT_phase_check_sweep_time(): m = CNOTPhaseCheckSweepTime('CNOT_to_pi2') BSM.prepare(m) pts = 17 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 # MW pulses m.params['CNOT_to_pi2_time'] = np.linspace(150e-9,250e-9,pts) # for the autoanalysis m.params['sweep_name'] = 'second_CNOT_to_pi2_time' m.params['sweep_pts'] = m.params['CNOT_to_pi2_time'] funcs.finish(m, debug=False, upload=True)
def CNOT_phase_check_mI0_both_pi2_phases(): m = CNOTPhaseCheckmI0BothPi2Phases('mI0_pi2_phases_sweep_both') BSM.prepare(m) pts = 16 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 # MW pulses m.params['analysis_phases'] = -62 + np.linspace(0, 360, pts) m.params['prepare_phases'] = -m.params['analysis_phases'] # for the autoanalysis m.params['sweep_name'] = 'second pi/2 phase' m.params['sweep_pts'] = m.params['analysis_phases'] funcs.finish(m, debug=False, upload=True)
def CNOT_phase_check_mI0_both_pi2_phases(): m = CNOTPhaseCheckmI0BothPi2Phases('mI0_pi2_phases_sweep_both') BSM.prepare(m) pts = 16 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 # MW pulses m.params['analysis_phases'] = - 62 + np.linspace(0,360,pts) m.params['prepare_phases'] = - m.params['analysis_phases'] # for the autoanalysis m.params['sweep_name'] = 'second pi/2 phase' m.params['sweep_pts'] = m.params['analysis_phases'] funcs.finish(m, debug=False, upload=True)
def CNOT_phase_check(): m = CNOTPhaseCheck('2_times_CNOT') BSM.prepare(m) pts = 17 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 # MW pulses m.params['multiplicity'] = 2 #number of CNOT pulses m.params['analysis_phases'] = np.linspace(0,360,pts) # for the autoanalysis m.params['sweep_name'] = 'second pi/2 phase' m.params['sweep_pts'] = m.params['analysis_phases'] funcs.finish(m, debug=False, upload=True)
def CNOT_phase_check(): m = CNOTPhaseCheck('2_times_CNOT') BSM.prepare(m) pts = 17 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 # MW pulses m.params['multiplicity'] = 2 #number of CNOT pulses m.params['analysis_phases'] = np.linspace(0, 360, pts) # for the autoanalysis m.params['sweep_name'] = 'second pi/2 phase' m.params['sweep_pts'] = m.params['analysis_phases'] funcs.finish(m, debug=False, upload=True)
def run_CORPSE_echo_phase_sweep(name): m = CORPSEEchoPhaseSweep(name) BSM.prepare(m) phases = np.linspace(0, 360, 25) pts = len(phases) m.params['pts'] = pts m.params['reps_per_ROsequence'] = 500 m.params['delay'] = 50.9e-6 m.params['phases'] = phases # for the autoanalysis m.params['sweep_name'] = 'CORPSE relative phase shift (deg)' m.params['sweep_pts'] = phases BSM.finish(m, debug=False)
def run_CORPSE_echo_phase_sweep(name): m = CORPSEEchoPhaseSweep(name) BSM.prepare(m) phases = np.linspace(0,360,25) pts = len(phases) m.params['pts'] = pts m.params['reps_per_ROsequence'] = 500 m.params['delay'] = 50.9e-6 m.params['phases'] = phases # for the autoanalysis m.params['sweep_name'] = 'CORPSE relative phase shift (deg)' m.params['sweep_pts'] = phases BSM.finish(m, debug=False)
def echo_phase_sweep(name): m = Echo('_PhaseSweep_{}'.format(name)) BSM.prepare(m) phases = np.linspace(0,360,25) # reps = np.arange(1, 12, 2) pts = len(phases) m.params['pts'] = pts m.params['reps_per_ROsequence'] = 500 m.params['delay_repetitions'] = np.ones(pts) * 51 m.params['second_pi2_phases'] = phases # for the autoanalysis m.params['sweep_name'] = 'Phase of second pi-pulse (deg)' m.params['sweep_pts'] = m.params['second_pi2_phases'] BSM.finish(m, debug=False)
def echo_delay_sweep(name): m = Echo('_DelaySweep_{}'.format(name)) BSM.prepare(m) reps = np.arange(30, 72, 2) # reps = np.arange(1, 12, 2) pts = len(reps) m.params['pts'] = pts m.params['reps_per_ROsequence'] = 500 m.params['delay_repetitions'] = reps m.params['second_pi2_phases'] = zeros(pts) # for the autoanalysis m.params['sweep_name'] = 'Interpulse delay (us)' m.params['sweep_pts'] = m.params['delay_repetitions'] BSM.finish(m, debug=False)
def echo_phase_sweep(name): m = Echo('_PhaseSweep_{}'.format(name)) BSM.prepare(m) phases = np.linspace(0, 360, 25) # reps = np.arange(1, 12, 2) pts = len(phases) m.params['pts'] = pts m.params['reps_per_ROsequence'] = 500 m.params['delay_repetitions'] = np.ones(pts) * 51 m.params['second_pi2_phases'] = phases # for the autoanalysis m.params['sweep_name'] = 'Phase of second pi-pulse (deg)' m.params['sweep_pts'] = m.params['second_pi2_phases'] BSM.finish(m, debug=False)
def pi_position_sweep(name): m = EchoSweepPiPosition(name) BSM.prepare(m) m.params['2tau'] = 3000e-9 shifts = np.linspace(-500e-9, 500e-9, 21) pts = len(shifts) m.params['pts'] = pts m.params['reps_per_ROsequence'] = 2500 # m.params['CORPSE_pi_phase_shift'] = 65.2 m.params['pi_position_shifts'] = shifts # for the autoanalysis m.params['sweep_name'] = 'position shift of the pi-pulse (ns)' m.params['sweep_pts'] = shifts * 1e9 BSM.finish(m, debug=False, upload=True)
def do_N_FT_Polarisation_check(): m = N_FT_Polarisation_Check('pulsed') BSM.prepare(m,yellow=True) #preparation line: m.params['init_line'] = '-1' #readout pulse line: m.params['readout_line']='-1' m.name=m.name+'_init_'+ m.params['init_line']+'_ro_'+m.params['readout_line'] m.params['FT_element_repetitions'] = np.array([1,1000,2000,3000,4000]) pts = len(m.params['FT_element_repetitions']) m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 m.params['sp_duration'] = 20e-6 m.params['FT_pulse_power']=100e-9 m.params['FT_pulse_amp']=\ m.A_aom.power_to_voltage(m.params['FT_pulse_power'], controller='sec') m.params['yellow_pulse_power'] = 50e-9 m.params['yellow_pulse_amp'] =\ m.yellow_aom.power_to_voltage(m.params['yellow_pulse_power'], controller='sec') # for the autoanalysis m.params['sweep_name'] = 'FT_element_repetitions' m.params['sweep_pts'] = m.params['FT_element_repetitions'] if m.params['init_line'] == '-1': m.params['AWG_MBI_MW_pulse_mod_frq']=m.params['mIm1_mod_frq'] #ms=-1 elif m.params['init_line'] == '0': m.params['AWG_MBI_MW_pulse_mod_frq']=m.params['mI0_mod_frq'] #ms=0 elif m.params['init_line'] == '+1': m.params['AWG_MBI_MW_pulse_mod_frq']=m.params['mIp1_mod_frq']#ms=+1 print 'dont use this --> CORPSE is bad for +1' else: raise(Exception('Unknown init line' + str(m.params['init_line']))) funcs.finish(m, debug=False, upload=True)
def echo_delay_sweep(name): m = Echo('_DelaySweep_{}'.format(name)) BSM.prepare(m) reps = np.arange(30,72,2) # reps = np.arange(1, 12, 2) pts = len(reps) m.params['pts'] = pts m.params['reps_per_ROsequence'] = 500 m.params['delay_repetitions'] = reps m.params['second_pi2_phases'] = zeros(pts) # for the autoanalysis m.params['sweep_name'] = 'Interpulse delay (us)' m.params['sweep_pts'] = m.params['delay_repetitions'] BSM.finish(m, debug=False)
def run_nmr_rabi(name): m = BSM.NRabiMsmt('Nuclear_rabi_' + name) # BSM.ElectronRabiMsmt(name) BSM.prepare(m) pts = 26 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 500 m.params['RF_pulse_multiplicities'] = np.ones(pts).astype(int) * 1 m.params['RF_pulse_delays'] = np.ones(pts) * 1e-6 # MW pulses m.params['RF_pulse_durations'] = np.linspace(1e-6, 361e-6, pts) m.params['RF_pulse_amps'] = np.ones(pts) * 1 m.params['RF_pulse_frqs'] = np.ones(pts) + m.params['N_0-1_splitting_ms-1'] # for the autoanalysis m.params['sweep_name'] = 'RF duration (us)' m.params['sweep_pts'] = m.params['RF_pulse_durations'] * 1e6 BSM.finish(m, debug=False)
def run_nmr_frq_scan(name): m = BSM.NRabiMsmt('NMR_frq_scan_' + name) # BSM.ElectronRabiMsmt(name) BSM.prepare(m) pts = 21 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 500 m.params['RF_pulse_multiplicities'] = np.ones(pts).astype(int) * 1 m.params['RF_pulse_delays'] = np.ones(pts) * 1e-6 # MW pulses m.params['RF_pulse_durations'] = np.ones(pts) * 70e-6 m.params['RF_pulse_amps'] = np.ones(pts) * 1 m.params['RF_pulse_frqs'] = np.linspace(7.12e6, 7.15e6, pts) # for the autoanalysis m.params['sweep_name'] = 'RF frequency (MHz)' m.params['sweep_pts'] = m.params['RF_pulse_frqs'] * 1e-6 funcs.finish(m, debug=False)
def run_nmr_frq_scan(name): m = BSM.NRabiMsmt('NMR_frq_scan_'+name) # BSM.ElectronRabiMsmt(name) BSM.prepare(m) pts = 21 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 500 m.params['RF_pulse_multiplicities'] = np.ones(pts).astype(int) * 1 m.params['RF_pulse_delays'] = np.ones(pts) * 1e-6 # MW pulses m.params['RF_pulse_durations'] = np.ones(pts) * 70e-6 m.params['RF_pulse_amps'] = np.ones(pts) * 1 m.params['RF_pulse_frqs'] = np.linspace(7.12e6, 7.15e6, pts) # for the autoanalysis m.params['sweep_name'] = 'RF frequency (MHz)' m.params['sweep_pts'] = m.params['RF_pulse_frqs'] * 1e-6 funcs.finish(m, debug=False)
def N_rabi(name): m = NRabi(name) # BSM.ElectronRabiMsmt(name) BSM.prepare(m) pts = 17 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 500 m.params['RF_pulse_multiplicities'] = np.ones(pts).astype(int) * 1 m.params['RF_pulse_delays'] = np.ones(pts) * 1e-6 # MW pulses m.params['RF_pulse_durations'] = np.linspace(1e-6, 181e-6, pts) m.params['RF_pulse_amps'] = np.ones(pts) * 1 m.params['RF_pulse_frqs'] = np.ones(pts) * m.params['N_0-1_splitting_ms-1'] # for the autoanalysis m.params['sweep_name'] = 'RF duration (us)' m.params['sweep_pts'] = m.params['RF_pulse_durations'] * 1e6 BSM.finish(m, debug=False)
def run_N_uncond_rot_calib(name): m = NitrogenUnconditonalRotationCalib(name) BSM.prepare(m) delays = 51.1e-6 + np.linspace(-0.5e-6, 0.5e-6, 17) pts = len(delays) m.params['pts'] = pts m.params['reps_per_ROsequence'] = 500 # DEBUG # m.params['CORPSE_pi_amp'] = 0. m.params['CORPSE_pi_phase_shift'] = 65.2 m.params['delays'] = delays # for the autoanalysis m.params['sweep_name'] = 'Interpulse delay (us)' m.params['sweep_pts'] = delays * 1e6 BSM.finish(m, debug=False)
def run_NUrot_vs_timing(name): m = NitrogenURotVsTiming(name) BSM.prepare(m) delays = 50.9e-6 + np.linspace(-0.5e-6, 0.5e-6, 26) # DEBUG # m.params['N_pi2_amp'] = 0 pts = len(delays) m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 m.params['CORPSE_pi_phase_shift'] = 65.2 m.params['CORPSE_pi_phase_shifts'] = \ np.ones(pts) * m.params['CORPSE_pi_phase_shift'] m.params['e_delays'] = delays # for the autoanalysis m.params['sweep_name'] = 'Interpulse delay (us)' m.params['sweep_pts'] = delays * 1e6 BSM.finish(m, debug=True)