%load_ext autoreload
%autoreload 2
import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
os.environ["PMIX_MCA_gds"]="hash"
# Import useful packages
from qiskit_metal import designs, draw
from qiskit_metal import MetalGUI, Dict, open_docs
from SQDMetal.Comps.Xmon import Xmon
from SQDMetal.Comps.Polygons import PolyRectangle
from SQDMetal.Comps.Inductors import InductorMeander
from SQDMetal.Comps.Joints import JointExtend
from SQDMetal.Comps.Wires import WirePins
# Set up chip design as planar
design = designs.DesignPlanar({}, overwrite_enabled=True)
# Set up chip dimensions
design.chips.main.size.size_x = '250um'
design.chips.main.size.size_y = '250um'
design.chips.main.size.size_z = '250um'
design.chips.main.size.center_x = '0mm'
design.chips.main.size.center_y = '0mm'
InductorMeander(design, 'leInd', options=dict(pos_x='-50um', pos_y='0um', end_x='50um' , end_y='0um',
track_width='2um', meander_spacing='4um', meander_width='30um', num_long_sections=10,
init_gap='5um', mean_gap='5um'))
JointExtend(design, 'jntA', options=dict(jointObj='leInd', jointPin='a', dist_extend='20um', extend_off_pin_dir=True))
JointExtend(design, 'jntB', options=dict(jointObj='leInd', jointPin='b', dist_extend='20um', extend_off_pin_dir=True))
JointExtend(design, 'jntAa', options=dict(jointObj='jntA', jointPin='a', dist_extend='100um', orientation=90))
JointExtend(design, 'jntBa', options=dict(jointObj='jntB', jointPin='a', dist_extend='100um', orientation=90))
WirePins(design, 'wireFeed', options=Dict(pathObjPins=[('leInd', 'a'), 'jntA', 'jntAa', 'jntBa', 'jntB', ('leInd', 'b')], layer=7))
# gui = MetalGUI(design)
# gui.rebuild()
design.rebuild()