Layout#
All UBC ubcpdk.components cells are conveniently combined into the ubcpdk.components module.
import gdsfactory as gf
import ubcpdk.components as uc
Fixed Component cells#
Most ubcpdk
components are imported from GDS files as fixed cells.
c = uc.ebeam_crossing4()
c.plot()
c = uc.ebeam_swg_edgecoupler()
c.plot()
c = uc.ebeam_bdc_te1550()
c.plot()
c = uc.ebeam_adiabatic_te1550()
c.plot()
c = uc.ebeam_y_adiabatic()
c.plot()
c = uc.ebeam_y_1550()
c.plot()
Parametric Component PCells#
You can also define cells adapted from gdsfactory generic pdk.
c = uc.straight(length=2)
c.plot()
c = uc.bend(radius=5)
c.plot()
c = uc.ring_with_crossing()
c.plot()
c = uc.dbr()
c.plot()
/usr/local/lib/python3.11/site-packages/gdsfactory/pdk.py:447: UserWarning: {'width': 0.45} are ignored for cross_section 'xs_c8b8e980'
warnings.warn(
/usr/local/lib/python3.11/site-packages/gdsfactory/pdk.py:447: UserWarning: {'width': 0.55} are ignored for cross_section 'xs_c8b8e980'
warnings.warn(
c = uc.spiral()
c.plot()
c = uc.mzi_heater()
c.plot()
c = uc.ring_single_heater()
c.plot()
Components with grating couplers#
To test your devices you can add grating couplers. Both for single fibers and for fiber arrays.
splitter = uc.ebeam_y_1550()
mzi = gf.components.mzi(splitter=splitter)
mzi.plot()
component_fiber_array = uc.add_fiber_array(component=mzi, fanout_length=5)
component_fiber_array.plot()
c = uc.ring_single_heater()
c = uc.add_fiber_array_pads_rf(c)
c.plot()
c = uc.mzi_heater()
c = uc.add_fiber_array_pads_rf(c)
c.plot()
3D rendering#
scene = c.to_3d()
scene.show()