Folder structure simplfied
This commit is contained in:
@@ -3,8 +3,8 @@ import nazca as nd
|
||||
import numpy as np
|
||||
import math
|
||||
|
||||
from ...structures import *
|
||||
from ...structures import _my_polygon
|
||||
from ...geometry import *
|
||||
from ...geometry import _my_polygon
|
||||
from ...basic import __cell_arg__
|
||||
from ...routing import Route
|
||||
|
||||
@@ -13,26 +13,37 @@ import pandas as pd
|
||||
''' Class for nanoantenna '''
|
||||
class Nano_ant():
|
||||
|
||||
"""Class of nanoantenna for optical phased array.
|
||||
|
||||
This is the class of nanoantenna for optical phased array. GDS cell can be generated using this class. Simulation structure generation and simulation results analysis is going to be added in the future.
|
||||
|
||||
Args:
|
||||
- tapeout [class] (Default: CUMEC_CSiP130Cu)
|
||||
- w_wg [um] (Default: 0.5um)
|
||||
Width of input waveguide
|
||||
- vector [um] (Default: [0.5,..,0.5]])
|
||||
Vectors to define the length of each teeth
|
||||
- taper_length [um] (Default: 1um)
|
||||
Length of the linear taper region
|
||||
- width [um] (Default: 3um)
|
||||
Width of the nanoantenna
|
||||
- max_theta [degree](Default: 110)
|
||||
Open degree of linear taper
|
||||
- define_type [str] (Default: non-periodic)
|
||||
Way to define the antenna, including: "non-periodic", "periodic"
|
||||
- etch_depth [str] (Default: "DETCH")
|
||||
Define the etch depth, including: "FETCH", "METCH", "SETCH"
|
||||
"""
|
||||
Class of nanoantenna for optical phased array.
|
||||
|
||||
This is the class of nanoantenna for optical phased array. GDS cell can be generated using this class. Simulation structure generation and simulation results analysis is going to be added in the future.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.41.
|
||||
xs_wg : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
define_type : str, optional
|
||||
Value for the define_type parameter. Default is 'non-periodic'.
|
||||
vector : list, optional
|
||||
Value for the vector parameter. Default is [0.5, 0.5, 0.5, 0.5, 0.5, 0.5].
|
||||
taper_length : float, optional
|
||||
Value for the taper_length parameter. Default is 3.
|
||||
width : float, optional
|
||||
Width parameter in microns. Default is 6.
|
||||
max_theta : float, optional
|
||||
Value for the max_theta parameter. Default is 110.
|
||||
pitch : float, optional
|
||||
Spacing or gap parameter in microns. Default is 0.6.
|
||||
duty_cycle : float, optional
|
||||
Value for the duty_cycle parameter. Default is 0.3.
|
||||
teeth_number : float, optional
|
||||
Value for the teeth_number parameter. Default is 6.
|
||||
etch_depth : list, optional
|
||||
Value for the etch_depth parameter. Default is ['METCH'].
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is True.
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
@@ -193,6 +204,24 @@ class Nano_ant():
|
||||
''' Class for 2D antenna array for FMF grating '''
|
||||
class Taper() :
|
||||
|
||||
"""
|
||||
Taper primitive component.
|
||||
|
||||
This component builds the Taper layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
width1 : float, optional
|
||||
Width parameter in microns. Default is 4.
|
||||
width2 : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
length : float, optional
|
||||
Length parameter in microns. Default is 30.
|
||||
type : str, optional
|
||||
Value for the type parameter. Default is 'linear'.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self, width1: float=4, width2: float=0.45, length: float=30, type: str="linear", show_pins: bool=False) -> None:
|
||||
self.width1 = width1
|
||||
self.width2 = width2
|
||||
@@ -252,9 +281,36 @@ class Taper() :
|
||||
|
||||
|
||||
class Grating_2D_Hole() :
|
||||
'''
|
||||
This is a class for 2D Grating in IMEC.
|
||||
'''
|
||||
"""
|
||||
This is a class for 2D Grating in IMEC.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.5.
|
||||
w_gt : float, optional
|
||||
Width parameter in microns. Default is 5.
|
||||
l_taper : float, optional
|
||||
Value for the l_taper parameter. Default is 30.
|
||||
type_taper : str, optional
|
||||
Value for the type_taper parameter. Default is 'parabolic'.
|
||||
gt_vector : list, optional
|
||||
Value for the gt_vector parameter. Default is [0.5, 0.5, 0.5, 0.5, 0.5].
|
||||
gt_diameter : float, optional
|
||||
Value for the gt_diameter parameter. Default is 0.4.
|
||||
gt_layer : str, optional
|
||||
Value for the gt_layer parameter. Default is 'STRIP_COR'.
|
||||
polysi_vector : list, optional
|
||||
Value for the polysi_vector parameter. Default is [0.5, 0.5, 0.5, 0.5, 0.5].
|
||||
polysi_diameter : float, optional
|
||||
Value for the polysi_diameter parameter. Default is 0.4.
|
||||
polysi_layer : str, optional
|
||||
Value for the polysi_layer parameter. Default is 'FCW_TRE'.
|
||||
reflector_vector : list, optional
|
||||
Value for the reflector_vector parameter. Default is [0.3, 0.3, 0.3, 0.3, 0.3, 0.3].
|
||||
l_field_center : float, optional
|
||||
Value for the l_field_center parameter. Default is 1.
|
||||
"""
|
||||
def __init__(
|
||||
self,
|
||||
w_wg: float=0.5,
|
||||
@@ -344,6 +400,22 @@ class Grating_2D_Hole() :
|
||||
|
||||
class Grating_2D_Hole_4Rec() :
|
||||
|
||||
"""
|
||||
Grating 2D Hole 4Rec primitive component.
|
||||
|
||||
This component builds the Grating 2D Hole 4Rec layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
grating_unit : Any
|
||||
Grating unit cell or component used by this wrapper.
|
||||
mode_radius : int, optional
|
||||
Value for the mode_radius parameter. Default is 8.
|
||||
cell_name : Optional[str], optional
|
||||
Optional generated cell name. Default is None.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self, grating_unit: Any, mode_radius: int=8, cell_name: Optional[str]=None, show_pins: bool=False) -> None:
|
||||
self.gt_2D_class = grating_unit
|
||||
self.cell_unit = grating_unit.cell
|
||||
@@ -416,6 +488,22 @@ class Grating_2D_Hole_4Rec() :
|
||||
|
||||
class Grating_2D_Hole_3Rec() :
|
||||
|
||||
"""
|
||||
Grating 2D Hole 3Rec primitive component.
|
||||
|
||||
This component builds the Grating 2D Hole 3Rec layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
grating_unit : Any
|
||||
Grating unit cell or component used by this wrapper.
|
||||
mode_radius : float, optional
|
||||
Value for the mode_radius parameter. Default is 6.5.
|
||||
cell_name : Optional[str], optional
|
||||
Optional generated cell name. Default is None.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self, grating_unit: Any, mode_radius: float=6.5, cell_name: Optional[str]=None, show_pins: bool=False) -> None:
|
||||
self.gt_2D_class = grating_unit
|
||||
self.cell_unit = grating_unit.cell
|
||||
@@ -484,6 +572,62 @@ class Grating_2D_Hole_3Rec() :
|
||||
|
||||
""" Renamed for simplification in 2023.04.02 """
|
||||
class GC_STD_2D:
|
||||
"""
|
||||
GC STD 2D primitive component.
|
||||
|
||||
This component builds the GC STD 2D layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : Optional[str], optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
etch_type : str, optional
|
||||
Value for the etch_type parameter. Default is 'FETCH'.
|
||||
xs_wg : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'grating'.
|
||||
Dx_hole : float, optional
|
||||
Value for the Dx_hole parameter. Default is 0.3.
|
||||
Dy_hole : float, optional
|
||||
Value for the Dy_hole parameter. Default is 0.3.
|
||||
hole_shape : str, optional
|
||||
Value for the hole_shape parameter. Default is 'circle'.
|
||||
shape : str, optional
|
||||
Value for the shape parameter. Default is 'circle'.
|
||||
xs_open : str, optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
Px : float, optional
|
||||
Value for the Px parameter. Default is 0.57.
|
||||
Py : float, optional
|
||||
Value for the Py parameter. Default is 0.57.
|
||||
num_x : float, optional
|
||||
Count or repetition parameter. Default is 25.
|
||||
num_y : float, optional
|
||||
Count or repetition parameter. Default is 25.
|
||||
Lx_taper : float, optional
|
||||
Length parameter in microns. Default is 50.
|
||||
Ly_taper : float, optional
|
||||
Length parameter in microns. Default is 0.
|
||||
Lx_end : float, optional
|
||||
Length parameter in microns. Default is 1.
|
||||
Ly_end : float, optional
|
||||
Length parameter in microns. Default is 1.
|
||||
Lx_side : float, optional
|
||||
Length parameter in microns. Default is 0.5.
|
||||
Ly_side : float, optional
|
||||
Length parameter in microns. Default is 0.5.
|
||||
Lx_port : float, optional
|
||||
Length parameter in microns. Default is 5.
|
||||
Ly_port : float, optional
|
||||
Length parameter in microns. Default is 5.
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.5.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
P_AR : float, optional
|
||||
Value for the P_AR parameter. Default is 0.6.
|
||||
L_AR : float, optional
|
||||
Length parameter in microns. Default is 1.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str]=None,
|
||||
etch_type :str = 'FETCH',
|
||||
@@ -773,6 +917,46 @@ class GC_STD_2D:
|
||||
return C
|
||||
|
||||
class GC_STD_1D:
|
||||
"""
|
||||
GC STD 1D primitive component.
|
||||
|
||||
This component builds the GC STD 1D layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : Optional[str], optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
xs_wg : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.5.
|
||||
etch_type : str, optional
|
||||
Value for the etch_type parameter. Default is 'FETCH'.
|
||||
xs_open : str, optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
L_taper : float, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
L_end : float, optional
|
||||
Length parameter in microns. Default is 2.
|
||||
A_taper : float, optional
|
||||
Angle parameter in degrees. Default is 30.
|
||||
Period : float, optional
|
||||
Value for the Period parameter. Default is 0.5.
|
||||
eta_etch : float, optional
|
||||
Value for the eta_etch parameter. Default is 0.5.
|
||||
num : float, optional
|
||||
Count or repetition parameter. Default is 20.
|
||||
sector_gc : bool, optional
|
||||
Value for the sector_gc parameter. Default is True.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
L_tail : int, optional
|
||||
Length parameter in microns. Default is 2.
|
||||
P_AR : float, optional
|
||||
Value for the P_AR parameter. Default is 1.
|
||||
L_AR : float, optional
|
||||
Length parameter in microns. Default is 2.
|
||||
"""
|
||||
def __init__ (self,
|
||||
name: Optional[str]=None,
|
||||
xs_wg : str = 'strip',
|
||||
@@ -1074,6 +1258,22 @@ class GC_STD_1D:
|
||||
return C
|
||||
|
||||
class FA:
|
||||
"""
|
||||
FA primitive component.
|
||||
|
||||
This component builds the FA layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
fiber_coupler : Any
|
||||
Fiber coupler cell or component used by this array.
|
||||
pitch : float
|
||||
Spacing or gap parameter in microns.
|
||||
number : int
|
||||
Count or repetition parameter.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self,fiber_coupler: Any,pitch: float,number: int,show_pins: bool=False) -> None:
|
||||
|
||||
# if (isinstance(fiber_coupler,nd.Cell)):
|
||||
|
||||
Reference in New Issue
Block a user