SkillAgentSearch skills...

PyEPR

Powerful, automated analysis and design of quantum microwave chips & devices [Energy-Participation Ratio and more]

Install / Use

/learn @zlatko-minev/PyEPR
About this skill

Quality Score

0/100

Category

Design

Supported Platforms

Universal

README

Welcome to pyEPR :beers:!      (see arXiv:2010.00620)

Automated Python module for the design and quantization of Josephson quantum circuits

Open Source Love Awesome Star pyEPR Fork pyEPR <br> PyPI version DOI

Documentation

Read the docs here. <br>

Scientific work:

pyEPR Working group meeting -- Planning for the future of pyEPR

  • Please sign-up here: https://github.com/zlatko-minev/pyEPR/issues/45 or directly here :bangbang: :beers:
  • See pyEPR wiki for notes from first meeting.
  • We will schedule a follow-up meeting in 1-2 mo.
<br>

Who uses pyEPR?

  • Yale University, Michel Devoret lab QLab, CT, USA
  • Yale University, Rob Schoelkopf lab RSL, CT, USA
  • IBM Quantum and IBM's Qiskit Metal
  • QUANTIC (QUANTUM INFORMATION CIRCUITS), PARISINRIA, ENS, MINES PARISTECH, UPMC, CNRS. Groups of Zaki Leghtas and team. France
  • Quantum Circuit Group Benjamin Huard, Ecole Normale Supérieure de Lyon, France
  • Emanuel Flurin, CEA Saclay, France
  • Ioan Pop group, KIT Physikalisches Institut, Germany
  • UC Berkeley, Quantum Nanoelectronics Laboratory, Irfan Siddiqi, CA, USA
  • Quantum Circuits, Inc., CT, USA
  • Seeqc (spin-out of Hypres) Digital Quantum Computing, USA
  • Serge [Rosenblum Lab] quantum circuits group (https://www.weizmann.ac.il/condmat/rosenblum/) in the Weizmann Instatue, Israel
  • University of Oxford - LeekLab - Peter Leek Lab, UK
  • Britton Plourde Lab, Syracuse University, USA
  • Javad Shabani Lab Quantum Materials & Devices, NYU, NY, USA
  • UChicago Dave Schuster Lab, USA
  • SQC lab - Shay Hacohen Gourgy, Israel
  • Lawrence Berkeley National Lab
  • Colorado School of Mines, USA
  • Syracuse University, USA
  • IPQC, SJTU, Shanghai, China
  • Bhabha Atomic Research Centre, India
  • Quantum Computing UK
  • Alice&Bob, France
  • Centre for Quantum Technologies / Qcrew
  • Quantum Device Lab ETHZ; Andreas Wallraff
  • Bleximo
  • ... and many more! (Please e-mail zlatko.minev@aya.yale.edu with updates.)
<br>

Contents:

Intro image

Start here: Using pyEPR

  1. Fork :fork_and_knife: the pyEPR top-level repository on GitHub. (How to fork a GitHub repo?). Share some love by staring :star: pyEPR.
  2. Clone :point_down: your forked repository locally. (How to clone a GitHub repo?). Setup the pyEPR python code by following Installation and Python Setup.
  3. Tutorials Learn how to use using the jupyter notebook tutorials
  4. Stay up to date Enjoy and make sure to git add the master remote branch git remote add MASTER_MINEV git://github.com/zlatko-minev/pyEPR.git (help?).
  5. Cite pyEPR arXiv:2010.00620 / arXiv:1902.10355 and enjoy! :birthday: DOI

Start-up example

Jupyter notebook tutorials

The following code illustrates how to perform a complete analysis of a simple two-qubit, one-cavity device in just a few lines of code with pyEPR. In the HFSS file, before running the script, first specify the non-linear junction rectangles and variables (see Sec. pyEPR Project Setup in HFSS). All operations in the eigen analysis and Hamiltonian computation are fully automated. The results are saved, printed, and succinctly plotted.

# Load pyEPR. See the tutorial notebooks!
import pyEPR as epr

# 1. Connect to your Ansys, and load your design
pinfo = epr.ProjectInfo(project_path = r'C:\sim_folder',
                        project_name = r'cavity_with_two_qubits',
                        design_name  = r'Alice_Bob')


# 2a. Non-linear (Josephson) junctions
pinfo.junctions['jAlice'] = {'Lj_variable':'Lj_alice', 'rect':'rect_alice', 'line': 'line_alice', 'Cj_variable':'Cj_alice'}
pinfo.junctions['jBob']   = {'Lj_variable':'Lj_bob',   'rect':'rect_bob',   'line': 'line_bob', 'Cj_variable':'Cj_bob'}
pinfo.validate_junction_info() # Check that valid names of variables and objects have been supplied.

# 2b. Dissipative elements: specify
pinfo.dissipative['dielectrics_bulk']    = ['si_substrate', 'dielectric_object2'] # supply names of hfss objects
pinfo.dissipative['dielectric_surfaces'] = ['interface1', 'interface2']
# Alternatively, these could be specified in ProjectInfo with
# pinfo = epr.ProjectInfo(..., dielectrics_bulk = ['si_substrate', 'dielectric_object2'])

# 3.  Perform microwave analysis on eigenmode solutions
eprd = epr.DistributedAnalysis(pinfo)
if 1: # automatic reports
  eprd.quick_plot_frequencies(swp_var) # plot the solved frequencies before the analysis
  eprd.hfss_report_full_convergence() # report convergence
eprd.do_EPR_analysis()

# 4a.  Perform Hamiltonian spectrum post-analysis, building on mw solutions using EPR
epra = epr.QuantumAnalysis(eprd.data_filename)
epra.analyze_all_variations(cos_trunc = 8, fock_trunc = 7)

# 4b. Report solved results
swp_variable = 'Lj_alice' # suppose we swept an optimetric analysis vs. inductance Lj_alice
epra.plot_hamiltonian_results(swp_variable=swp_variable)
epra.report_results(swp_variable=swp_variable, numeric=True)
epra.quick_plot_mode(0,0,1,numeric=True, swp_variable=swp_variable)

pyEPR Video Tutorials <img src="https://developers.google.com/site-assets/logo-youtube.svg" height=30>

<div style="overflow:auto;"> <table style=""> <tr> <th> <a href="https://www.youtube.com/watch?v=fSRYvD-ITnQ&list=PLnak_fVcHp17tydgFosNtetDNjKbEaXtv&index=1"> Tutorial 1 - Overview <br> <img src="https://img.youtube.com/vi/fSRYvD-ITnQ/0.jpg" alt="pyEPR Tutorial 1 - Overview" width=250> </a> </th> <th> <a href="https://www.youtube.com/watch?v=ZTi1pb6wSbE&list=PLnak_fVcHp17tydgFosNtetDNjKbEaXtv&index=2"> Tutorial 2 - Setup of Conda & Git <br> <img src="https://img.youtube.com/vi/ZTi1pb6wSbE/0.jpg" alt="pyEPR Tutorial 2 - Setup of Conda & Git" width=250> </a> </th> <th> <a href="https://www.youtube.com/watch?v=L79nlXY2w4s&list=PLnak_fVcHp17tydgFosNtetDNjKbEaXtv&index=3"> Tutorial 3 - Setup of Packages & Config <br> <img src="https://img.youtube.com/vi/L79nlXY2w4s/0.jpg" alt="pyEPR Tutorial 3 - Setup of Packages & Config" width=250> </a> </th> </tr> </table> </div> <!-- [![pyEPR Tutorial 1 - Overview](https://img.youtube.com/vi/fSRYvD-ITnQ/0.jpg)](https://www.youtube.com/watch?v=fSRYvD-ITnQ&list=PLnak_fVcHp17tydgFosNtetDNjKbEaXtv&index=1) -->

Jupyter notebook tutorials

Installation and setup of pyEPR


Use pyEPR directly from the source, and pull updates from the master git repo, since we often update it. The following steps explain how to set up Python 3, fork the pyEPR repo and use it. Please keep up to date with pyEPR by using git. We like to make it simple using a git-gui manager, SourceTree or GitHub Desktop.

Quick setup We recommend the approach in the following section, which will be most up to date, but for quick use you can use the conda forge channel to install

conda install -c conda-forge pyepr-quantum

or the [PyPi](https://pypi.o

Related Skills

View on GitHub
GitHub Stars198
CategoryDesign
Updated21d ago
Forks271

Languages

Python

Security Score

85/100

Audited on Mar 4, 2026

No findings