LUCEDA IPKISS Tutorial 61:自定义trace_template

在ipkiss中,可以通过WindowWaveguideTemplate来定义自己的波导模板(trace_template),
如SlotWaveguidetemplate:
在这里插入图片描述

所有代码如下(注:只适用于ipkiss3.11及以上版本):

import si_fab.all as pdk  # noqa: F401
import ipkiss3.all as i3

class SlotWaveguideTemplate(i3.WindowWaveguideTemplate):
    class Layout(i3.WindowWaveguideTemplate.Layout):
        core_width = i3.PositiveNumberProperty(doc="Core width of the waveguide")
        slot_width = i3.PositiveNumberProperty(doc="slot width of the waveguide")
        cladding_width = i3.PositiveNumberProperty(doc="cladding width of the waveguide")

        def _default_core_width(self):
            return 0.4

        def _default_slot_width(self):
            return 0.4

        def _default_cladding_width(self):
            return 4

        def _default_windows(self):
            return [
                i3.PathTraceWindow(
                    layer=i3.TECH.PPLAYER.SI,
                    start_offset=-self.core_width - 0.5 * self.slot_width,
                    end_offset=- 0.5 * self.slot_width,
                ),
                i3.PathTraceWindow(
                    layer=i3.TECH.PPLAYER.SI,
                    start_offset=0.5 * self.slot_width,
                    end_offset=self.core_width + 0.5 * self.slot_width,
                ),
                i3.PathTraceWindow(
                    layer=i3.TECH.PPLAYER.SI_CLADDING,
                    start_offset=-0.5 * self.cladding_width,
                    end_offset=0.5 * self.cladding_width
                ),
            ]

if __name__ == '__main__':
    # Instantiate the new waveguide template to use it in our waveguide below
    wg_tmpl = SlotWaveguideTemplate()
    wg = i3.RoundedWaveguide(trace_template=wg_tmpl)
    wg_lay = wg.Layout(shape=[(0, 0), (10, 0), (10, 10)])

    wg_lay.visualize(annotate=True)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值