luceda ipkiss 教程3:线路仿真

利用ipkiss 自带的get_smatrix获取线路的传输谱
对于线路:

在这里插入图片描述
可通过get_smatrix直接得到其传输谱:

    wavelengths = np.linspace(1.5, 1.6, 2001)
    cm = r_dc.CircuitModel()
    S = cm.get_smatrix(wavelengths=wavelengths)
    plt.plot(wavelengths, i3.signal_power(S["out1", "in1"]), label="out1")
    plt.plot(wavelengths, i3.signal_power(S["out2", "in1"]), label="out2")
    plt.plot(wavelengths, i3.signal_power(S["in1", "in1"]), label="reflection")
    plt.legend()
    plt.xlabel("Wavelengths [um]")
    plt.ylabel("Transmission")
    plt.show()

在这里插入图片描述
也可以通过get_smatrix直接获取单个器件的行为模型,如方向耦合器的传输谱:

from si_fab import all as pdk
from ipkiss3 import all as i3
import math
import numpy as np
import pylab as plt
r_dc = pdk.SiDirectionalCouplerSPower(power_fraction=0.5, target_wavelength=1.55)
my_circuit = r_dc.Layout()
my_circuit.visualize(annotate=True)
my_circuit.write_gdsii("Rounted_dc.gds")
wavelengths = np.linspace(1.5, 1.6, 2001)
cm = r_dc.CircuitModel()
S = cm.get_smatrix(wavelengths=wavelengths)
plt.plot(wavelengths, i3.signal_power(S["out1", "in1"]), label="out1")
plt.plot(wavelengths, i3.signal_power(S["out2", "in1"]), label="out2")
plt.legend()
plt.xlabel("Wavelengths [um]")
plt.ylabel("Transmission")
plt.show()

在这里插入图片描述
或者光栅耦合器的传输谱:

from si_fab import all as pdk
from ipkiss3 import all as i3
import math
import numpy as np
import pylab as plt
r_dc = pdk.FC_TE_1550()
my_circuit = r_dc.Layout()
my_circuit.visualize(annotate=True)
wavelengths = np.linspace(1.5, 1.6, 2001)
cm = r_dc.CircuitModel()
S = cm.get_smatrix(wavelengths=wavelengths)
plt.plot(wavelengths, i3.signal_power(S["out", "vertical_in"]), label="out")
plt.legend()
plt.xlabel("Wavelengths [um]")
plt.ylabel("Transmission")
plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值