Tangelo v0.4.0 is here !
Dear Tangeloids: we are pleased to present you with 🍊 Tangelo v0.4.0 🍊.
It took us a bit longer than anticipated: significant work has been put towards this release, always with the goal to empower researchers to go further and faster.
Please kindly credit this project if it helps seeing your work coming to fruition: we would find it very rewarding. In the meantime, you can support this project by clicking the ⭐ in Github, or even better: give Tangelo a shot, mention it to your network.
Feedback, feature requests, bug reports and contributions are appreciated and help move the field forward: that includes -your- research !
Credits
This release was possible thanks to the contributions of @elloyd-1qbit @JamesB-1qbit @AlexandreF-1qbit @ValentinS4t1qbit @jjgoings and the help of quite a few others outside of Github. Thank you all for your contributions, whether code, tutorials, or feedback of any kind.
Highlights of this release
Classical chemistry backends for electronic calculations (pyscf, psi4, etc) are now optional dependencies
This should greatly help people who had trouble installing pyscf, or prefer using other packages such as Psi4. We wanted to make sure people could use Tangelo alongside whichever classical chemistry backend they were accustomed to. Tangelo no longer installs pyscf automatically: both pyscf and psi4 are now optional dependencies. Most features and algorithms now support Psi4.
On top of that, users can now define their own electronic integral solver or directly provide electronic integrals computed with their tool of choice as input to algorithms , as long as they fit the expected format.
Thank you @JamesB-1qbit for making all of this possible !
Open-shell DMET, with Unrestricted Hartree-Fock (UHF) mean-fields
Interested in modeling chemical reactions, or maybe battery chemistry ? DMET can now be applied more accurately to open-shell systems, now that our implementation supports UHF mean fields. Check out our notebook.
To our knowledge, nothing so far has been published about combining UHF-DMET and quantum algorithms.
You could be the first. Wouldn’t that be neat ?
Symbolic Simulator
Courtesy of @AlexandreF-1qbit , this backend performs symbolic simulation of quantum circuits and returns algebraic expressions for quasi-probability histograms and expectation values.
This powerful tool can help you design better quantum circuits, establish matrix identities between various gate sets, efficiently explore landscapes created by parameters in your circuits after just a single simulation, and more ! Both an asset for research and educational purposes. This simulator relies on the python package sympy, which enables you to do a lot of cool things (calculus, mon amour).
Check out this beautiful notebook to see it in action across a few different use cases, from chemistry or even amplitude amplification in Grover’s algorithm !
Fast Clifford simulator integration, with Stim
This “stimulator” is now available as a built-in backend in Tangelo thanks to @elloyd-1qbit . Circuits made out of clifford gates are efficient to simulate classically, and appropriately designed simulators can scale to large circuits depths on many qubits, beyond what is possible on a typical statevector simulator. We have been using the package Stim in our research to design clifford versions of existing variational quantum algorithms (https://arxiv.org/abs/2211.10501). This exploration has allowed us to generate ansatze for systems of much larger size (~40 qubits on a laptop), which can be further optimized on a quantum computer.
Hardware experiments with Braket
We were way overdue for that one, but the BraketConnection
is now available for those of you who like to use Braket for their experiments.
Early May, we released a blog post with a companion notebook on AWS quantum blog, which covers all the steps of designing and running a non-trivial hardware experiment, and showed some fault-tolerant methods in action as a bonus. The QEMIST Cloud integration was conveniently used to provide a cost estimate and submit the quantum circuits to Braket, but now you can directly use the BraketConnection
and your own Braket credentials if your organization has AWS all figured out for you.
We refreshed our “QPU connection” notebook to provide a better overview of the different ways Tangelo supports you in taking your research to quantum processors, between convenience and fine-control. If you’d like us to prioritize building a connection for Azure Quantum, please open a feature request. The translation functions make it however already pretty straightforward.
Combinatorial qubit mapping
There’s more to life than the Jordan-Wigner and Bravyi-Kitaev mappings, for the crucial task of encoding our problems into qubits. You’ll find in Tangelo the JKMN mapping, Hardcore-Bosonic mapping and now the combinatorial mapping.
On LiH in cc-pvdz basis with frozen-core approximation, we observed that the combinatorial mapping only needed 9 qubits to encode our qubit Hamiltonian instead of a whooping 34 qubits for Jordan-Wigner ! This mapping may unlock some new use cases for your developments. The encoding itself is quite compute-intensive and we’re looking into bringing faster implementations to address this challenge.
Algorithms
- Most algorithms now support psi4 as a classical chemistry calculation backend.
- New:
MP2Solver
(Uses the Second-order Moller-Plesset perturbation theory method to solve the electronic structure problem)
Tutorials
- The notebooks in the Tangelo-Examples repo are now rendered with Github-Pages
- Problem Decomposition: UHF-DMET
- Linq: Symbolic backend
- Hardware experiments: Umbrella inversion notebook, QPU connection notebook.
Misc
- Feature: qubit trimming in quantum circuits and qubit Hamiltonians, to avoid simulating trivial qubits.
- Feature: conversion methods between Tangelo and Openfermion
QubitOperator
objects. - Feature: support for MP2 parameters with UHF mean field.
- Feature: DMET virtual orbital truncation threshold visible to user
- Feature: Checkfile for
IntegralSolverPySCF
- Deprecated: Simulator class (now get_backend), former translation functions (now under
translate_circuit
) - Bug fix: DMET with frozen orbitals for fragments
- Bug fix: DMET with Effective Core Potential
- Bug fix:
Gate.inverse
method (S and T) - Performance:
Circuit.depth
method performance increase (much faster)