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])
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])
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])
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])
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')
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')
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')
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')
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