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 lnoi400
CPW_pad_linear
RF access line for high-frequency GSG probes. The probe pad maintains a fixed gap/central conductor ratio across its length, to achieve a good
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
start_width
|
float
|
80.0. |
80.0
|
length_straight
|
float
|
10.0. |
10.0
|
length_tapered
|
float
|
190.0. |
190.0
|
cross_section
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
"xs_uni_cpw". |
'xs_uni_cpw'
|
impedance matching.
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/CPW_pad_linear.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.CPW_pad_linear(start_width=80, length_straight=10, length_tapered=190, cross_section='xs_uni_cpw').copy() c.draw_ports() c.plot() ```
L_turn_bend
A 90-degrees bend following an Euler path, with linearly-varying curvature (increasing and decreasing).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
radius
|
float
|
80.0. |
80.0
|
p
|
float
|
1.0. |
1.0
|
with_arc_floorplan
|
bool
|
True. |
True
|
cross_section
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
"xs_rwg1000". |
'xs_rwg1000'
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/L_turn_bend.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.L_turn_bend(radius=80, p=1, with_arc_floorplan=True, cross_section='xs_rwg1000').copy() c.draw_ports() c.plot() ```
S_bend_vert
A spline bend that bridges a vertical displacement.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
v_offset
|
float
|
25.0. |
25.0
|
h_extent
|
float
|
100.0. |
100.0
|
dx_straight
|
float
|
5.0. |
5.0
|
cross_section
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
"xs_rwg1000". |
'xs_rwg1000'
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/S_bend_vert.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.S_bend_vert(v_offset=25, h_extent=100, dx_straight=5, cross_section='xs_rwg1000').copy() c.draw_ports() c.plot() ```
U_bend_racetrack
A U-bend with fixed cross-section and dimensions, suitable for building a low-loss racetrack resonator.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
v_offset
|
float
|
90.0. |
90.0
|
p
|
float
|
1.0. |
1.0
|
with_arc_floorplan
|
bool
|
True. |
True
|
cross_section
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
"xs_rwg3000". |
'xs_rwg3000'
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/U_bend_racetrack.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.U_bend_racetrack(v_offset=90, p=1, with_arc_floorplan=True, cross_section='xs_rwg3000').copy() c.draw_ports() c.plot() ```
bend_S_spline
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/bend_S_spline.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.bend_S_spline(size=(100, 30), cross_section='xs_rwg1000', npoints=201).copy() c.draw_ports() c.plot() ```
bend_S_spline_varying_width
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/bend_S_spline_varying_width.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.bend_S_spline_varying_width(size=(58, 14.5), npoints=201).copy() c.draw_ports() c.plot() ```
bend_euler
Regular degree euler bend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
radius
|
float | None
|
in um. Defaults to cross_section_radius. |
80
|
angle
|
float
|
total angle of the curve. |
90
|
p
|
float
|
Proportion of the curve that is an Euler curve. |
0.5
|
width
|
float | None
|
width to use. Defaults to cross_section.width. |
None
|
cross_section
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
specification (CrossSection, string, CrossSectionFactory dict). |
'xs_rwg1000'
|
allow_min_radius_violation
|
bool
|
if True allows radius to be smaller than cross_section radius. |
False
|
with_arc_floorplan
|
bool
|
if True the size of the bend will be adjusted to match an arc bend with the specified radius. If False: |
True
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/bend_euler.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.bend_euler(radius=80, angle=90, p=0.5, cross_section='xs_rwg1000', allow_min_radius_violation=False, with_arc_floorplan=True).copy() c.draw_ports() c.plot() ```
chip_frame
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/chip_frame.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.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() ```
die_phix_rf
Die with east west edge couplers and RF pads on north and south.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xsize
|
float
|
die x size in um. |
10000.0
|
ysize
|
float
|
die y size in um. |
5000.0
|
nfibers
|
int
|
number of fibers. |
16
|
npads
|
int | None
|
number of DC pads. Computed from xsize and pad_pitch if None. |
None
|
npads_rf
|
int
|
number of RF pads. |
6
|
fiber_pitch
|
float
|
of the edge couplers in um. |
127.0
|
pad_pitch
|
float
|
pitch between pads. |
150.0
|
pad_pitch_gsg
|
float
|
pitch between gsg pads. |
720.0
|
edge_coupler
|
str | Callable[..., Component] | dict[str, Any] | DKCell | partial[Component] | None
|
edge coupler component. |
'double_linear_inverse_taper_mirror'
|
grating_coupler
|
str | Callable[..., Component] | dict[str, Any] | DKCell | partial[Component] | None
|
grating coupler component. |
None
|
cross_section
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
waveguide cross_section. |
'xs_rwg1000'
|
pad
|
str | Callable[..., Component] | dict[str, Any] | DKCell | partial[Component]
|
pad component. |
'pad'
|
pad_gsg
|
str | Callable[..., Component] | dict[str, Any] | DKCell | partial[Component]
|
gsg pad component. |
'pad_gsg'
|
edge_to_pad_distance
|
float
|
distance from edge to first pad. |
200.0
|
edge_coupler_keepout
|
float
|
keepout zone (in um) on each side of the die for the edge coupler / fiducials / routing margins. Used to compute npads. |
1200.0
|
pad_port_name_top
|
str
|
name of the pad port name at the top facing south. |
'e4'
|
pad_port_name_bot
|
str
|
name of the pad port name at the bottom facing north. |
'e2'
|
layer_fiducial
|
tuple[int, int] | str | int | LayerEnum
|
layer for fiducials. |
'LN_RIDGE'
|
layer_ruler
|
tuple[int, int] | str | int | LayerEnum
|
layer for ruler. |
'LN_RIDGE'
|
ruler_yoffset
|
float
|
y offset for ruler. |
0
|
ruler_xoffset
|
float
|
x offset for ruler. |
0
|
fiber_coupler_xoffset
|
float
|
x offset for fiber couplers. |
0
|
with_right_fiber_coupler
|
bool
|
if True adds right fiber coupler. |
True
|
with_left_fiber_coupler
|
bool
|
if True adds left fiber coupler. |
False
|
text_offset
|
tuple[float, float]
|
offset for the text label. |
(-40, 20)
|
text
|
str | Callable[..., Component] | dict[str, Any] | DKCell | partial[Component] | None
|
text component. |
'text_rectangular'
|
xoffset_dc_pads
|
float
|
x offset for dc pads. |
-100
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/die_phix_rf.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.die_phix_rf(xsize=10000, ysize=5000, nfibers=16, npads_rf=6, fiber_pitch=127, pad_pitch=150, pad_pitch_gsg=720, edge_coupler='double_linear_inverse_taper_mirror', cross_section='xs_rwg1000', pad='pad', pad_gsg='pad_gsg', edge_to_pad_distance=200, edge_coupler_keepout=1200, pad_port_name_top='e4', pad_port_name_bot='e2', layer_fiducial='LN_RIDGE', layer_ruler='LN_RIDGE', ruler_yoffset=0, ruler_xoffset=0, fiber_coupler_xoffset=0, with_right_fiber_coupler=True, with_left_fiber_coupler=False, text_offset=(-40, 20), text='text_rectangular', xoffset_dc_pads=-100).copy() c.draw_ports() c.plot() ```
directional_coupler_balanced
Returns a 50-50 directional coupler. Default parameters give a 50/50 splitting at 1550 nm.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
io_wg_sep
|
float
|
Separation of the two straights at the input/output, top-to-top. |
30.6
|
sbend_length
|
float
|
length of the s-bend part. |
58
|
central_straight_length
|
float
|
length of the coupling region. |
16.92
|
coupl_wg_sep
|
float
|
Distance between two waveguides in the coupling region (side to side). |
0.8
|
cross_section_io
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
cross section spec at the i/o (must be defined in tech.py). |
'xs_rwg1000'
|
coup_wg_width
|
float
|
waveguide width at the coupling section. |
0.8
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/directional_coupler_balanced.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.directional_coupler_balanced(io_wg_sep=30.6, sbend_length=58, central_straight_length=16.92, coupl_wg_sep=0.8, coup_wg_width=0.8, cross_section_io='xs_rwg1000').copy() c.draw_ports() c.plot() ```
double_linear_inverse_taper
Inverse taper with two layers, starting from a wire waveguide at the facet
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cross_section_start
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
"xs_swg250". |
'xs_swg250'
|
cross_section_end
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
"xs_rwg1000". |
'xs_rwg1000'
|
lower_taper_length
|
float
|
120.0. |
120.0
|
lower_taper_end_width
|
float
|
2.05. |
2.05
|
upper_taper_start_width
|
float
|
0.25. |
0.25
|
upper_taper_length
|
float
|
240.0. |
240.0
|
slab_removal_width
|
float
|
20.0. |
20.0
|
input_ext
|
float
|
0.0. |
0.0
|
and transitioning to a rib waveguide. The tapering profile is linear in both layers.
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/double_linear_inverse_taper.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.double_linear_inverse_taper(cross_section_start='xs_swg250', cross_section_end='xs_rwg1000', lower_taper_length=120, lower_taper_end_width=2.05, upper_taper_start_width=0.25, upper_taper_length=240, slab_removal_width=20, input_ext=0).copy() c.draw_ports() c.plot() ```
double_linear_inverse_taper_mirror
Same as double_linear_inverse_taper, but mirrored so the narrow end is on the right.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cross_section_start
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
starting cross section. |
'xs_swg250'
|
cross_section_end
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
ending cross section. |
'xs_rwg1000'
|
lower_taper_length
|
float
|
length of the lower taper in um. |
120.0
|
lower_taper_end_width
|
float
|
end width of the lower taper in um. |
2.05
|
upper_taper_start_width
|
float
|
start width of the upper taper in um. |
0.25
|
upper_taper_length
|
float
|
length of the upper taper in um. |
240.0
|
slab_removal_width
|
float
|
width of the slab removal in um. |
20.0
|
input_ext
|
float
|
input extension in um. |
30.0
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/double_linear_inverse_taper_mirror.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.double_linear_inverse_taper_mirror(cross_section_start='xs_swg250', cross_section_end='xs_rwg1000', lower_taper_length=120, lower_taper_end_width=2.05, upper_taper_start_width=0.25, upper_taper_length=240, slab_removal_width=20, input_ext=30).copy() c.draw_ports() c.plot() ```
eo_phase_shifter
Phase shifter based on the Pockels effect. The waveguide is located
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
rib_core_width_modulator
|
float
|
2.5. |
2.5
|
taper_length
|
float
|
100.0. |
100.0
|
modulation_length
|
float
|
7500.0. |
7500.0
|
rf_central_conductor_width
|
float
|
10.0. |
10.0
|
rf_ground_planes_width
|
float
|
180.0. |
180.0
|
rf_gap
|
float
|
4.0. |
4.0
|
cpw_cell
|
str | Callable[..., Component] | dict[str, Any] | DKCell | partial[Component]
|
uni_cpw_straight. |
uni_cpw_straight
|
draw_cpw
|
bool
|
True. |
True
|
within the gap of a CPW transmission line.
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/eo_phase_shifter.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.eo_phase_shifter(rib_core_width_modulator=2.5, taper_length=100, modulation_length=7500, rf_central_conductor_width=10, rf_ground_planes_width=180, rf_gap=4, draw_cpw=True).copy() c.draw_ports() c.plot() ```
eo_phase_shifter_high_speed
High-speed phase shifter based on the Pockels effect. The waveguide is located within the gap of a CPW transmission line. Note: The base variant (eo_phase_shifter) uses a default central conductor width of 10.0, while this high-speed variant explicitly passes 21.0 for rf_central_conductor_width to achieve the desired high-speed properties. Pass the parameter set of eo_phase_shifter to modify.
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/eo_phase_shifter_high_speed.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.eo_phase_shifter_high_speed().copy() c.draw_ports() c.plot() ```
gc_focusing_1550
Returns a focusing grating coupler for 1550 nm (C-band). The grating is optimized for TE polarization and a launch angle in air of 14.5 degrees w/r to the surface normal.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sleeve_width
|
float
|
4.5. |
4.5
|
cross_section
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
"xs_rwg1000". |
'xs_rwg1000'
|
waveguide_length
|
float
|
10.0. |
10.0
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/gc_focusing_1550.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.gc_focusing_1550(sleeve_width=4.5, cross_section='xs_rwg1000', waveguide_length=10).copy() c.draw_ports() c.plot() ```
heater_resistor
A resistive wire used as a low-frequency phase shifter, exploiting
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
Path | None
|
None. |
None
|
width
|
float
|
0.9. |
0.9
|
offset
|
float
|
0.0. |
0.0
|
the thermo-optical effect.
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/heater_resistor.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.heater_resistor(width=0.9, offset=0).copy() c.draw_ports() c.plot() ```
heater_straight_single
A straight resistive wire used as a low-frequency phase shifter, exploiting the thermo-optical effect. The heater is terminated by wide pads
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length
|
float
|
150.0. |
150.0
|
width
|
float
|
0.9. |
0.9
|
offset
|
float
|
0.0. |
0.0
|
port_contact_width_ratio
|
float
|
3.0. |
3.0
|
pad_size
|
tuple[float, float]
|
(100.0, 100.0). |
(100.0, 100.0)
|
pad_pitch
|
float | None
|
None. |
None
|
pad_vert_offset
|
float
|
10.0. |
10.0
|
for probing or bonding.
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/heater_straight_single.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.heater_straight_single(length=150, width=0.9, offset=0, port_contact_width_ratio=3, pad_size=(100, 100), pad_vert_offset=10).copy() c.draw_ports() c.plot() ```
mmi1x2_optimized1550
MMI1x2 with layout optimized for maximum transmission at 1550 nm.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
width_mmi
|
float
|
6.0. |
6.0
|
length_mmi
|
float
|
26.75. |
26.75
|
width_taper
|
float
|
1.5. |
1.5
|
length_taper
|
float
|
25.0. |
25.0
|
port_ratio
|
float
|
0.55. |
0.55
|
cross_section
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
"xs_rwg1000". |
'xs_rwg1000'
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/mmi1x2_optimized1550.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.mmi1x2_optimized1550(width_mmi=6, length_mmi=26.75, width_taper=1.5, length_taper=25, port_ratio=0.55, cross_section='xs_rwg1000').copy() c.draw_ports() c.plot() ```
mmi2x2_optimized1550
MMI2x2 with layout optimized for maximum transmission at 1550 nm.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
width_mmi
|
float
|
5.0. |
5.0
|
length_mmi
|
float
|
76.5. |
76.5
|
width_taper
|
float
|
1.5. |
1.5
|
length_taper
|
float
|
25.0. |
25.0
|
port_ratio
|
float
|
0.7. |
0.7
|
cross_section
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
"xs_rwg1000". |
'xs_rwg1000'
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/mmi2x2_optimized1550.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.mmi2x2_optimized1550(width_mmi=5, length_mmi=76.5, width_taper=1.5, length_taper=25, port_ratio=0.7, cross_section='xs_rwg1000').copy() c.draw_ports() c.plot() ```
mmi2x2optimized1550
MMI2x2 with layout optimized for maximum transmission at 1550 nm.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
width_mmi
|
float
|
5.0. |
5.0
|
length_mmi
|
float
|
76.5. |
76.5
|
width_taper
|
float
|
1.5. |
1.5
|
length_taper
|
float
|
25.0. |
25.0
|
port_ratio
|
float
|
0.7. |
0.7
|
cross_section
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
"xs_rwg1000". |
'xs_rwg1000'
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/mmi2x2optimized1550.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.mmi2x2optimized1550(width_mmi=5, length_mmi=76.5, width_taper=1.5, length_taper=25, port_ratio=0.7, cross_section='xs_rwg1000').copy() c.draw_ports() c.plot() ```
mzm_unbalanced
Mach-Zehnder modulator based on the Pockels effect with an applied RF electric field.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
modulation_length
|
float
|
7500.0. |
7500.0
|
length_imbalance
|
float
|
100.0. |
100.0
|
lbend_tune_arm_reff
|
float
|
75.0. |
75.0
|
rf_pad_start_width
|
float
|
80.0. |
80.0
|
rf_central_conductor_width
|
float
|
10.0. |
10.0
|
rf_ground_planes_width
|
float
|
180.0. |
180.0
|
rf_gap
|
float
|
4.0. |
4.0
|
rf_pad_length_straight
|
float
|
10.0. |
10.0
|
rf_pad_length_tapered
|
float
|
300.0. |
300.0
|
bias_tuning_section_length
|
float
|
700.0. |
700.0
|
cpw_cell
|
str | Callable[..., Component] | dict[str, Any] | DKCell | partial[Component]
|
uni_cpw_straight. |
uni_cpw_straight
|
with_heater
|
bool
|
False. |
False
|
heater_offset
|
float
|
1.2. |
1.2
|
heater_width
|
float
|
1.0. |
1.0
|
heater_pad_size
|
tuple[float, float]
|
(75.0, 75.0). |
(75.0, 75.0)
|
The modulator works in a differential push-pull configuration driven by a single GSG line.
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/mzm_unbalanced.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.mzm_unbalanced(modulation_length=7500, length_imbalance=100, lbend_tune_arm_reff=75, rf_pad_start_width=80, rf_central_conductor_width=10, rf_ground_planes_width=180, rf_gap=4, rf_pad_length_straight=10, rf_pad_length_tapered=300, bias_tuning_section_length=700, with_heater=False, heater_offset=1.2, heater_width=1, heater_pad_size=(75, 75)).copy() c.draw_ports() c.plot() ```
mzm_unbalanced_high_speed
High-speed Mach-Zehnder modulator based on the Pockels effect with an applied RF electric field. The modulator works in a differential push-pull configuration driven by a single GSG line. Note: The base variant (mzm_unbalanced) uses a default central conductor width of 10.0, while this high-speed variant explicitly passes 21.0 for rf_central_conductor_width to achieve the desired high-speed properties. Pass the parameter set of mzm_unbalanced to modify.
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/mzm_unbalanced_high_speed.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.mzm_unbalanced_high_speed().copy() c.draw_ports() c.plot() ```
pad
Returns rectangular pad with ports.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
size
|
tuple[float, float]
|
x, y size. |
(90, 90)
|
port_orientation
|
float | None
|
in degrees for the center port. |
0
|
port_orientations
|
tuple[int, ...] | list[int] | None
|
list of port_orientations to add. None does not add ports. |
(180, 90, 0, -90)
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/pad.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.pad(size=(90, 90), port_orientation=0, port_orientations=(180, 90, 0, -90)).copy() c.draw_ports() c.plot() ```
pad_gsg
Returns rectangular RF pad with ports.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length
|
float
|
length of the pad. |
100
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/pad_gsg.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.pad_gsg(length=100).copy() c.draw_ports() c.plot() ```
straight
_straight.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length
|
float
|
10.0. |
10.0
|
cross_section
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
"xs_rwg1000". |
'xs_rwg1000'
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/straight.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.straight(length=10, cross_section='xs_rwg1000').copy() c.draw_ports() c.plot() ```
straight_rwg1000
Straight single-mode waveguide.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length
|
float
|
10.0. |
10.0
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/straight_rwg1000.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.straight_rwg1000(length=10).copy() c.draw_ports() c.plot() ```
straight_rwg3000
Straight multimode waveguide.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length
|
float
|
10.0. |
10.0
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/straight_rwg3000.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.straight_rwg3000(length=10).copy() c.draw_ports() c.plot() ```
text_rectangular
Pixel based font, guaranteed to be manhattan, without acute angles.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
text
|
str
|
string. |
'abc'
|
size
|
float
|
pixel size. |
3
|
justify
|
str
|
left, right or center. |
'left'
|
layer
|
tuple[int, int] | str | int | LayerEnum | None
|
for text. |
'LN_RIDGE'
|
layers
|
Sequence[tuple[int, int] | str | int | LayerEnum] | None
|
optional for duplicating the text. |
None
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/text_rectangular.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.text_rectangular(text='abc', size=3, justify='left', layer='LN_RIDGE').copy() c.draw_ports() c.plot() ```
trail_cpw
A CPW transmission line with periodic T-rails on all electrodes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length
|
float
|
1000.0. |
1000.0
|
signal_width
|
float
|
21. |
21
|
gap_width
|
float
|
4. |
4
|
th
|
float
|
1.5. |
1.5
|
tl
|
float
|
44.7. |
44.7
|
tw
|
float
|
7.0. |
7.0
|
tt
|
float
|
1.5. |
1.5
|
tc
|
float
|
5.0. |
5.0
|
ground_planes_width
|
float
|
180.0. |
180.0
|
rounding_radius
|
float
|
0.5. |
0.5
|
bondpad
|
str | Callable[..., Component] | dict[str, Any] | DKCell | partial[Component]
|
"CPW_pad_linear". |
'CPW_pad_linear'
|
cross_section
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
xs_uni_cpw. |
xs_uni_cpw
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/trail_cpw.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.trail_cpw(length=1000, signal_width=21, gap_width=4, th=1.5, tl=44.7, tw=7, tt=1.5, tc=5, ground_planes_width=180, rounding_radius=0.5, bondpad='CPW_pad_linear').copy() c.draw_ports() c.plot() ```
uni_cpw_straight
A CPW transmission line for microwaves, with a uniform cross section.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length
|
float
|
1000.0. |
1000.0
|
cross_section
|
CrossSection | str | dict[str, Any] | Callable[..., CrossSection] | SymmetricalCrossSection | DCrossSection
|
"xs_uni_cpw". |
'xs_uni_cpw'
|
signal_width
|
float
|
10.0. |
10.0
|
gap_width
|
float
|
4.0. |
4.0
|
ground_planes_width
|
float
|
250.0. |
250.0
|
bondpad
|
str | Callable[..., Component] | dict[str, Any] | DKCell | partial[Component]
|
"CPW_pad_linear". |
'CPW_pad_linear'
|
=== "Static"

=== "Dynamic"
<iframe src="kwasm/viewer.html?url=gds/uni_cpw_straight.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>
```python import lnoi400
c = lnoi400.cells.uni_cpw_straight(length=1000, cross_section='xs_uni_cpw', signal_width=10, gap_width=4, ground_planes_width=250, bondpad='CPW_pad_linear').copy() c.draw_ports() c.plot() ```