PyEPR
Powerful, automated analysis and design of quantum microwave chips & devices [Energy-Participation Ratio and more]
Install / Use
/learn @zlatko-minev/PyEPRREADME
Welcome to pyEPR :beers:! (see arXiv:2010.00620)
Automated Python module for the design and quantization of Josephson quantum circuits
Documentation
Read the docs here. <br>
Scientific work:
- Minev, Z. K., Leghtas, Z., Mudhada, S. O., Reinhold, P., Diringer, A., & Devoret, M. H. (2018). pyEPR: The energy-participation-ratio (EPR) open-source framework for quantum device design.
- Minev, Z. K., Leghtas, Z., Mundhada, S. O., Christakis, L., Pop, I. M., & Devoret, M. H. (2020). Energy-participation quantization of Josephson circuits. ArXiv. Retrieved from http://arxiv.org/abs/2010.00620 (2020)
- Z.K. Minev, Ph.D. Dissertation, Yale University (2018), Chapter 4. (arXiv:1902.10355) (2018)
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.
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.eduwith updates.)
Contents:
- Start here: Using
pyEPR - Video Tutorials
- Setup and Installation
- HFSS Project Setup for
pyEPR - Troubleshooting
pyEPR - Authors and Contributors

Start here: Using pyEPR
- Fork :fork_and_knife: the
pyEPR top-level repositoryon GitHub. (How to fork a GitHub repo?). Share some love by staring :star: pyEPR. - Clone :point_down: your forked repository locally. (How to clone a GitHub repo?). Setup the
pyEPRpython code by following Installation and Python Setup. - Tutorials Learn how to use using the jupyter notebook tutorials
- 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?). - Cite
pyEPRarXiv:2010.00620 / arXiv:1902.10355 and enjoy! :birthday:
Start-up example
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>
<!--
[](https://www.youtube.com/watch?v=fSRYvD-ITnQ&list=PLnak_fVcHp17tydgFosNtetDNjKbEaXtv&index=1) -->
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
claude-opus-4-5-migration
82.5kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
model-usage
335.2kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
diffs
335.2kUse the diffs tool to produce real, shareable diffs (viewer URL, file artifact, or both) instead of manual edit summaries.
TrendRadar
49.7k⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。

