Skip to content

Commit 1754be0

Browse files
authored
Merge pull request #218 from angelPappas/JJ_model
Adding Josephson Junction model based on the RCSJ model.
2 parents 6fed9f4 + 7c3e2e5 commit 1754be0

File tree

3 files changed

+67
-0
lines changed

3 files changed

+67
-0
lines changed

docs/bibliography.bib

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,20 @@ @book{m.pozarMicrowaveEngineering2012
138138
publisher = {John Wiley \& Sons, Inc.},
139139
isbn = {978-0-470-63155-3}
140140
}
141+
@article{McCumber1968,
142+
title = {Effect of ac Impedance on dc Voltage-Current Characteristics of Superconductor Weak-Link Junctions},
143+
volume = {39},
144+
issn = {1089-7550},
145+
url = {http://dx.doi.org/10.1063/1.1656743},
146+
doi = {10.1063/1.1656743},
147+
number = {7},
148+
journal = {Journal of Applied Physics},
149+
publisher = {AIP Publishing},
150+
author = {McCumber, D. E.},
151+
year = {1968},
152+
month = jun,
153+
pages = {3113–3118}
154+
}
141155
@article{norrisImprovedParameterTargeting2024,
142156
title = {Improved Parameter Targeting in {{3D-integrated}} Superconducting Circuits through a Polymer Spacer Process},
143157
author = {Norris, Graham J. and Michaud, Laurent and Pahl, David and Kerschbaum, Michael and Eichler, Christopher and Besse, Jean-Claude and Wallraff, Andreas},

qpdk/models/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
capacitor,
88
gamma_0_load,
99
inductor,
10+
josephson_junction,
1011
open,
1112
short,
1213
short_2_port,
@@ -39,6 +40,7 @@
3940
coupler_straight,
4041
gamma_0_load,
4142
inductor,
43+
josephson_junction,
4244
open,
4345
rectangle,
4446
quarter_wave_resonator_coupled,

qpdk/models/generic.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,57 @@ def inductor(
194194
return single_impedance_element(z=Zᵢ, z0=z0)
195195

196196

197+
@partial(jax.jit, inline=True)
198+
def josephson_junction(
199+
f: ArrayLike = jnp.array([5e9]),
200+
ic: float = 1e-6,
201+
capacitance: float = 50e-15,
202+
resistance: float = 10e3,
203+
ib: float = 0.0,
204+
z0: int | float | complex = 50,
205+
) -> sax.SType:
206+
r"""Josephson junction (RCSJ) small-signal Sax model.
207+
208+
Linearized RCSJ model consisting of a bias-dependent Josephson inductance
209+
in parallel with a capacitance and resistance.
210+
211+
Valid in the superconducting (zero-voltage) state and for small AC signals.
212+
213+
See :cite:`McCumber1968` for details.
214+
215+
Args:
216+
f: Array of frequency points in Hz
217+
ic: Critical current I_c in Amperes
218+
capacitance: Junction capacitance C in Farads
219+
resistance: Shunt resistance R in Ohms
220+
ib: DC bias current I_b in Amperes (|ib| < ic)
221+
z0: Reference impedance in Ω
222+
223+
Returns:
224+
sax.SType: S-parameters dictionary
225+
"""
226+
# Flux quantum [Wb]
227+
PHI0 = 2.067833848e-15
228+
229+
ω = 2 * jnp.pi * jnp.asarray(f)
230+
231+
# Bias-dependent phase factor
232+
cos_phi0 = jnp.sqrt(1.0 - (ib / ic) ** 2)
233+
234+
# Josephson inductance
235+
LJ = PHI0 / (2 * jnp.pi * ic * cos_phi0)
236+
237+
# Admittances (parallel RCSJ)
238+
Y_R = 1 / resistance
239+
Y_C = 1j * ω * capacitance
240+
Y_L = 1 / (1j * ω * LJ)
241+
242+
# Total impedance
243+
Z_JJ = 1 / (Y_R + Y_C + Y_L)
244+
245+
return single_impedance_element(z=Z_JJ, z0=z0)
246+
247+
197248
if __name__ == "__main__":
198249
from matplotlib import pyplot as plt
199250

0 commit comments

Comments
 (0)