Skip to content

Releases: quantumlib/OpenFermion

OpenFermion v1.0

21 Dec 23:39
c31981a
Compare
Choose a tag to compare

This release is for the stable 1.0 version of OpenFermion. Significant changes from the 0.11 release have been made. The most notable changes are listed below.

Features:

MajoranaOperator <-> FermionOperator with Jordan-Wigner + Bravyi-Kitaev options, get_majorana acts like get_fermion operator.
Is_contextual for confirming if a Hamiltonian is contextual
SymbolicOperator coefficients are sympy.Expr objects
Partitioning schemes for measuring fermionic 1- and 2-RDMs
Functionality for the Hartree-Fock project
Spatial -> spin-orbital integrals
Extended RPA
Constructing a pure 2-body (reduced Hamiltonian) from 1-body and 2-body InteractionOperator.
Construct antisymmeterized 2-electron integrals + coulomb + exchange matrices
Verified phase estimation utilities

Organization:

Merging of OpenFermion-Cirq into OpenFermion
Reorganize package (#620) (new submodules: chem, linalg, circuits, functionals, transforms)
Sample data is integrated with package for testing.
Reorganize utils
Deprecation of Readthedocs as the documentation host. Docs are now generator by tensorflow-docs and hosted at https://quantumai.google/openfermion

OpenFermion v0.11.0

02 Apr 19:16
02a0088
Compare
Choose a tag to compare

Starting with this version, Python 2 is no longer supported. Other notable changes and additions:

  • Functions to partition qubits into subsets for efficient measurement of Pauli strings: openfermion.binary_partition_iterator, openfermion.partition_iterator, openfermion.pauli_string_iterator.
  • Added structure argument to openfermion.geometry_from_pubchem. It is recommended to set this to '3d' to ensure correct structures are returned (see #544).
  • openfermion.get_number_preserving_sparse_operator.
  • openfermion.prony.

OpenFermion v0.10.0

22 Jul 21:59
a76d9a5
Compare
Choose a tag to compare

Notable changes and additions:

  • Adds a new class, MajoranaOperator, to represent operators in the Majorana basis. Support for this operator added to openfermion.jordan_wigner and openfermion.bravyi_kitaev.
  • Speeds up construction of jellium Hamiltonians by utilizing translation invariance
  • openfermion.wedge
  • Adds some utility methods to InteractionOperator
  • Utilities for tapering off qubits using stabilizer conditions: openfermion.utils.taper_off_qubits, openfermion.utils.reduce_number_of_terms
  • Fixes a bug that caused incompatibility with scipy 1.3.0

OpenFermion v0.9.0

19 Dec 01:00
Compare
Choose a tag to compare

Notable changes and additions:

  • The diagonalizing_bogoliubov_transform method of openfermion.QuadraticHamiltonian now returns a tuple of three objects: the orbital energies, the transformation matrix, and a constant energy offset
  • openfermion.FermiHubbardModel
  • openfermion.IsingOperator
  • openfermion.group_into_tensor_product_basis_sets
  • Improves low-rank decomposition to work in spatial orbital basis rather than spin-orbital basis
  • SymbolicOperator is now an abstract base class
  • Specialized routines to compute commutators of Diagonal coulomb operators faster
  • Updated Docker image to include OpenFermion-Cirq
  • Default absolute precision for floating point operations changed from 1e-12 to 1e-8

OpenFermion v0.8

17 Jul 05:03
Compare
Choose a tag to compare

Eighth production release. Minor release necessitated by depending libraries.

  • Most importantly, new logo.
  • Functionality for performing low rank decompositions of two-body operators.
  • Small additions of helper functions for more flexible testing.

OpenFermion v0.7

25 Jun 18:38
Compare
Choose a tag to compare

Seventh production release. Many new features introduced including:

  • Method to obtain circuit that diagonalizes a QuadraticHamiltonian.
  • Generalized equality and arithmetic operations for PolynomialTensor.
  • Fixed minor bug in is_hermitian function.
  • New DiagonalHamiltonian class for interacting fermion systems with diagonal two-body term.
  • Human-readable IO for SymbolicOperator.
  • Functions to map particle RDMs to hole RDMs and vice versa.
  • Fixed bug in plane wave / dual Hamiltonian generation which occurred for even grids.
  • Code to preprocess coefficients for LCU algorithm introduced in arXiv:1805.03662.
  • LinearOperator class for efficient numerical diagonalization of QubitOperators.
  • Routines to use Davidson routine for obtaining ground states using LinearOperator.
  • Functions to automatically obtain MolecularData geometries from PubChem database.
  • New BosonOperator class.
  • Generation of Bose-Hubbard Hamiltonians.
  • Functions to automatically remove redundant qubits post-BK transformation.
  • Added functionality to generate plane wave / dual basis Hamiltonians with reduced periodicity.
  • Links to Xanadu Strawberry Fields "OpenBoson" library.

OpenFermion v0.6

29 Mar 23:07
a32e641
Compare
Choose a tag to compare

Unfortunately a change between v0.4 and v0.5 introduced a circular dependency in the setup script that caused an install problem with the v0.5 release for some environments. The v0.6 release corrects that issue and also reconfigures our continuous integration testing so that problems like this will be more easily detected in the future.

OpenFermion v0.5

29 Mar 19:00
bf52298
Compare
Choose a tag to compare

Fifth production release, necessary due to some reorganization of modules as well as:

  • Fixed bug in the Jordan-Wigner transform applied to InteractionOperators.
  • Fixed bug in the Bravyi-Kitaev Superfast Transform which caused some terms to be ignored.
  • Fixed bug in binary code transforms causing creation operators to map to annihilation operators.
  • Changed implementation of the Bravyi-Kitaev transform to use from arXiv:quant-ph/0003137.
  • We now implement BK transform from arXiv:1701.07072 under a different name.
  • Renamed SymbolicBinary as BinaryPolynomial.
  • Changed the convention used in the function for instantiating Majorana fermion operators.
  • Introduced new syntax for instantiating FermionOperators and QubitOperators with a single factor.
  • Added the fermionic spin operators Sx and Sy to the special operators module.
  • Added a demo of the Jordan-Wigner and Bravyi-Kitaev transforms.

OpenFermion v0.4

06 Mar 06:42
Compare
Choose a tag to compare

Fourth production release. This is a major update introducing many new features:

  • Added (alpha version) of a "cloud library" for sharing / storing molecular data files.
  • Added routines for generating special FermionOperators such as Sz, S^2, S^+, etc.
  • Added SymbolicOperator as parent class from which FermionOperator/QubitOperator inherit.
  • Added flexible method of initializing classes derived from SymbolicOperators from strings.
  • Fixed some numerical instabilities in sparse operator routines.
  • Fixed some minor bugs with the saving and loading of FermionOperator/QubitOperator.
  • Added some preliminary routines for generating quantum phase estimation circuits.
  • Added substantial infrastructure for generalized fermion transforms based on arXiv:1712.07067.
  • Added non-linear encoders for transforming fermions with reduced spatial complexity.
  • Changed conventions for how fermion modes are ordered in terms of the spin index.
  • Added routines to transform functions for reordering fermion modes prior to transform.
  • New demos for Given routine procedures and generalized fermion encodings.

OpenFermion v0.3

05 Jan 00:12
Compare
Choose a tag to compare

Third production release. Fixes a crucial bug related to rotating molecular orbitals. Also:

  • Adds code for Verstraete-Cirac transform.
  • Allows users to write "from OpenFermion import *".
  • Fixes minor bugs in code to generate spinless Hubbard models.
  • Adds functionality for computing Trotter errors.