Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
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)
Esempio n. 5
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_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)
Esempio n. 6
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_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)
Esempio n. 7
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_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)
Esempio n. 8
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_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)
Esempio n. 9
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_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)
Esempio n. 10
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_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)