def f(mode, fname): wavefs_propagated = [] labels = [] for d in dists: wavefs_propagated.append(functools.partial(lambda z,x: wavefs[mode-1](x,z), d)) labels.append('z=%.3fm' % d) (fig, ax) = plotting.setup_figure_standard(title=u'Intensity for n=%i mode' % mode, xlabel=u'Distance accross waveguide (m)', ylabel=u'Wavefunction intensity (arbitrary units)') #fig.hold(True) colours = ['blue', 'orange', 'green', 'purple', 'grey', 'lime', 'cyan', 'yellow', 'black', 'navy', 'teal'] colours.reverse() ax.hold(True) d = [] for (wf, lbl) in zip(wavefs_propagated, labels): d.append(plotting.plot_intensity(ax, wf, waveguide.slab_gap, colour=colours.pop(), label=lbl)) ax.hold(False) if len(dists) != 1: ax.legend(loc='upper left', prop={'size' : 10}) plotting.save_figure(fig, fname) i = 1 for data in d: sio.savemat(fname + str(i) + '.mat',data) i += 1
def f(mode, fname): kx = kxs[mode-1] inwave = lambda x: np.exp(1j*kx.real*x) splitter = splitters.ModeSplitter(inwave, wavefs) cm = splitter.get_coupling_constants() wffull = splitter.get_wavefunction(cm) wf = lambda x: wffull(x, 0.005) #(fig, reax, imax) = plotting.setup_figure_topbottom( # title=ur'Wavefunction for incidence angle on n=%i mode' % mode, # xlabel=u'Distance accross waveguide (m)', # ylabel=u'Wavefunction (arbitrary units)') (fig, ax) = plotting.setup_figure_standard( title=ur'Wavefunction for incidence angle on n=%i mode' % mode, xlabel=u'Distance accross waveguide (m)', ylabel=u'Wavefunction (arbitrary units)') #plotting.plot_wavefunction(reax, imax, wf, waveguide.slab_gap) plotting.plot_intensity(ax, wf, waveguide.slab_gap) plotting.save_figure(fig, fname) coefftable[mode-1, :] = np.abs(cm)**2