Ejemplo n.º 1
0
def plot_excited_state_vs_B(Ex = 0, b_range = np.linspace(0,1000,100), b_direction = 'Z'):
    ''' Plots the excited state levels as function of magnetic field over the b_range (in Gauss) and 
    with orientation b_direction'''
    spectrum=np.zeros((6,))
    for B in b_range:
        if b_direction == 'Z':
            spectrum=np.vstack((spectrum,np.sort(nvlevels.get_ES(
                                                            E_field=[Ex,0.,0.], 
                                                            B_field=[0.,0.,B],
                                                            Ee0=-1.94,
                                                            transitions=False,
                                                            )[0])))
        elif b_direction == 'X':
            spectrum=np.vstack((spectrum,np.sort(nvlevels.get_ES(
                                                            E_field=[Ex,0.,0.], 
                                                            B_field=[B,0.,0.],
                                                            Ee0=-1.94,
                                                            transitions=False,
                                                            )[0])))
        elif b_direction == 'Y':
            spectrum=np.vstack((spectrum,np.sort(nvlevels.get_ES(
                                                            E_field=[Ex,0.,0.], 
                                                            B_field=[0.,B,0.],
                                                            Ee0=-1.94,
                                                            transitions=False,
                                                            )[0])))
        else: 
            print 'b_direction must be "X", "Y" or "Z"'
    
    spectrum=spectrum[1:]

    pylab.figure() 
    for i in range(6):
        pylab.plot(b_range,spectrum[:,i])
Ejemplo n.º 2
0
def plot_ES_e_dependence(Bz=20.):
	e_range=np.linspace(0,10,100) #gauss
	spectrum=np.zeros((6,))
	for Ex in e_range:
		spectrum=np.vstack((spectrum,np.sort(nvlevels.get_ES(
															E_field=[Ex,0.,0.], 
															B_field=[0.,0.,Bz],
															Ee0=-1.94,
															transitions=False,
															)[0])))
	spectrum=spectrum[1:]

	for i in range(6):
		plot(e_range,spectrum[:,i])
Ejemplo n.º 3
0
def plot_ES_b_dependence(strain_splitting=2.):
	b_range=np.linspace(0,1000,100) #gauss
	Ex=strain_splitting/2. #Ex is approx strain_splitting divided by 2
	spectrum=np.zeros((6,))
	for Bz in b_range:
		spectrum=np.vstack((spectrum,np.sort(nvlevels.get_ES(
															E_field=[Ex,0.,0.], 
															B_field=[0.,0.,Bz],
															Ee0=-1.94,
															transitions=False,
															)[0])))
	spectrum=spectrum[1:]

	for i in range(6):
		plot(b_range,spectrum[:,i])
Ejemplo n.º 4
0
def plot_excited_state_vs_strain(B = [0., 0., 0.], Ex_range = np.linspace(0,20,100)/2):
    ''' B_field in gauss and as a vector [B_x, B_y, B_z], 
    Ex is approx strain_splitting divided by 2
     '''
    spectrum=np.zeros((6,))
    for E_x in Ex_range:
        spectrum=np.vstack((spectrum,np.sort(nvlevels.get_ES(
                                                            E_field=[E_x,0.,0.], 
                                                            B_field=[B[0],B[1],B[2]],
                                                            Ee0=-1.94,
                                                            transitions=False,
                                                            )[0])))
    spectrum=spectrum[1:]
    pylab.figure() 
    for i in range(6):
        pylab.plot(Ex_range,spectrum[:,i]) 
Ejemplo n.º 5
0
def plot_ES_b_dependence(strain_splitting=2.):
	b_range=np.linspace(0,1000,100) #gauss
	Ex=strain_splitting/2. #Ex is approx strain_splitting divided by 2
	spectrum=np.zeros((6,))
	#plt.close()
	for Bz in b_range:
		spectrum=np.vstack((spectrum,np.sort(nvlevels.get_ES(
															E_field=[Ex,0.,0.], 
															B_field=[0.,0.,Bz],
															Ee0=-1.94,
															transitions=False,
															)[0])))
	spectrum=spectrum[1:]

	for i in range(6):
		plt.plot(b_range,spectrum[:,i])
		plt.savefig(save_path+'ES_B_dependence_Ex_'+str(Ex)+'.png')
Ejemplo n.º 6
0
def plot_ES_b_dependence(strain_splitting=2.):
    b_range = np.linspace(0, 1000, 100)  #gauss
    Ex = strain_splitting / 2.  #Ex is approx strain_splitting divided by 2
    spectrum = np.zeros((6, ))
    #plt.close()
    for Bz in b_range:
        spectrum = np.vstack((spectrum,
                              np.sort(
                                  nvlevels.get_ES(
                                      E_field=[Ex, 0., 0.],
                                      B_field=[0., 0., Bz],
                                      Ee0=-1.94,
                                      transitions=False,
                                  )[0])))
    spectrum = spectrum[1:]

    for i in range(6):
        plt.plot(b_range, spectrum[:, i])
        # plt.show()
        plt.savefig(save_path + 'ES_B_dependence_Ex_' + str(Ex) + '.png')
Ejemplo n.º 7
0
def plot_ES_e_dependence(Bz=20.):
	e_range=np.linspace(0,10,100) #gauss
	spectrum=np.zeros((6,))
	# plt.close()
	plt.figure()
	for Ex in e_range:
		spectrum=np.vstack((spectrum,np.sort(nvlevels.get_ES(
															E_field=[Ex,0.,0.], 
															B_field=[0.,0.,Bz],
															Ee0=-1.94,
															transitions=False,
															)[0])))
	spectrum=spectrum[1:]


	for i in range(6):
		plt.plot(e_range,spectrum[:,i])
		plt.title('Excited state levels E dependence, Bz = '+str(Bz))
		plt.xlabel('Strain E (GHz)')
		plt.ylabel('relative energy (GHz)')
		plt.savefig(save_path+'ES_E_dependence_Bz_'+str(Bz)+'.png')
Ejemplo n.º 8
0
def plot_ES_e_dependence(Bz=20.):
    e_range = np.linspace(0, 10, 100)  #gauss
    spectrum = np.zeros((6, ))
    # plt.close()
    plt.figure()
    for Ex in e_range:
        spectrum = np.vstack((spectrum,
                              np.sort(
                                  nvlevels.get_ES(
                                      E_field=[Ex, 0., 0.],
                                      B_field=[0., 0., Bz],
                                      Ee0=-1.94,
                                      transitions=False,
                                  )[0])))
    spectrum = spectrum[1:]

    for i in range(6):
        plt.plot(e_range, spectrum[:, i])
        plt.title('Excited state levels E dependence, Bz = ' + str(Bz))
        plt.xlabel('Strain E (GHz)')
        plt.ylabel('relative energy (GHz)')
        plt.savefig(save_path + 'ES_E_dependence_Bz_' + str(Bz) + '.png')
Ejemplo n.º 9
0
def get_NV_states(B_field = [0., 0., 0.], Ex = 0., ZFS = 2.8769):

    es_spectrum =np.sort(nvlevels.get_ES(
                                                        E_field=[Ex,0.,0.], 
                                                        B_field=[B_field[0],B_field[1],B_field[2]],
                                                        Ee0=-1.94,
                                                        transitions=False,
                                                        )[0])

    print 'B_field = ', str(B_field)
    print 'Strain is = ', str(Ex*2) 
    print ''

    ms0_energy = 0
    msm_energy = ((ZFS - B_field[2]*2.8e-3)**2 + (B_field[0]*2.8e-3)**2 + (B_field[1]*2.8e-3)**2)**0.5 
    msp_energy = ((ZFS + B_field[2]*2.8e-3)**2 + (B_field[0]*2.8e-3)**2 + (B_field[1]*2.8e-3)**2)**0.5
    gs_spectrum = [ms0_energy, msm_energy, msp_energy]

    print 'ground state spectrum is ' + str(gs_spectrum) 
    print ''    
    print 'excited state spectrum is ' + str(es_spectrum)
    print ''

    return gs_spectrum, es_spectrum