Skip to content

Commit

Permalink
Merge pull request #977 from arnaucasau/fix-ci
Browse files Browse the repository at this point in the history
[WIP] Fix broken CI
  • Loading branch information
zlatko-minev authored Nov 9, 2023
2 parents b03f0eb + fed6b59 commit 74629bc
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 67 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip==23.0
pip install -U tox==4.4.5 setuptools==67.3.1 virtualenv==20.19.0 wheel==0.38.4
pip install -U tox==4.11.0 setuptools==67.3.1 virtualenv==20.24.3 wheel==0.38.4
sudo apt update
sudo apt install graphviz=2.42.2-6 pandoc=2.9.2.1-3ubuntu2 qtbase5-dev=5.15.3+dfsg-2ubuntu0.2 qt5-qmake=5.15.3+dfsg-2ubuntu0.2
- name: Build and publish
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
ubuntu-latest-${{ matrix.python-version }}
- name: Install Deps
run: |
python -m pip install -U tox==4.4.5 setuptools==67.3.1 virtualenv==20.19.0 wheel==0.38.4
python -m pip install -U tox==4.11.0 setuptools==67.3.1 virtualenv==20.24.3 wheel==0.38.4
sudo apt install libglu1-mesa=9.0.2-1 libglu1-mesa-dev=9.0.2-1
- name: Install and Run Tests
run: tox -e py
Expand Down Expand Up @@ -66,7 +66,7 @@ jobs:
macOS-latest-${{ matrix.python-version }}-pip-
macOS-latest-${{ matrix.python-version }}
- name: Install Deps
run: python -m pip install -U tox==4.4.5 setuptools==67.3.1 virtualenv==20.19.0 wheel==0.38.4
run: python -m pip install -U tox==4.11.0 setuptools==67.3.1 virtualenv==20.24.3 wheel==0.38.4
- name: Install and Run Tests
run: tox -e py
windows-tests:
Expand All @@ -92,7 +92,7 @@ jobs:
${{ runner.os }}-${{ matrix.python-version }}-
- name: Install deps
run: |
python -m pip install -U tox==4.4.5 cvxopt==1.3.0 setuptools==67.3.1 virtualenv==20.19.0 wheel==0.38.4
python -m pip install -U tox==4.11.0 cvxopt==1.3.0 setuptools==67.3.1 virtualenv==20.24.3 wheel==0.38.4
shell: pwsh
- name: Install and Run Tests
run: tox --sitepackages -e py
Expand All @@ -116,7 +116,7 @@ jobs:
${{ runner.os }}-${{ matrix.python-version }}-pip-
${{ runner.os }}-${{ matrix.python-version }}-
- name: Install Deps
run: python -m pip install -U tox==4.4.5
run: python -m pip install -U tox==4.11.0
- name: Run lint
run: tox -elint
docs:
Expand All @@ -141,7 +141,7 @@ jobs:
${{ runner.os }}-
- name: Install Deps
run: |
python -m pip install -U tox==4.4.5
python -m pip install -U tox==4.11.0
sudo apt update
sudo apt install -y graphviz=2.42.2-6 pandoc=2.9.2.1-3ubuntu2 qtbase5-dev=5.15.3+dfsg-2ubuntu0.2 qt5-qmake=5.15.3+dfsg-2ubuntu0.2
- name: Build Docs
Expand Down
93 changes: 45 additions & 48 deletions qiskit_metal/qlibrary/user_components/BridgeFreeJJ.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@

import qiskit_metal as metal
import numpy as np
from qiskit_metal import Dict, draw
from qiskit_metal.qlibrary.core import QComponent



class BridgeFreeJunction(QComponent):

"""
Bridge-free Josephson Junction.
Reference: F. Lecocq, et al., Nanotechnology, 22, 302-315, (2011).
Expand All @@ -25,43 +22,38 @@ class BridgeFreeJunction(QComponent):
"""

default_options = Dict(JJ_width='4. um',
JJ_height='4. um',
teta_1='30', #
teta_2='30', #
wire_length='30um', #
wire_width='0.5 um', #
resist_t1='.3um', # Thickness of the first (lower) resist layer. Option is 200 nm.
resist_t2='.2um',
orientation='0',
layer='53',
layer_2='545.',
layer_3='55.',
layer_4='1.',
pos_x='0',
pos_y='0'

)
default_options = Dict(
JJ_width='4. um',
JJ_height='4. um',
teta_1='30', #
teta_2='30', #
wire_length='30um', #
wire_width='0.5 um', #
resist_t1=
'.3um', # Thickness of the first (lower) resist layer. Option is 200 nm.
resist_t2='.2um',
orientation='0',
layer='53',
layer_2='545.',
layer_3='55.',
layer_4='1.',
pos_x='0',
pos_y='0')

component_metadat = Dict(short_name='Bf_JJ',
_qgeometry_table_poly='True',
_qgeometry_table_junction='True',
_qgeometry_table_path='True'
)



_qgeometry_table_path='True')

def make(self):
name = 'bf_JJ'
p = self.parse_options() # Parse the string options into numbers
resist_t1 = p.resist_t1
resist_t2 = p.resist_t2
teta_1 = p.teta_1 # This angle is considered as the angle between the beam in
# the area (-x,y) and the vertical line
teta_1 = p.teta_1 # This angle is considered as the angle between the beam in
# the area (-x,y) and the vertical line
teta_2 = p.teta_2


# We need different openings for wires. For the purpose, we define hight_total and hight_bottom.
# The bottom is required for the undercut layer, corresponding to the low dose.
h_tot = resist_t1 + resist_t2
Expand All @@ -82,52 +74,57 @@ def make(self):
raise ValueError

#Define the wire at the left side of the junction.
wire_l = draw.box(-(p.wire_length + p.JJ_width / 2.), - p.wire_width / 2. - shift_2_t, -p.JJ_width / 2.,
wire_l = draw.box(-(p.wire_length + p.JJ_width / 2.),
-p.wire_width / 2. - shift_2_t, -p.JJ_width / 2.,
p.wire_width / 2. - shift_2_b)

# Define the wire at the right side of the junction.
wire_r = draw.box(p.JJ_width / 2., - p.wire_width / 2. + shift_1_b, p.JJ_width / 2. + p.wire_length,
wire_r = draw.box(p.JJ_width / 2., -p.wire_width / 2. + shift_1_b,
p.JJ_width / 2. + p.wire_length,
p.wire_width / 2. + shift_1_t)

# Draw the Junction area as a box
JJ = draw.box(-p.JJ_width / 2., -p.JJ_height / 2. - shift_2_t, p.JJ_width / 2., p.JJ_height / 2. + shift_1_t)
JJ = draw.box(-p.JJ_width / 2., -p.JJ_height / 2. - shift_2_t,
p.JJ_width / 2., p.JJ_height / 2. + shift_1_t)

# Define the feature as a union of the Josephson Junction and the wires.
Junction = draw.union(JJ, wire_l, wire_r)

# Define undercut layer at the left wire
undercut_l = draw.box(-(p.wire_length + p.JJ_width / 2.), p.wire_width / 2.,
-p.JJ_width / 2., p.wire_width / 2. + shift_2_b
)
undercut_l = draw.box(-(p.wire_length + p.JJ_width / 2.),
p.wire_width / 2., -p.JJ_width / 2.,
p.wire_width / 2. + shift_2_b)

# Define undercut layer at the right wire
undercut_r = draw.box(p.JJ_width / 2., - p.wire_width / 2.,
p.JJ_width / 2. + p.wire_length, - p.wire_width / 2. - shift_1_b)
undercut_r = draw.box(p.JJ_width / 2., -p.wire_width / 2.,
p.JJ_width / 2. + p.wire_length,
-p.wire_width / 2. - shift_1_b)

# Define undercut layer below the junction (for the bottom electrode)
undercut_jj_low = draw.box(-p.JJ_width / 2., -p.JJ_height / 2. - shift_2_t,
p.JJ_width / 2, -p.JJ_height / 2. - shift_2_t - shift_1_b)
undercut_jj_low = draw.box(-p.JJ_width / 2.,
-p.JJ_height / 2. - shift_2_t,
p.JJ_width / 2,
-p.JJ_height / 2. - shift_2_t - shift_1_b)

# Define undercut layer above the junction (for the top electrode)
undercut_jj_up = draw.box(-p.JJ_width / 2., p.JJ_height / 2. + shift_1_t,
p.JJ_width / 2, p.JJ_height / 2. + shift_1_t + shift_2_b)
undercut_jj_up = draw.box(-p.JJ_width / 2.,
p.JJ_height / 2. + shift_1_t, p.JJ_width / 2,
p.JJ_height / 2. + shift_1_t + shift_2_b)

#Define undercut layer as a union of the all undercuts.
undercut = draw.union(undercut_jj_low, undercut_jj_up, undercut_l, undercut_r)
undercut = draw.union(undercut_jj_low, undercut_jj_up, undercut_l,
undercut_r)

Junction_items = [Junction, undercut]
Junction_items = draw.rotate(Junction_items, p.orientation, origin=(0, 0))
Junction_items = draw.rotate(Junction_items,
p.orientation,
origin=(0, 0))

Junction_items = draw.translate(Junction_items, p.pos_x, p.pos_y)

[Junction, undercut] = Junction_items


#Add features to the geometery
self.add_qgeometry('poly', {'undercut': undercut

}, layer=p.layer_3)
self.add_qgeometry('poly', {'undercut': undercut}, layer=p.layer_3)

self.add_qgeometry('poly', {'Junction': Junction}, layer=p.layer)


39 changes: 26 additions & 13 deletions qiskit_metal/tests/test_qlibrary_3_options.py
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ def test_qlibrary_transmon_concentric_options(self):
design, 'my_name')
options = my_transmon_concentric.default_options

self.assertEqual(len(options), 16)
self.assertEqual(len(options), 17)
self.assertEqual(options['width'], '1000um')
self.assertEqual(options['height'], '1000um')
self.assertEqual(options['rad_o'], '170um')
Expand Down Expand Up @@ -487,7 +487,7 @@ def test_qlibrary_transmon_cross_options(self):
self.assertEqual(_options['cross_length'], '200um')
self.assertEqual(_options['cross_gap'], '20um')

self.assertEqual(len(_options['_default_connection_pads']), 6)
self.assertEqual(len(_options['_default_connection_pads']), 8)
self.assertEqual(_options['_default_connection_pads']['connector_type'],
'0')
self.assertEqual(_options['_default_connection_pads']['claw_length'],
Expand All @@ -496,6 +496,10 @@ def test_qlibrary_transmon_cross_options(self):
'5um')
self.assertEqual(_options['_default_connection_pads']['claw_width'],
'10um')
self.assertEqual(
_options['_default_connection_pads']['claw_cpw_length'], '40um')
self.assertEqual(_options['_default_connection_pads']['claw_cpw_width'],
'10um')
self.assertEqual(_options['_default_connection_pads']['claw_gap'],
'6um')
self.assertEqual(
Expand Down Expand Up @@ -786,20 +790,29 @@ def test_qlibrary_jj_manhattan_options(self):
def test_qlibrary_BridgeFreeJunction_options(self):
"""Test the default options of JJ_Manhattan were not accidentially changed."""
design = designs.DesignPlanar()
my_jj_BridgeFree = BridgeFreeJunction(design,
name='test_BridgeFreeJunction',
options={})
my_jj_BridgeFree = BridgeFreeJunction(
design, name='test_BridgeFreeJunction', options={})
options = my_jj_BridgeFree.default_options

self.assertEqual(len(options), 7)
self.assertEqual(options['The width of lower JJ metal region'], '4um')
self.assertEqual(options['The height of lower JJ metal region'], '4um')
self.assertEqual(options['Evaporation angle of the first evaporation (˚)'], '30')
self.assertEqual(options['Evaporation angle of the second evaporation (˚)'], '30')
self.assertEqual(options['The length of the connecting wires'], '30um')
self.assertEqual(options['The width of the connecting wires.'], '0.5um')
self.assertEqual(options['Thickness of the first (bottom) resist layer.'], '0.3um')
self.assertEqual(options['Thickness of the second (top) resist layer.'], '0.2um')
self.assertEqual(options['The width of lower JJ metal region'],
'4um')
self.assertEqual(options['The height of lower JJ metal region'],
'4um')
self.assertEqual(
options['Evaporation angle of the first evaporation (˚)'], '30')
self.assertEqual(
options['Evaporation angle of the second evaporation (˚)'],
'30')
self.assertEqual(options['The length of the connecting wires'],
'30um')
self.assertEqual(options['The width of the connecting wires.'],
'0.5um')
self.assertEqual(
options['Thickness of the first (bottom) resist layer.'],
'0.3um')
self.assertEqual(
options['Thickness of the second (top) resist layer.'], '0.2um')


if __name__ == '__main__':
Expand Down

0 comments on commit 74629bc

Please sign in to comment.