Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug report] Missing external fluxes from split-transmon #145

Closed
2 tasks
QuantumWitness opened this issue Jul 5, 2022 · 3 comments
Closed
2 tasks

[Bug report] Missing external fluxes from split-transmon #145

QuantumWitness opened this issue Jul 5, 2022 · 3 comments
Assignees
Milestone

Comments

@QuantumWitness
Copy link

QuantumWitness commented Jul 5, 2022

Documentation check

If the bug manifests in unexpected behavior (as opposed to a crash), confirm that you have consulted the
API documentation

  • I have checked the API documentation.
  • I could not locate relevant information in the documentation or information is missing.

Describe the bug

When constructing a split-junction transmon from explicit circuit elements (not using the pre-made class), no external flux variables are created. Thus, flux biasing the transmon is impossible.

Expected behavior

Expected one external flux variable to be able to bias the split-junction transmon.

To Reproduce

Here's the code I use to create the transmon:

import scqubits as scqub

tmon_yaml = """# transmon circuit
branches:
- ["JJ", 1, 0, EJ=12,.01]
- ["JJ", 1, 0, EJ,0.01]
- ["C", 0, 1, EC=0.2]
"""

tmon = scqub.Circuit.from_yaml(tmon_yaml, from_file=False,
                               ext_basis="discretized")

tmon.sym_external_fluxes()

OS and version used (please complete the following information):

  • OS: macOS 12.1
  • scqubits version 3.0.0
  • Python version 3.8

Additional context

I tried this both with a floating and with a grounded transmon and received the same result. When I replace one junction with an inductor with $E_L = E_J$, I get the expected external flux variable, but not the expected eigenspectrum. I was hoping I could just define this using only junctions and a capacitor, to avoid making extra nodes, but perhaps that is just not possible?

EDIT: I guess I'm not sure if this is a bug, it's just not what I expected. What's the correct work-around?

Also do you want me to keep posting issues to get help figuring out scQubits or is there a discord/slack/somethingelse channel?

@jkochNU
Copy link
Member

jkochNU commented Jul 5, 2022

I can confirm that issue, and we are looking into a bug fix.

There's a temporary workaround: switch the order of nodes in one of the two JJ branches:

tmon_yaml = """# transmon circuit
branches:
- ["JJ", 1, 0, EJ=12,.01]
- ["JJ", 0, 1, EJ,0.01]
- ["C", 0, 1, EC=0.2]
"""

saipavanc added a commit that referenced this issue Jul 5, 2022
…reflected in __repr__ and, thus, the output of sym_external_fluxes
@QuantumWitness
Copy link
Author

QuantumWitness commented Jul 6, 2022

EDIT: The workaround for the YAML definition did work to get me the external fluxes I wanted, thank you.

Updated to latest version and offset charges are appearing correctly now, too.

@jkochNU jkochNU added this to the v3.0.2 milestone Jul 12, 2022
@ZhaoTianPu
Copy link
Collaborator

This issue has been addressed with 1dab4f1 and released with v3.0.2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants