Closed QuantumWitness closed 2 years ago
Hi @QuantumWitness,
Thanks for using SQcircuit and sharing your issue with us.
Basically, there is no Bug neither in SQcirucit nor in your code. It all comes to how we construct the basis for the charge modes. ng
can be altered through the canonical transformations that we use to build the circuit. Therefore, dealing with circuit prone to charge mode and charge noise, you should also scan your spectrum in ng
.
However, I will make sure that in the next patch 0.0.13, we have the same standard with what you described to avoid the confusion.
Thanks for the clarification!
It turns out I have an additional question about this transform (probably answered in the paper, but I'll ask here first). It's odd to me that a transformation can alter something that seems like it should be invariant, specifically the amount of charge (modulo 2e) at a certain node. What you're saying sounds like the value of ng=0
is kind of arbitrary, like the zero of gravitational potential in a kinematics problem. Is that right?
No worries! In building Hilbert space, I was not cautious to make sure that charge offsets on charge island are zero, and they may not stay invariant through the transformations, which I can fix it. What causes confusion is that I meant ng
to be shift in charge offset rather than charge on charge islands. I should have used Δng
instead of ng
, since Δng
is what user specifies in SQcircuit.
Ah, I understand!
Unrelated, but since we're talking here-
Would you prefer people post feature requests as issues in the GitHub? If I (or someone else) is having issues getting a circuit to function correctly, should we post an issue? If no, is there a Discord, Slack, some other way to get assistance with unexpected circuit behavior?
No problem @QuantumWitness
Thanks for the info. Downloaded v0.0.13 and it looks like things are working as expected.
Describe the Bug
I was messing around with SQcircuit and scqubits when I noticed that the energy spectra for a split junction transmon as a function of flux bias $\Phi$ at
ng=0
did not agree between the two packages.Specifically the issue is that, in SQcircuit, the spectrum returns degenerate $|0\rangle \mathrm{and} |1\rangle$ states at half a flux quantum in loop1. This is only expected to happen when the offset charge, which I call
ng
, is set to 0.5. However, as far as I know, when I initialized the circuit elements and the circuit itself, I did not specify an offset charge and assumed it would start asng=0
.Further, when I set the offset charge with the command
set_charge_offset(1,0)
, the spectrum I get back is what I would have expected forng=0.5
.Here is the spectrum around $\Phi_{loop1} = \frac{\Phi_0}{2}$ with
ng=0
:Here's the spectrum around the same flux points, but with
set_charge_offset(1,0.5)
such thatng=0.5
:The minimum of $E_{01}$ is now 798 MHz, which is 4Ec, exactly what you'd expect at
ng=0
, rather thanng=0.5
.Expected Behavior
I expected the spectra above to be switched with respect to the offset charge.
To Reproduce
Here's the code I used to make the transmon and plot the spectrum.
OS and Version
OS: MacOS 12.1 SQCircuits Version: 0.0.1 Python Version: 3.8
Other Comments
The main question in my mind is: is this a bug, or is there a design decision here that sets some implicit charge offset on the transmon? Or did I do something wrong when creating the circuit?