def dd_sweep_LDE_DD_XYX_free_evolution_time(name): m = dd_msmt.DynamicalDecoupling('calibrate_xyx_fet_pi2phase_min90') dd_msmt.prepare(m) pts = 17 m.params['pts'] = pts m.params['repetitions'] = 3000 m.params_lt2['wait_for_AWG_done'] = 1 #free evolutiona time is half the total evolution time!!! from centre to centre of pulses m.params_lt2['extra_ts_between_pulses'] = np.ones( pts) * m.params_lt2['dd_extra_t_between_pi_pulses'] m.params_lt2['dd_spin_echo_times'] = np.ones( pts) * m.params_lt2['dd_spin_echo_time'] #m.params_lt2['A_SP_amplitude'] = 0. #use LDE element SP. # sweep params m.params_lt2['pi2_pulse_phase'] = 0 m.params_lt2['free_evolution_times'] = np.linspace( -1e-6, 1e-6, pts) + m.params_lt2['first_C_revival'] m.params_lt2['DD_pi_phases'] = [90, 0, 90] m.dd_sweep_LDE_spin_echo_time_msmt() # for the autoanalysis m.params_lt2['sweep_name'] = 'free evolution time (us)' m.params_lt2['sweep_pts'] = m.params_lt2['dd_extra_t_between_pi_pulses'] * (len(m.params_lt2['DD_pi_phases']) -1) + \ 2 * len(m.params_lt2['DD_pi_phases']) * m.params_lt2['free_evolution_times'] / 1e-6 dd_msmt.finish(m, upload=UPLOAD, debug=False)
def dd_calibrate_T2(name): m = dd_msmt.DynamicalDecoupling('calibrate_T2') dd_msmt.prepare(m) m.params['dd_use_delay_reps'] = True pts_per_revival = 11 revivals = 12 pts = pts_per_revival * (revivals - 1) m.params['pts'] = pts m.params['repetitions'] = 2000 m.params_lt2['wait_for_AWG_done'] = 1 # sweep params #free evolutiona time is half the total evolution time!!! from centre to centre of pulses sweep_array = m.params_lt2['first_C_revival'] + np.linspace( -1e-6, 1e-6, pts_per_revival) for r in range(2, revivals): sweep_array=np.append(sweep_array, \ r * (m.params_lt2['first_C_revival'] \ + m.params_lt2['CORPSE_pi2_wait_length'] \ + m.params_lt2['dd_extra_t_between_pi_pulses']) + np.linspace(-1e-6, 1e-6, pts_per_revival)) print sweep_array m.params_lt2['free_evolution_times'] = sweep_array m.params_lt2['DD_pi_phases'] = [0] m.dd_sweep_free_ev_time_msmt() # for the autoanalysis m.params_lt2['sweep_name'] = 'total free evolution time (us)' m.params_lt2['sweep_pts'] = 2 * m.params_lt2['free_evolution_times'] / 1e-6 dd_msmt.finish(m, upload=UPLOAD, debug=False)
def dd_sweep_LDE_DD_XYX_t_between_pulse(name): m = dd_msmt.DynamicalDecoupling('calibrate_xyx_t_between_pulses') dd_msmt.prepare(m) pts = 21 m.params['pts'] = pts m.params['repetitions'] = 2000 m.params_lt2['wait_for_AWG_done'] = 1 m.params['dd_use_delay_reps'] = False #suppress optical pulses here m.params_lt2['eom_aom_on'] = False m.params_lt2['eom_pulse_amplitude'] = -0.26 #free evolutiona time is half the total evolution time!!! from centre to centre of pulses m.params_lt2['free_evolution_times'] = np.ones( pts) * m.params_lt2['first_C_revival'] m.params_lt2['dd_spin_echo_times'] = np.ones( pts) * m.params_lt2['dd_spin_echo_time'] #m.params_lt2['A_SP_amplitude'] = 0. #use LDE element SP. # sweep params m.params_lt2['extra_ts_between_pulses'] = 400e-9 + np.linspace( -2e-6, 2e-6, pts) m.params_lt2['DD_pi_phases'] = [90, 0, 90] m.dd_sweep_LDE_spin_echo_time_msmt() # for the autoanalysis m.params_lt2['sweep_name'] = 'extra t between pi pulses (us)' m.params_lt2['sweep_pts'] = m.params_lt2['extra_ts_between_pulses'] / 1e-6 dd_msmt.finish(m, upload=UPLOAD, debug=False)
def dd_sweep_LDE_DD_XY4_spin_echo(name): m = dd_msmt.DynamicalDecoupling('calibrate_xy4_t_between_pulses') dd_msmt.prepare(m) pts = 15 m.params['pts'] = pts m.params['repetitions'] = 1000 m.params_lt3['wait_for_AWG_done'] = 1 #free evolutiona time is half the total evolution time!!! from centre to centre of pulses m.params_lt3['free_evolution_times'] = np.ones( pts) * m.params_lt3['first_C_revival'] #m.params_lt3['A_SP_amplitude'] = 0. #use LDE element SP. m.params_lt3['extra_ts_between_pulses'] = np.ones( pts) * m.params_lt3['dd_extra_t_between_pi_pulses'] # sweep params m.params_lt3['dd_spin_echo_times'] = np.linspace( -40e-9, 40e-9, pts) + m.params_lt3['dd_spin_echo_time'] m.params_lt3['DD_pi_phases'] = [0, -90, 0, -90] m.dd_sweep_LDE_spin_echo_time_msmt() # for the autoanalysis m.params_lt3['sweep_name'] = 'dd spin echo times (us)' m.params_lt3['sweep_pts'] = m.params_lt3['dd_spin_echo_times'] / 1e-6 dd_msmt.finish(m, upload=True, debug=False)
def dd_sweep_LDE_DD_XY4_pi2_pulse_amp(name): m = dd_msmt.DynamicalDecoupling('calibrate_xy4_t_before_pi2') dd_msmt.prepare(m) pts = 16 m.params['pts'] = pts m.params['repetitions'] = 2000 m.params_lt3['wait_for_AWG_done'] = 1 #free evolutiona time is half the total evolution time!!! from centre to centre of pulses #m.params_lt3['A_SP_amplitude'] = 0. #use LDE element SP. m.params_lt3['extra_ts_before_pi2'] = np.ones(pts) * 0 # sweep params m.params_lt3['pi2_pulse_amps'] = np.linspace( -0.15, 0.15, pts) + m.params_lt3['CORPSE_pi2_amp'] m.params_lt3['DD_pi_phases'] = [0, -90, 0, -90] m.dd_sweep_LDE_DD_second_pi2() # for the autoanalysis m.params_lt3['sweep_name'] = 'pi2 pulse amplitude (V)' m.params_lt3['sweep_pts'] = m.params_lt3['pi2_pulse_amps'] dd_msmt.finish(m, upload=True, debug=False)
def dd_sweep_free_ev_time_with_LDE(name): m = dd_msmt.DynamicalDecoupling('calibrate_first_revival_w_LDE') dd_msmt.prepare(m) pts = 16 m.params['pts'] = pts m.params['repetitions'] = 1000 m.params_lt3['wait_for_AWG_done'] = 1 m.params_lt3['revival_nr'] = 1 m.params_lt3['dd_spin_echo_times'] = np.ones( pts) * m.params_lt3['dd_spin_echo_time'] # sweep params #free evolutiona time is half the total evolution time!!! from centre to centre of pulses m.params_lt3['free_evolution_times'] = np.linspace(-3000e-9, 3000e-9, pts) + \ m.params_lt3['first_C_revival'] * m.params_lt3['revival_nr']# m.params_lt3['DD_pi_phases'] = [0] m.dd_sweep_LDE_spin_echo_time_msmt() # for the autoanalysis m.params_lt3['sweep_name'] = 'total free evolution time (us)' m.params_lt3['sweep_pts'] = 2 * m.params_lt3['free_evolution_times'] / 1e-6 dd_msmt.finish(m, upload=True, debug=False)
def dd_sweep_LDE_DD_XY4_free_evolution_time_t_coh(name): m = dd_msmt.DynamicalDecoupling('calibrate_xy4_fet') dd_msmt.prepare(m) pts = 51 ppts = pts * 4 + 5 m.params['pts'] = pts m.params['repetitions'] = 1500 m.params_lt3['wait_for_AWG_done'] = 1 #free evolutiona time is half the total evolution time!!! from centre to centre of pulses m.params_lt3['extra_ts_between_pulses'] = np.ones( ppts) * m.params_lt3['dd_extra_t_between_pi_pulses'] m.params_lt3['dd_spin_echo_times'] = np.ones( ppts) * m.params_lt3['dd_spin_echo_time'] #m.params_lt3['A_SP_amplitude'] = 0. #use LDE element SP. # sweep params m.params_lt3['free_evolution_times1'] = np.linspace( -1e-6, 1e-6, pts) + m.params_lt3['first_C_revival'] m.params_lt3['free_evolution_times2'] = np.linspace( -1e-6, 1e-6, pts) + 2 * m.params_lt3['first_C_revival'] m.params_lt3['free_evolution_times3'] = np.linspace( -1e-6, 1e-6, 10) + 3 * m.params_lt3['first_C_revival'] m.params_lt3['free_evolution_times4'] = np.linspace( -1e-6, 1e-6, pts) + 4 * m.params_lt3['first_C_revival'] m.params_lt3['free_evolution_times'] = np.linspace( -5e-6, 5e-6, pts) + 3 * m.params_lt3['first_C_revival'] #np.array( [ m.params_lt3['free_evolution_times1'] , m.params_lt3['free_evolution_times2'] , #m.params_lt3['free_evolution_times3'], m.params_lt3['free_evolution_times4'] ]).flatten() print m.params_lt3['free_evolution_times'] m.params_lt3['DD_pi_phases'] = [0, -90, 0, -90] m.dd_sweep_LDE_spin_echo_time_msmt() # for the autoanalysis m.params_lt3['sweep_name'] = 'free evolution time (us)' m.params_lt3['sweep_pts'] = m.params_lt3['dd_extra_t_between_pi_pulses'] * (len(m.params_lt3['DD_pi_phases']) -1) + \ 2 * len(m.params_lt3['DD_pi_phases']) * m.params_lt3['free_evolution_times'] / 1e-6 dd_msmt.finish(m, upload=True, debug=False)
def dd_calibrate_C13_revival(name): m = dd_msmt.DynamicalDecoupling('calibrate_first_revival') dd_msmt.prepare(m) pts = 11 m.params['pts'] = pts m.params['repetitions'] = 2000 m.params_lt3['wait_for_AWG_done'] = 1 # sweep params #free evolutiona time is half the total evolution time!!! from centre to centre of pulses m.params_lt3['free_evolution_times'] = 53.4e-6 + np.linspace( -2.5e-6, 2.5e-6, pts) #m.params_lt3['first_C_revival'] # m.params_lt3['DD_pi_phases'] = [0] m.dd_sweep_free_ev_time_msmt() # for the autoanalysis m.params_lt3['sweep_name'] = 'total free evolution time (us)' m.params_lt3['sweep_pts'] = 2 * m.params_lt3['free_evolution_times'] / 1e-6 dd_msmt.finish(m, upload=True, debug=False)
def dd_sweep_LDE_DD_XY4_t_before_pi2(name): m = dd_msmt.DynamicalDecoupling('calibrate_xy4_t_before_pi2') dd_msmt.prepare(m) pts = 15 m.params['pts'] = pts m.params['repetitions'] = 1000 m.params_lt3['wait_for_AWG_done'] = 1 #free evolutiona time is half the total evolution time!!! from centre to centre of pulses #m.params_lt3['A_SP_amplitude'] = 0. #use LDE element SP. # sweep params m.params_lt3['extra_ts_before_pi2'] = np.linspace(-3e-6, 3e-6, pts) m.params_lt3['DD_pi_phases'] = [0, -90, 0, -90] m.dd_sweep_LDE_DD_second_pi2() # for the autoanalysis m.params_lt3['sweep_name'] = 'extra t before pi2 pulse (us)' m.params_lt3['sweep_pts'] = m.params_lt3['extra_ts_before_pi2'] / 1e-6 dd_msmt.finish(m, upload=True, debug=False)
def dd_bare_XY4(name): m = dd_msmt.DynamicalDecoupling('bare_xy4_noLDE') dd_msmt.prepare(m) pts = 11 m.params['pts'] = pts m.params['repetitions'] = 5000 m.params_lt3['wait_for_AWG_done'] = 1 # sweep params #free evolutiona time is half the total evolution time!!! from centre to centre of pulses m.params_lt3['free_evolution_times'] = m.params_lt3[ 'first_C_revival'] + np.linspace(-1e-6, 1e-6, pts) # # m.params_lt3['DD_pi_phases'] = [0, -90, 0, -90] m.dd_sweep_free_ev_time_msmt() # for the autoanalysis m.params_lt3['sweep_name'] = 'total free evolution time (us)' m.params_lt3['sweep_pts'] = m.params_lt3['dd_extra_t_between_pi_pulses'] * (len(m.params_lt3['DD_pi_phases']) -1) + \ 2 * len(m.params_lt3['DD_pi_phases']) * m.params_lt3['free_evolution_times'] / 1e-6 dd_msmt.finish(m, upload=True, debug=False)