Пример #1
0
def dd_sweep_LDE_DD_XX_free_evolution_time(name):
    m = dd_msmt.DynamicalDecoupling('calibrate_xx_fet')
    dd_msmt.prepare(m)

    pts = 17
    m.params['pts'] = pts
    m.params['repetitions'] = 5000
    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['free_evolution_times'] = np.linspace(-1e-6,1e-6,pts) + m.params_lt2['first_C_revival']

    m.params_lt2['DD_pi_phases'] = [0,0]
    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=True,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)
Пример #3
0
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_lt2['wait_for_AWG_done'] = 1

    m.params_lt2['revival_nr'] = 1
    m.params_lt2['dd_spin_echo_times'] = np.ones(pts) * m.params_lt2['dd_spin_echo_time']

    # sweep params
    #free evolutiona time is half the total evolution time!!! from centre to centre of pulses
    m.params_lt2['free_evolution_times'] = np.linspace(-3000e-9, 3000e-9, pts) + \
        m.params_lt2['first_C_revival'] * m.params_lt2['revival_nr']#

    m.params_lt2['DD_pi_phases'] = [0]
    m.dd_sweep_LDE_spin_echo_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=True,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_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_sweep_LDE_spin_echo_time(name):
    m = dd_msmt.DynamicalDecoupling("calibrate_LDE_spin_echo_time")
    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["extra_ts_between_pulses"] = np.ones(pts) * 0

    # m.params_lt2['A_SP_amplitude'] = 0. #use LDE element SP.

    # sweep params
    m.params_lt2["dd_spin_echo_times"] = np.linspace(-150e-9, 0e-9, pts)

    m.params_lt2["DD_pi_phases"] = [0]
    m.dd_sweep_LDE_spin_echo_time_msmt()

    # for the autoanalysis
    m.params_lt2["sweep_name"] = "extra dd spin echo time (us)"
    m.params_lt2["sweep_pts"] = m.params_lt2["dd_spin_echo_times"] / 1e-6

    dd_msmt.finish(m, upload=UPLOAD, debug=False)
Пример #7
0
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_lt2['wait_for_AWG_done'] = 1

    # sweep params
    #free evolutiona time is half the total evolution time!!! from centre to centre of pulses
    m.params_lt2['free_evolution_times'] = 53.4e-6 + np.linspace(-2.5e-6, 2.5e-6, pts) #m.params_lt2['first_C_revival'] #

    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=True,debug=False)
Пример #8
0
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_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(ppts) * m.params_lt2['dd_extra_t_between_pi_pulses']
    m.params_lt2['dd_spin_echo_times'] = np.ones(ppts) * m.params_lt2['dd_spin_echo_time']
    #m.params_lt2['A_SP_amplitude'] = 0. #use LDE element SP. 
    
    # sweep params
    
    m.params_lt2['free_evolution_times1'] = np.linspace(-1e-6,1e-6,pts) + m.params_lt2['first_C_revival']
    m.params_lt2['free_evolution_times2'] = np.linspace(-1e-6,1e-6,pts) + 2 * m.params_lt2['first_C_revival']
    m.params_lt2['free_evolution_times3'] = np.linspace(-1e-6,1e-6,10) + 3 * m.params_lt2['first_C_revival']
    m.params_lt2['free_evolution_times4'] = np.linspace(-1e-6,1e-6,pts) + 4 * m.params_lt2['first_C_revival']

    m.params_lt2['free_evolution_times'] = np.linspace(-5e-6,5e-6,pts) + 3 * m.params_lt2['first_C_revival']

    #np.array( [ m.params_lt2['free_evolution_times1'] , m.params_lt2['free_evolution_times2'] ,
    #m.params_lt2['free_evolution_times3'], m.params_lt2['free_evolution_times4'] ]).flatten()

    print m.params_lt2['free_evolution_times']

    m.params_lt2['DD_pi_phases'] = [0,-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=True,debug=False)
Пример #9
0
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_lt2['wait_for_AWG_done'] = 1

    # sweep params
    #free evolutiona time is half the total evolution time!!! from centre to centre of pulses
    m.params_lt2['free_evolution_times'] = m.params_lt2['first_C_revival'] + np.linspace(-1e-6, 1e-6, pts) # #

    m.params_lt2['DD_pi_phases'] = [0, -90, 0, -90]
    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'] = 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=True,debug=False)
Пример #10
0
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_lt2['wait_for_AWG_done'] = 1

    #free evolutiona time is half the total evolution time!!! from centre to centre of pulses
    #m.params_lt2['A_SP_amplitude'] = 0. #use LDE element SP. 
    
    # sweep params  
    m.params_lt2['extra_ts_before_pi2'] = np.linspace(-3e-6, 3e-6,pts)
    
    m.params_lt2['DD_pi_phases'] = [0,-90,0,-90]
    m.dd_sweep_LDE_DD_second_pi2()

    # for the autoanalysis
    m.params_lt2['sweep_name'] = 'extra t before pi2 pulse (us)'
    m.params_lt2['sweep_pts'] = m.params_lt2['extra_ts_before_pi2'] / 1e-6  

    dd_msmt.finish(m,upload=True,debug=False)
Пример #11
0
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_lt2['wait_for_AWG_done'] = 1

    #free evolutiona time is half the total evolution time!!! from centre to centre of pulses
    #m.params_lt2['A_SP_amplitude'] = 0. #use LDE element SP. 
    m.params_lt2['extra_ts_before_pi2'] = np.ones(pts) * 0
    
    # sweep params  
    m.params_lt2['pi2_pulse_amps'] = np.linspace(-0.15, 0.15, pts) + m.params_lt2['CORPSE_pi2_amp']
    
    m.params_lt2['DD_pi_phases'] = [0,-90,0,-90]
    m.dd_sweep_LDE_DD_second_pi2()

    # for the autoanalysis
    m.params_lt2['sweep_name'] = 'pi2 pulse amplitude (V)'
    m.params_lt2['sweep_pts'] = m.params_lt2['pi2_pulse_amps'] 

    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)
    m.params["dd_use_delay_reps"] = False

    pts = 11
    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
    m.params_lt2["free_evolution_times"] = 52.4e-6 + np.linspace(
        -2.5e-6, 2.5e-6, pts
    )  # m.params_lt2['first_C_revival'] #

    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)