Esempio n. 1
0
          straight_coupling1=0.7**0.5) #The coupling from bus to ring and back


my_ring_cm = my_ring.CircuitModel(coupler_parameters=[cp, cp])

wavelengths = np.linspace(1.50, 1.6, 2001)
S = my_ring_cm.get_smatrix(wavelengths=wavelengths)

plt.plot(wavelengths, np.abs(S['in1', 'out1'])**2, 'b', label="pass")
plt.plot(wavelengths, np.abs(S['in1', 'out2'])**2, 'r', label="drop")
plt.plot(wavelengths, np.abs(S['in1', 'in2'])**2, 'g', label="add")

plt.xlabel("Wavelength ($\mu m$)")
plt.ylabel("Power transmission")
plt.legend()
plt.show()  

# 6. Curved grating
from picazzo3.fibcoup.curved import FiberCouplerCurvedGrating
my_grating = FiberCouplerCurvedGrating()

# 7. Layout
my_grating_layout = my_grating.Layout(n_o_lines=24, period_x=0.65, box_width=15.5)
my_grating_layout.visualize()

# 8. Setting the CircuitModel view from the grating coupler.
my_grating_cm = my_grating.CircuitModel(center_wavelength=1.55, bandwidth_3dB=0.06, peak_transmission=0.60**0.5, reflection=0.05**0.5)
S = my_grating_cm.get_smatrix(wavelengths=wavelengths)
plt.plot(wavelengths, np.abs(S['vertical_in', 'out'])**2, 'b', label="pass")
plt.legend()
plt.show()
Esempio n. 2
0
print("Spacing: {} nm".format(spacing * 1e3))
res_w = 1.550 + spacing * np.asarray([0, 1, 2, 3, 4, 5, 6, 7])

rings = []
r_layouts = []
for nr, l in enumerate(res_w):
    ring = SimpleRing(resonance_wavelength=l)
    rings.append(ring)
    r_layouts.append(ring.Layout())

# #######################################
# Grating Coupler
# #######################################

grating_coupler = FiberCouplerCurvedGrating()
grating_coupler_layout = grating_coupler.Layout()
grating_cm = grating_coupler.CircuitModel(center_wavelength=1.55,
                                          bandwidth_3dB=0.06,
                                          peak_transmission=0.60**0.5,
                                          reflection=0.01**0.5)

# #######################################
# Splitter
# #######################################

splitter = SimpleMMI()
splitter_layout = splitter.Layout(length=14.1428571429, waveguide_spacing=2.1)
splitter_cm = splitter.CircuitModel(straight_coupling1=0.45**0.5)

# #######################################
# Termination