Technolgy file archetecture revised with dictionary input method
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user