Technolgy file archetecture revised with dictionary input method
This commit is contained in:
@@ -89,33 +89,7 @@ class STD_CROW_V:
|
||||
A_ht: int = 45,
|
||||
ISL_LEFT:'bool'=True,ISL_RIGHT:'bool'=True,
|
||||
show_pins:'bool'=False) -> None:
|
||||
"""_summary_
|
||||
|
||||
Args:
|
||||
ring (_type_): Class, nazca.Cell or Class containing nazca.Cell
|
||||
bus (_type_): Class, nazca.Cell or Class containing nazca.Cell
|
||||
w_bus (float|list, optional): width of the bus waveguide, [w0,w1] w0 is the middle width.
|
||||
w_ring (float|list, optional): width of the ring waveguide, [w0,w1] w0 is the middle width in X axis, and w1 is in Y.
|
||||
sz_ring (float|list, optional): width of the ring waveguide, [s0,s1] s0 is the center distance in X axis, and w1 is in Y,standard input rules [[sz0,sz1],[sz0,sz1],....[sz0,sz1]]
|
||||
sz_bus (float|list, optional): width of the bus waveguide, [s0,s1] s0 is the center distance in X axis, and w1 is in Y.
|
||||
gap_crows (float|list, optional): list of gaps between rings. Defaults to [0.4].
|
||||
gap_cp (float|list, optional): gap between ring and BUS. Defaults to 0.45.
|
||||
w_heater (float, optional): width of heater. Defaults to 0.
|
||||
xs_heater (str, optional): nazca xsection of heater. Defaults to 'heater'.
|
||||
connected (bool, optional): the heaters in rings are whether connected together. Defaults to True.
|
||||
w_metal (float, optional): width of metal attachment. Defaults to 8.
|
||||
xs_metal (str, optional): nazca xsection of metal attachment. Defaults to 'metal'.
|
||||
sz_via_h2m (float, optional): width of the VIA holes. Defaults to 0.3.
|
||||
sp_via_h2m (float, optional): spacing of the VIA holes. Defaults to 0.3.
|
||||
xs_via_h2m (str, optional): nazca xsection of the VIA holes. Defaults to 'via_h2m'.
|
||||
w_isl (float, optional): width of the theimal isolation trench. Defaults to 5.
|
||||
sp_isl (float, optional): spacing between the theimal isolation trench and heaters|metal. Defaults to 5.
|
||||
xs_isl (str, optional): nazca xsection of the theimal isolation trench. Defaults to 'isl'.
|
||||
ISL_LEFT (bool, optional): whether isolation on the left. Defaults to True.
|
||||
ISL_RIGHT (bool, optional): whether isolation on the right. Defaults to True.
|
||||
show_pins (bool, optional): _description_. Defaults to False.
|
||||
|
||||
"""
|
||||
""" """
|
||||
self.ht_shift = ht_shift ## temporary variable
|
||||
self.A_ht = A_ht
|
||||
@@ -258,7 +232,7 @@ class STD_CROW_V:
|
||||
try :
|
||||
instr = __cell_arg__(arg=self.ring_cell[0],arg_name="ring_cell[0]",func_name="STD_CROW_V::generate_pic_gds").put(0,0,0)
|
||||
|
||||
instr.raise_pins(['r1','r2','r3','r4'],['ra1','ra2','ra3','ra4'])
|
||||
# instr.raise_pins(['r1','r2','r3','r4'],['ra1','ra2','ra3','ra4'])
|
||||
# print(self.sz_ring,self.w_ring,self.gap_cp[0])
|
||||
BUS_d = self.bus_cell[0].put(0,-self.sz_ring[0][1]/2-self.w_ring[0][1]/2-self.w_bus/2-self.gap_cp[0])
|
||||
nd.Pin(name='a1',pin=BUS_d.pin['a1']).put()
|
||||
|
||||
@@ -222,7 +222,7 @@ class spiral:
|
||||
Atilt = np.arctan(spr_bend.vtx_center[-1,0]/spr_bend.vtx_center[-1,1])*180/pi
|
||||
Atilt = 0
|
||||
self.Atilt = Atilt
|
||||
print("Distance ",np.sqrt(abs(spr_bend.vtx_center[-1,0])**2 + abs(spr_bend.vtx_center[-1,1])**2))
|
||||
# print("Distance ",np.sqrt(abs(spr_bend.vtx_center[-1,0])**2 + abs(spr_bend.vtx_center[-1,1])**2))
|
||||
IN_L = spr_bend.cell.put('a0',0,0,-90-Atilt,flip=1)
|
||||
IN_R = spr_bend.cell.put('a0',0,0, 90-Atilt,flip=1)
|
||||
|
||||
@@ -1073,7 +1073,7 @@ class spiral_circle:
|
||||
pitch_actual = kR*2*np.pi
|
||||
gap_actual = (pitch_actual - self.width*2)/2
|
||||
|
||||
print("Actual Clothoid gap: %.3f" % (gap_actual))
|
||||
# print("Actual Clothoid gap: %.3f" % (gap_actual))
|
||||
|
||||
|
||||
""" Standard part """
|
||||
@@ -1082,10 +1082,10 @@ class spiral_circle:
|
||||
final_flat=180*self.cycles,
|
||||
begin_flat=self.Atilt,
|
||||
res=self.res)
|
||||
if (self.Euler_Sbend):
|
||||
print("Actual D/A = %.3f -- %.3f" % (D0,self.Atilt))
|
||||
print("Actual D/A Clothoid %.3f -- %.3f" % (R_act,SPR_U.Atilt))
|
||||
print("")
|
||||
# if (self.Euler_Sbend):
|
||||
# print("Actual D/A = %.3f -- %.3f" % (D0,self.Atilt))
|
||||
# print("Actual D/A Clothoid %.3f -- %.3f" % (R_act,SPR_U.Atilt))
|
||||
# print("")
|
||||
|
||||
|
||||
SPR_U_INST = SPR_U.cell.put('a1',IN_L.pin['b0'].x,IN_L.pin['b0'].y,90 + Arot,flip=1)
|
||||
|
||||
Reference in New Issue
Block a user