def fig13b(): """ Silicon layer bounded by two semi infinite air claddings. """ # Create structure st = SPE() # st.add_layer(1e3, si) st.add_layer(1900, sio2) st.add_layer(100, si) st.add_layer(20, sio2) st.add_layer(100, si) st.add_layer(1e3, air) st.set_vacuum_wavelength(lam0) st.info() # Calculate spontaneous emission over whole structure result = st.calc_spe_structure_guided() z = result['z'] spe = result['spe'] # Convert z into z/lam0 and center z = st.calc_z_to_lambda(z) # Plot spontaneous emission rates fig = plt.figure() ax1 = fig.add_subplot(111) ax1.plot(z, spe['TE'], label=r'$\Gamma^{\mathrm{TE}}$') ax1.plot(z, spe['TM_p'], label=r'$\Gamma^{\mathrm{TM}}_∥$') ax1.plot(z, spe['TM_s'], label=r'$\Gamma^{\mathrm{TM}}_⊥$') ax1.plot(z, spe['avg'], label=r'total') ax1.legend() # Plot layer boundaries for z in st.get_layer_boundaries()[:-1]: ax1.axvline(st.calc_z_to_lambda(z), color='k', lw=1, ls='--') ax1.set_ylim(0, 16) ax1.set_xlim(0, 0.5) # ax1.set_title('The spatial dependence of the normalized spontaneous emission rate \n' # 'into leaky modes for asymmetric Silicon waveguide (SiO2/Si/air).') ax1.set_ylabel('$\Gamma / \Gamma_0$') ax1.set_xlabel('z/$\lambda$') if SAVE: plt.savefig('../Images/creatore_fig13b') plt.show()
def fig8(): # Create structure st = SPE() st.add_layer(1.5 * lam0, sio2) st.add_layer(lam0, si) st.add_layer(1.5 * lam0, air) st.set_vacuum_wavelength(lam0) st.info() # Do Simulation result = st.calc_spe_structure_guided() z = result['z'] spe = result['spe'] # Convert z into z/lam0 and center z = st.calc_z_to_lambda(z) # Plot results fig, (ax1, ax2) = plt.subplots(2, 1, sharex='col', sharey='none') ax1.plot(z, spe['TE'], label='TE') ax1.plot(z, spe['TM_p'], label='TM') ax1.plot(z, spe['TE'] + spe['TM_p'], label='TE + TM') ax2.plot(z, spe['TM_s'], label='TM') for z in st.get_layer_boundaries()[:-1]: z = st.calc_z_to_lambda(z) ax1.axvline(x=z, color='k', lw=1, ls='--') ax2.axvline(x=z, color='k', lw=1, ls='--') ax1.set_ylim(0, 4) ax2.set_ylim(0, 5) ax1.set_title( 'The spatial dependence of the normalized spontaneous emission rate \n' 'into guided modes for asymmetric Silicon waveguide (SiO2/Si/air).') ax1.set_ylabel('$\Gamma / \Gamma_0$') ax2.set_ylabel('$\Gamma /\Gamma_0$') ax2.set_xlabel('z/$\lambda$') ax1.legend(title='Horizontal Dipoles', fontsize='small') ax2.legend(title='Vertical Dipoles', fontsize='small') fig.tight_layout() if SAVE: plt.savefig('../Images/creatore_fig8') plt.show()
def fig5(): # Create structure st = SPE() st.add_layer(1.5 * lam0, air) st.add_layer(lam0, si) st.add_layer(1.5 * lam0, air) st.set_vacuum_wavelength(lam0) st.info() result = st.calc_spe_structure_guided() z = result['z'] spe = result['spe'] # Convert z into z/lam0 and center z = st.calc_z_to_lambda(z) fig, (ax1, ax2) = plt.subplots(2, 1, sharex='col', sharey='none') ax1.plot(z, spe['TE'], label='TE') ax1.plot(z, spe['TM_p'], label='TM') ax1.plot(z, spe['TE'] + spe['TM_p'], label='TE + TM') ax2.plot(z, spe['TM_s'], label='TM') for z in st.get_layer_boundaries()[:-1]: ax1.axvline(st.calc_z_to_lambda(z), color='k', lw=1, ls='--') ax2.axvline(st.calc_z_to_lambda(z), color='k', lw=1, ls='--') # ax1.set_ylim(0, 4) # ax2.set_ylim(0, 6) ax1.set_title('Spontaneous Emission Rate. Core n=3.48, Cladding n=1.') ax1.set_ylabel('$\Gamma / \Gamma_0$') ax2.set_ylabel('$\Gamma /\Gamma_0$') ax2.set_xlabel('z/$\lambda$') size = 12 ax1.legend(title='Horizontal Dipoles', prop={'size': size}) ax2.legend(title='Vertical Dipoles', prop={'size': size}) fig.tight_layout() if SAVE: plt.savefig('../Images/creatore_fig5') plt.show()