Technolgy file archetecture revised with dictionary input method

This commit is contained in:
=
2026-06-07 17:07:20 +08:00
parent 8a17f1dde0
commit 54d20eb154
163 changed files with 5948 additions and 1297 deletions
+24 -18
View File
@@ -1,3 +1,5 @@
"""Optical splitting tree composite layouts."""
from typing import Any
import nazca as nd
import numpy as np
@@ -10,25 +12,29 @@ from ..primitives.pic import *
## Class for splitting tree
class SplittingTree():
'''
Class for generating splitting tree.
"""Binary splitter tree built from repeated Y-branch cells.
Paras:
1. ybranch [class] (Default None)
- length (Default: 28) Length of the ybranch
- width (Default: 2) Pitch between two output waveguides
- w_wg (Default: 0.45) Width of output waveguide
- cell (Default: box)
- a1 [Pin] Input waveguide
- b1 [Pin] Output waveguide1
- b2 [Pin] Output waveguide2
2. output_number [-] (Default: 16)
Number of output channels(Need to be 2^N)
3. bend_radius [um] (Default: 10)
Bend radius used to connect the different layer of Y branch
4. output_pitch [um] (Default: None)
Can define the pitch of output channel(If ==None, then pitch=self.width, which is the minimum pitch)
'''
Parameters
----------
ybranch : Any, optional
Y-branch object with a ``cell`` attribute and ``a1``, ``b1``, and
``b2`` pins. If omitted, a simple box-based Y-branch is generated.
output_number : int, optional
Number of output channels. Values are coerced to the nearest lower
power of two when needed.
bend_radius : int, optional
Bend radius used to route between splitter levels.
output_pitch : Any, optional
Output channel pitch in microns. If omitted, the Y-branch output
pitch is used.
show_pins : bool, optional
Show Nazca pin stubs in the generated layout.
Attributes
----------
cell : nazca.Cell
Generated splitting tree layout cell.
"""
def __init__(self, ybranch: Any=None, output_number: int=16, bend_radius: int=10, output_pitch: Any=None, show_pins: bool=False) -> None:
if ybranch == None: