Luxtelligence provides a library of components that have been fabricated in the reference material stack, and whose performance has been tested and validated. Here follows a list of the available parametric cells (gdsfactory.Component objects):

Cells ltoi300#

chip_frame#

ltoi300.cells.chip_frame(size: tuple[float, float] = (10000, 5000), exclusion_zone_width: float = 50, center: tuple[float, float] = None, chip_contour_layer: tuple[int, int] = (6, 0), chip_exclusion_zone_layer: tuple[int, int] = (6, 1)) Component[source]#

Provide the chip extent and the exclusion zone around the chip frame. In the exclusion zone, only the edge couplers routing to the chip facet should be placed. Allowed chip dimensions (in either direction): 5000 um, 10000 um, 20000 um.

import ltoi300

c = ltoi300.cells.chip_frame(size=(10000, 5000), exclusion_zone_width=50, chip_contour_layer=(6, 0), chip_exclusion_zone_layer=(6, 1)).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-1.png

edge_coupler_cband#

ltoi300.cells.edge_coupler_cband(input_ext: float = 10.0, total_taper_length: float = 160.0, upper_taper_length: float = 80.0) Component[source]#

Returns a C-band edge coupler for LTOI300.

Parameters:
  • input_ext – extension length at the taper tip.

  • total_taper_length – total length of the taper.

  • upper_taper_length – length of the ridge section taper.

import ltoi300

c = ltoi300.cells.edge_coupler_cband(input_ext=10.0, total_taper_length=160.0, upper_taper_length=80.0).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-2.png

edge_coupler_oband#

ltoi300.cells.edge_coupler_oband(input_ext: float = 10.0, total_taper_length: float = 160.0, upper_taper_length: float = 80.0) Component[source]#

Returns an O-band edge coupler for LTOI300.

Parameters:
  • input_ext – extension length at the taper tip.

  • total_taper_length – total length of the taper.

  • upper_taper_length – length of the ridge section taper.

import ltoi300

c = ltoi300.cells.edge_coupler_oband(input_ext=10.0, total_taper_length=160.0, upper_taper_length=80.0).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-3.png

mmi1x2_cband#

ltoi300.cells.mmi1x2_cband(**kwargs) Component[source]#

Returns a standard 1x2 MMI optimized for low insertion loss on a 300/120 stack in the C-band (at 1550 nm).

Use with default parameters for standard designs: mmi = mmi1x2_cband(). Parameters can be overridden at the user’s risk.

Parameters:
  • width_mmi – Width of the MMI region in micrometers

  • length_mmi – Length of the MMI region in micrometers

  • width_taper – Width of the taper at the MMI interface in micrometers

  • length_taper – Length of the input/output tapers in micrometers

  • port_separation – Center-to-center separation between output ports in micrometers

  • cross_section – Cross-section specification for the waveguides

  • **kwargs – Additional keyword arguments passed to gdsfactory mmi1x2

Note

Default values for all parameters are defined in ltoi300._builders.mmis.build_mmi1x2_cband

import ltoi300

c = ltoi300.cells.mmi1x2_cband().copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-4.png

mmi1x2_oband#

ltoi300.cells.mmi1x2_oband(**kwargs) Component[source]#

Returns a standard 1x2 MMI optimized for low insertion loss on a 300/120 stack in the O-band (at 1310 nm).

Use with default parameters for standard designs: mmi = mmi1x2_oband(). Parameters can be overridden at the user’s risk.

Parameters:
  • width_mmi – Width of the MMI region in micrometers

  • length_mmi – Length of the MMI region in micrometers

  • width_taper – Width of the taper at the MMI interface in micrometers

  • length_taper – Length of the input/output tapers in micrometers

  • port_separation – Center-to-center separation between output ports in micrometers

  • cross_section – Cross-section specification for the waveguides

  • **kwargs – Additional keyword arguments passed to gdsfactory mmi1x2

Note

Default values for all parameters are defined in ltoi300._builders.mmis.build_mmi1x2_oband

import ltoi300

c = ltoi300.cells.mmi1x2_oband().copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-5.png

mmi2x2_cband#

ltoi300.cells.mmi2x2_cband(**kwargs) Component[source]#

Returns a standard 2x2 MMI optimized for 50% splitting on a 300/120 stack in the C-band (at 1550 nm).

Use with default parameters for standard designs: mmi = mmi2x2_cband(). Parameters can be overridden at the user’s risk.

Parameters:
  • width_mmi – Width of the MMI region in micrometers

  • length_mmi – Length of the MMI region in micrometers

  • width_taper – Width of the taper at the MMI interface in micrometers

  • length_taper – Length of the input/output tapers in micrometers

  • port_separation – Center-to-center separation between output ports in micrometers

  • cross_section – Cross-section specification for the waveguides

  • **kwargs – Additional keyword arguments passed to gdsfactory mmi2x2

Note

Default values for all parameters are defined in ltoi300._builders.mmis.build_mmi2x2_cband

import ltoi300

c = ltoi300.cells.mmi2x2_cband().copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-6.png

mmi2x2_oband#

ltoi300.cells.mmi2x2_oband(**kwargs) Component[source]#

Returns a standard 2x2 MMI optimized for 50% splitting on a 300/120 stack in the O-band (at 1310 nm).

Use with default parameters for standard designs: mmi = mmi2x2_oband(). Parameters can be overridden at the user’s risk.

Parameters:
  • width_mmi – Width of the MMI region in micrometers

  • length_mmi – Length of the MMI region in micrometers

  • width_taper – Width of the taper at the MMI interface in micrometers

  • length_taper – Length of the input/output tapers in micrometers

  • port_separation – Center-to-center separation between output ports in micrometers

  • cross_section – Cross-section specification for the waveguides

  • **kwargs – Additional keyword arguments passed to gdsfactory mmi2x2

Note

Default values for all parameters are defined in ltoi300._builders.mmis.build_mmi2x2_oband

import ltoi300

c = ltoi300.cells.mmi2x2_oband().copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-7.png

ring_resonator_multimode_point_coupler_cband#

ltoi300.cells.ring_resonator_multimode_point_coupler_cband(ring_radius: float = 200.0, ring_width: float = 1.5, gap: float = 1.2, bus_length: float | None = None) Component[source]#

Returns a multimode ring resonator with an evanescent point coupler for C-band operation. The gap is set to 1.2 um to ensure critical coupling. Note: the critical coupling condition is loss-specific and a different gap may be required for other loss conditions.

import ltoi300

c = ltoi300.cells.ring_resonator_multimode_point_coupler_cband(ring_radius=200.0, ring_width=1.5, gap=1.2).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-8.png

ring_resonator_multimode_point_coupler_oband#

ltoi300.cells.ring_resonator_multimode_point_coupler_oband(ring_radius: float = 200.0, ring_width: float = 1.5, gap: float = 0.75, bus_length: float | None = None) Component[source]#

Returns a multimode ring resonator with an evanescent point coupler for O-band operation. The gap is set to 0.75 um to ensure critical coupling. Note: the critical coupling condition is loss-specific and a different gap may be required for other loss conditions.

import ltoi300

c = ltoi300.cells.ring_resonator_multimode_point_coupler_oband(ring_radius=200.0, ring_width=1.5, gap=0.75).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-9.png

ring_resonator_single_mode_point_coupler_cband#

ltoi300.cells.ring_resonator_single_mode_point_coupler_cband(ring_radius: float = 200.0, ring_width: float = 0.9, gap: float = 1.5, bus_length: float | None = None) Component[source]#

Returns a single mode ring resonator with an evanescent point coupler for C-band operation. The gap is set to 1.5 um to ensure critical coupling. Note: the critical coupling condition is loss-specific and a different gap may be required for other loss conditions.

import ltoi300

c = ltoi300.cells.ring_resonator_single_mode_point_coupler_cband(ring_radius=200.0, ring_width=0.9, gap=1.5).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-10.png

ring_resonator_single_mode_point_coupler_oband#

ltoi300.cells.ring_resonator_single_mode_point_coupler_oband(ring_radius: float = 200.0, ring_width: float = 0.7, gap: float = 1.05, bus_length: float | None = None) Component[source]#

Returns a ring resonator with an evanescent point coupler for O-band operation. The gap is set to 1.05 um to ensure critical coupling. Note: the critical coupling condition is loss-specific and a different gap may be required for other loss conditions.

import ltoi300

c = ltoi300.cells.ring_resonator_single_mode_point_coupler_oband(ring_radius=200.0, ring_width=0.7, gap=1.05).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-11.png

straight_rwg2500#

ltoi300.cells.straight_rwg2500(length: float = 10.0, **kwargs) Component[source]#

Returns a straight 2500 nm-wide multi-mode waveguide. :param length: straight length (um).

import ltoi300

c = ltoi300.cells.straight_rwg2500(length=10.0).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-12.png

straight_rwg700_oband#

ltoi300.cells.straight_rwg700_oband(length: float = 10.0, **kwargs) Component[source]#

Returns a standard straight 700 nm-wide single-mode waveguide for O-band propagation. :param length: straight length (um).

import ltoi300

c = ltoi300.cells.straight_rwg700_oband(length=10.0).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-13.png

straight_rwg900_cband#

ltoi300.cells.straight_rwg900_cband(length: float = 10.0, **kwargs) Component[source]#

Standard straight single-mode waveguide for C-band propagation.

import ltoi300

c = ltoi300.cells.straight_rwg900_cband(length=10.0).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-14.png

terminated_mzm_1x2mmi_cband#

ltoi300.cells.terminated_mzm_1x2mmi_cband(modulation_length: float = 5000.0, rf_gap: float = 5.5, rf_central_conductor_width: float = 16.0, gsg_pitch: float = 100.0, length_imbalance: float = 100.0, bias_tuning_section_length: float = 700.0)[source]#

Returns a terminated MZM with 1x2 MMI splitter with effective index matching for C-band operation.

Parameters:
  • modulation_length – length of the EO modulation section.

  • rf_gap – gap between the RF ground planes and the RF central conductor.

  • rf_central_conductor_width – width of the RF central conductor.

  • gsg_pitch – pitch of the GSGs contact pads.

  • length_imbalance – length difference between the MZ branches for spectral bias tuning. If 0, MZ is balanced.

  • bias_tuning_section_length – length of the heater bias tuning section. If 0, the heater is disabled.

import ltoi300

c = ltoi300.cells.terminated_mzm_1x2mmi_cband(modulation_length=5000.0, rf_gap=5.5, rf_central_conductor_width=16.0, gsg_pitch=100.0, length_imbalance=100.0, bias_tuning_section_length=700.0).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-15.png

terminated_mzm_1x2mmi_oband#

ltoi300.cells.terminated_mzm_1x2mmi_oband(modulation_length: float = 5000.0, rf_gap: float = 5.5, rf_central_conductor_width: float = 20.0, gsg_pitch: float = 100.0, length_imbalance: float = 100.0, bias_tuning_section_length: float = 700.0)[source]#

Returns a terminated MZM with 1x2 MMI splitter with effective index matching for O-band operation.

Parameters:
  • modulation_length – length of the EO modulation section.

  • rf_gap – gap between the RF ground planes and the RF central conductor.

  • rf_central_conductor_width – width of the RF central conductor.

  • gsg_pitch – pitch of the GSGs contact pads.

  • length_imbalance – length difference between the MZ branches for spectral bias tuning. If 0, MZ is balanced.

  • bias_tuning_section_length – length of the heater bias tuning section. If 0, the heater is disabled.

import ltoi300

c = ltoi300.cells.terminated_mzm_1x2mmi_oband(modulation_length=5000.0, rf_gap=5.5, rf_central_conductor_width=20.0, gsg_pitch=100.0, length_imbalance=100.0, bias_tuning_section_length=700.0).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-16.png

terminated_mzm_2x2mmi_cband#

ltoi300.cells.terminated_mzm_2x2mmi_cband(modulation_length: float = 5000.0, rf_gap: float = 5.5, rf_central_conductor_width: float = 16.0, gsg_pitch: float = 100.0, length_imbalance: float = 100.0, bias_tuning_section_length: float = 700.0) Component[source]#

Returns a terminated MZM with 2x2 MMI splitter with effective index matching for C-band operation.

Parameters:
  • modulation_length – length of the EO modulation section.

  • rf_gap – gap between the RF ground planes and the RF central conductor.

  • rf_central_conductor_width – width of the RF central conductor.

  • gsg_pitch – pitch of the GSGs contact pads.

  • length_imbalance – length difference between the MZ branches for spectral bias tuning. If 0, MZ is balanced.

  • bias_tuning_section_length – length of the heater bias tuning section. If 0, the heater is disabled.

import ltoi300

c = ltoi300.cells.terminated_mzm_2x2mmi_cband(modulation_length=5000.0, rf_gap=5.5, rf_central_conductor_width=16.0, gsg_pitch=100.0, length_imbalance=100.0, bias_tuning_section_length=700.0).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-17.png

terminated_mzm_2x2mmi_oband#

ltoi300.cells.terminated_mzm_2x2mmi_oband(modulation_length: float = 5000.0, rf_gap: float = 5.5, rf_central_conductor_width: float = 20.0, gsg_pitch: float = 100.0, length_imbalance: float = 100.0, bias_tuning_section_length: float = 700.0) Component[source]#

Returns a terminated MZM with 2x2 MMI splitter with effective index matching for O-band operation.

Parameters:
  • modulation_length – length of the EO modulation section.

  • rf_gap – gap between the RF ground planes and the RF central conductor.

  • rf_central_conductor_width – width of the RF central conductor.

  • gsg_pitch – pitch of the GSGs contact pads.

  • length_imbalance – length difference between the MZ branches for spectral bias tuning. If 0, MZ is balanced.

  • bias_tuning_section_length – length of the heater bias tuning section. If 0, the heater is disabled.

import ltoi300

c = ltoi300.cells.terminated_mzm_2x2mmi_oband(modulation_length=5000.0, rf_gap=5.5, rf_central_conductor_width=20.0, gsg_pitch=100.0, length_imbalance=100.0, bias_tuning_section_length=700.0).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-18.png

unterminated_mzm_1x2mmi_cband#

ltoi300.cells.unterminated_mzm_1x2mmi_cband(modulation_length: float = 5000.0, rf_gap: float = 5.5, rf_central_conductor_width: float = 16.0, gsg_pitch: float = 100.0, length_imbalance: float = 100.0, bias_tuning_section_length: float = 700.0)[source]#

Returns a unterminated MZM with 1x2 MMI splitter with effective index matching for C-band operation.

Parameters:
  • modulation_length – length of the EO modulation section.

  • rf_gap – gap between the RF ground planes and the RF central conductor.

  • rf_central_conductor_width – width of the RF central conductor.

  • gsg_pitch – pitch of the GSGs contact pads.

  • length_imbalance – length difference between the MZ branches for spectral bias tuning. If 0, MZ is balanced.

  • bias_tuning_section_length – length of the heater bias tuning section. If 0, the heater is disabled.

import ltoi300

c = ltoi300.cells.unterminated_mzm_1x2mmi_cband(modulation_length=5000.0, rf_gap=5.5, rf_central_conductor_width=16.0, gsg_pitch=100.0, length_imbalance=100.0, bias_tuning_section_length=700.0).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-19.png

unterminated_mzm_1x2mmi_oband#

ltoi300.cells.unterminated_mzm_1x2mmi_oband(modulation_length: float = 5000.0, rf_gap: float = 5.5, rf_central_conductor_width: float = 20.0, gsg_pitch: float = 100.0, length_imbalance: float = 100.0, bias_tuning_section_length: float = 700.0)[source]#

Returns a unterminated MZM with 1x2 MMI splitter with effective index matching for O-band operation.

Parameters:
  • modulation_length – length of the EO modulation section.

  • rf_gap – gap between the RF ground planes and the RF central conductor.

  • rf_central_conductor_width – width of the RF central conductor.

  • gsg_pitch – pitch of the GSGs contact pads.

  • length_imbalance – length difference between the MZ branches for spectral bias tuning. If 0, MZ is balanced.

  • bias_tuning_section_length – length of the heater bias tuning section. If 0, the heater is disabled.

import ltoi300

c = ltoi300.cells.unterminated_mzm_1x2mmi_oband(modulation_length=5000.0, rf_gap=5.5, rf_central_conductor_width=20.0, gsg_pitch=100.0, length_imbalance=100.0, bias_tuning_section_length=700.0).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-20.png

unterminated_mzm_2x2mmi_cband#

ltoi300.cells.unterminated_mzm_2x2mmi_cband(modulation_length: float = 5000.0, rf_gap: float = 5.5, rf_central_conductor_width: float = 16.0, gsg_pitch: float = 100.0, length_imbalance: float = 100.0, bias_tuning_section_length: float = 700.0) Component[source]#

Returns an unterminated MZM with 2x2 MMI splitter with effective index matching for C-band operation.

Parameters:
  • modulation_length – length of the EO modulation section.

  • rf_gap – gap between the RF ground planes and the RF central conductor.

  • rf_central_conductor_width – width of the RF central conductor.

  • gsg_pitch – pitch of the GSGs contact pads.

  • length_imbalance – length difference between the MZ branches for spectral bias tuning. If 0, MZ is balanced.

  • bias_tuning_section_length – length of the heater bias tuning section. If 0, the heater is disabled.

import ltoi300

c = ltoi300.cells.unterminated_mzm_2x2mmi_cband(modulation_length=5000.0, rf_gap=5.5, rf_central_conductor_width=16.0, gsg_pitch=100.0, length_imbalance=100.0, bias_tuning_section_length=700.0).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-21.png

unterminated_mzm_2x2mmi_oband#

ltoi300.cells.unterminated_mzm_2x2mmi_oband(modulation_length: float = 5000.0, rf_gap: float = 5.5, rf_central_conductor_width: float = 20.0, gsg_pitch: float = 100.0, length_imbalance: float = 100.0, bias_tuning_section_length: float = 700.0) Component[source]#

Returns an unterminated MZM with 2x2 MMI splitter with effective index matching for O-band operation.

Parameters:
  • modulation_length – length of the EO modulation section.

  • rf_gap – gap between the RF ground planes and the RF central conductor.

  • rf_central_conductor_width – width of the RF central conductor.

  • gsg_pitch – pitch of the GSGs contact pads.

  • length_imbalance – length difference between the MZ branches for spectral bias tuning. If 0, MZ is balanced.

  • bias_tuning_section_length – length of the heater bias tuning section. If 0, the heater is disabled.

import ltoi300

c = ltoi300.cells.unterminated_mzm_2x2mmi_oband(modulation_length=5000.0, rf_gap=5.5, rf_central_conductor_width=20.0, gsg_pitch=100.0, length_imbalance=100.0, bias_tuning_section_length=700.0).copy()
c.draw_ports()
c.plot()

(Source code, png, hires.png, pdf)

_images/cells_ltoi300-22.png