Releases: qutip/qutip
QuTiP 4.7.1
This is a bugfix release for QuTiP 4.7.X. In addition to the minor fixes listed below, the release adds builds for Python 3.11 and support for packaging 22.0.
Features
- Improve qutip import times by setting logger names explicitly. (#1980 by Pieter Eendebak)
Bug Fixes
- Change floquet_master_equation_rates(...) to use an adaptive number of time steps scaled by the number of sidebands, kmax. (#1961 by Christian Staufenbiel)
- Change fidelity(A, B) to use the reduced fidelity formula for pure states which is more numerically efficient and accurate. (#1964 by Pierre Guilmin)
- Change
brmesolve
to raise an exception when ode integration is not successful. (#1966 by Eric Giguère) - Backport fix for IPython helper Bloch.repr_svg from dev.major. Previously the print_figure function returned bytes, but since ipython/ipython#5452 (in 2014) it returns a Unicode string. This fix updates QuTiP's helper to match. (#1970 by Asier Galicia)
- Fix correlation for case where only the collapse operators are time dependent. (#1979 by Eric Giguère)
- Fix the hinton visualization method to plot the matrix instead of its transpose. (#2011 by Pierre Guilmin)
- Fix the hinton visualization method to take into account all the matrix coefficients to set the squares scale, instead of only the diagonal coefficients. (#2012 Pierre Guilmin)
- Fix parsing of package versions in setup.py to support packaging 22.0. (#2037 by Simon Cross)
- Add back .qu suffix to objects saved with qsave and loaded with qload. The suffix was accidentally removed in QuTiP 4.7.0. (#2038 by Simon Cross)
- Add a default max_step to processors. (#2040 by Boxi Li)
Documentation
- Add towncrier for managing the changelog. (#1927 by Trent Fridey)
- Update the version of numpy used to build documentation to 1.22.0. (#1940 via dependabot)
- Clarify returned objects from bloch_redfield_tensor(). (#1950 by Christian Staufenbiel)
- Update Floquet Markov solver docs. (#1958 by Christian Staufenbiel)
- Update the roadmap and ideas to show completed work as of August 2022. (#1967 by Simon Cross)
Miscellaneous
- Return TypeError instead of Exception for type error in sesolve argument. (#1942 by Pieter Eendebak)
- Add towncrier draft build of changelog to CI tests. (#1946 by Simon Cross)
- Add Python 3.11 to builds. (#2041 by Simon Cross)
- Simplify version parsing by using packaging.version.Version. (#2043 by Simon Cross)
- Update builds to use cibuildwheel 2.11, and to build with manylinux2014 on Python 3.8 and 3.9, since numpy and SciPy no longer support manylinux2010 on those versions of Python. (#2047 by Simon Cross)
QuTiP 4.7.0
This release sees the addition of two new solvers -- qutip.krylovsolve
based on the Krylov subspace approximation and qutip.nonmarkov.heom
that reimplements the BoFiN HEOM solver.
Bloch sphere rendering gained support for drawing arcs and lines on the sphere, and for setting the transparency of rendered points and vectors, Hinton plots gained support for specifying a coloring style, and matrix histograms gained better default colors and more flexible styling options.
Other significant improvements include better scaling of the Floquet solver, support for passing Path
objects when saving and loading files, support for passing callable functions as e_ops
to mesolve
and sesolve
, and faster state number enumeration and Husimi Q functions.
Import bugfixes include some bugs affecting plotting with matplotlib 3.5 and fixing support for qutrits (and other non-qubit) quantum circuits.
The many other small improvements, bug fixes, documentation enhancements, and behind the scenese development changes are included in the list below.
QuTiP 4.7.X will be the last series of releases for QuTiP 4. Patch releases will continue for the 4.7.X series but the main development effort will move to QuTiP 5.
The many, many contributors who filed issues, submitted or reviewed pull requests, and improved the documentation for this release are listed next to their contributions below. Thank you to all of you.
Improvements
- MAJOR Added krylovsolve as a new solver based on krylov subspace approximation. (#1739 by Emiliano Fortes)
- MAJOR Imported BoFiN HEOM (https://github.com/tehruhn/bofin/) into QuTiP and replaced the HEOM solver with a compatibility wrapper around BoFiN bosonic solver. (#1601, #1726, and #1724 by Simon Cross, Tarun Raheja and Neill Lambert)
- MAJOR Added support for plotting lines and arcs on the Bloch sphere. (#1690 by Gaurav Saxena, Asier Galicia and Simon Cross)
- Added transparency parameter to the add_point, add_vector and add_states methods in the Bloch and Bloch3d classes. (#1837 by Xavier Spronken)
- Support
Path
objects inqutip.fileio
. (#1813 by Adrià Labay) - Improved the weighting in steadystate solver, so that the default weight matches the documented behaviour and the dense solver applies the weights in the same manner as the sparse solver. (#1275 and #1802 by NS2 Group at LPS and Simon Cross)
- Added a
color_style
option to thehinton
plotting function. (#1595 by Cassandra Granade) - Improved the scaling of
floquet_master_equation_rates
andfloquet_master_equation_tensor
and fixed transposition and basis change errors infloquet_master_equation_tensor
andfloquet_markov_mesolve
. (#1248 by Camille Le Calonnec, Jake Lishman and Eric Giguère) - Removed
linspace_with
andview_methods
fromqutip.utilities
. For the former it is far better to usenumpy.linspace
and for the later Python's in-builthelp
function or other tools. (#1680 by Eric Giguère) - Added support for passing callable functions as
e_ops
tomesolve
andsesolve
. (#1655 by Marek Narożniak) - Added the function
steadystate_floquet
, which returns the "effective" steadystate of a periodic driven system. (#1660 by Alberto Mercurio) - Improved mcsolve memory efficiency by not storing final states when they are not needed. (#1669 by Eric Giguère)
- Improved the default colors and styling of matrix_histogram and provided additional styling options. (#1573 and #1628 by Mahdi Aslani)
- Sped up
state_number_enumerate
,state_number_index
,state_index_number
, and added some error checking.enr_state_dictionaries
now returns a list foridx2state
. (#1604 by Johannes Feist) - Added new Husimi Q algorithms, improving the speed for density matrices, and giving a near order-of-magnitude improvement when calculating the Q function for many different states, using the new
qutip.QFunc
class, instead of thequtip.qfunc
function. (#934 and #1583 by Daniel Weigand and Jake Lishman) - Updated licence holders with regards to new governance model, and remove extraneous licensing information from source files. (#1579 by Jake Lishman)
- Removed the vendored copy of LaTeX's qcircuit package which is GPL licensed. We now rely on the package being installed by user. It is installed by default with TexLive. (#1580 by Jake Lishman)
- The signatures of rand_ket and rand_ket_haar were changed to allow N (the size of the random ket) to be determined automatically when dims are specified. (#1509 by Purva Thakre)
Bug Fixes
- Fix circuit index used when plotting circuits with non-reversed states. (#1847 by Christian Staufenbiel)
- Changed implementation of
qutip.orbital
to usescipy.special.spy_harm
to remove bugs in angle interpretation. (#1844 by Christian Staufenbiel) - Fixed
QobjEvo.tidyup
to usesettings.auto_tidyup_atol
when removing small elements in sparse matrices. (#1832 by Eric Giguère) - Ensured that tidyup's default tolerance is read from settings at each call. (#1830 by Eric Giguère)
- Fixed
scipy.sparse
deprecation warnings raised byqutip.fast_csr_matrix
. (#1827 by Simon Cross) - Fixed rendering of vectors on the Bloch sphere when using matplotlib 3.5 and above. (#1818 by Simon Cross)
- Fixed the displaying of
Lattice1d
instances and their unit cells. Previously calling them raised exceptions in simple cases. (#1819, #1697 and #1702 by Simon Cross and Saumya Biswas) - Fixed the displaying of the title for
hinton
andmatrix_histogram
plots when a title is given. Previously the supplied title was not displayed. (#1707 by Vladimir Vargas-Calderón) - Removed an incorrect check on the initial state dimensions in the
QubitCircuit
constructor. This allows, for example, the construction of qutrit circuits. (#1807 by Boxi Li) - Fixed the checking of
method
andoffset
parameters incoherent
andcoherent_dm
. (#1469 and #1741 by Joseph Fox-Rabinovitz and Simon Cross) - Removed the Hamiltonian saved in the
sesolve
solver results. (#1689 by Eric Giguère) - Fixed a bug in rand_herm with
pos_def=True
anddensity>0.5
where the diagonal was incorrectly filled. (#1562 by Eric Giguère)
Documentation Improvements
- Added contributors image to the documentation. (#1828 by Leonard Assis)
- Fixed the Theory of Quantum Information bibliography link. (#1840 by Anto Luketina)
- Fixed minor grammar errors in the dynamics guide. (#1822 by Victor Omole)
- Fixed many small documentation typos. (#1569 by Ashish Panigrahi)
- Added Pulser to the list of libraries that use QuTiP. (#1570 by Ashish Panigrahi)
- Corrected typo in the states and operators guide. (#1567 by Laurent Ajdnik)
- Converted http links to https. (#1555 by Jake Lishamn)
Developer Changes
- Add GitHub actions test run on windows-latest. (#1853 and #1855 by Simon Cross)
- Bumped the version of pillow used to build documentation from 9.0.0 to 9.0.1. (#1835 by dependabot)
- Migrated the
qutip.superop_reps
tests to pytest. (#1825 by Felipe Bivort Haiek) - Migrated the
qutip.steadystates
tests to pytest. (#1679 by Eric Giguère) - Changed the README.md CI badge to the GitHub Actions badge. (#1581 by Jake Lishman)
- Updated CodeClimate configuration to treat our Python source files as Python 3. (#1577 by Jake Lishman)
- Reduced cyclomatic complexity in
qutip._mkl
. (#1576 by Jake Lishman) - Fixed PEP8 warnings in
qutip.control
,qutip.mcsolve
,qutip.random_objects
, andqutip.stochastic
. (#1575 by Jake Lishman)
...
QuTiP 4.6.3
This minor release adds support for numpy 1.22 and Python 3.10 and removes some blockers for running QuTiP on the Apple M1.
The performance of the enr_destroy
, state_number_enumerate
and hadamard_transform
functions was drastically improved (up to 70x or 200x faster in some common cases), and support for the drift Hamiltonian was added to the qutip.qip
Processor
.
The qutip.hardware_info
module was removed as part of adding support for the Apple M1. We hope the removal of this little-used module does not adversely affect many users -- it was largely unrelated to QuTiP's core functionality and its presence was a continual source of blockers to importing qutip
on new or changed platforms.
A new check on the dimensions of Qobj
's were added to prevent segmentation faults when invalid shape and dimension combinations were passed to Cython code.
In addition, there were many small bugfixes, documentation improvements, and improvements to our building and testing processes.
Improvements
- The
enr_destroy
function was made ~200x faster in many simple cases. (#1593 by Johannes Feist) - The
state_number_enumerate
function was made significantly faster. (#1594 by Johannes Feist) - Added the missing drift Hamiltonian to the method run_analytically of
Processor
. (#1603 Boxi Li) - The
hadamard_transform
was made much faster, e.g., ~70x faster for N=10. (#1688 by Asier Galicia) - Added support for computing the power of a scalar-like Qobj. (#1692 by Asier Galicia)
- Removed the
hardware_info
module. This module wasn't used inside QuTiP and regularly broke when new operating systems were released, and in particular prevented importing QuTiP on the Apple M1. (#1754, #1758 by Eric Giguère)
Bug Fixes
- Fixed support for calculating the propagator of a density matrix with collapse operators. QuTiP 4.6.2 introduced extra sanity checks on the dimensions of inputs to mesolve (Fix mesolve segfault with bad initial state #1459), but the propagator function's calls to mesolve violated these checks by supplying initial states with the dimensions incorrectly set.
propagator
now calls mesolve with the correct dimensions set on the initial state. (#1588 by Simon Cross) - Fixed support for calculating the propagator for a superoperator without collapse operators. This functionality was not tested by the test suite and appears to have broken sometime during 2019. Tests have now been added and the code breakages fixed. (#1588 by Simon Cross)
- Fixed the ignoring of the random number seed passed to
rand_dm
in the case wherepure
was set to true. (#1600 by Pontus Wikståhl) - Fixed qutip.control.optimize_pulse support for sparse eigenvector decomposition with the Qobj oper_dtype (the Qobj oper_dtype is the default for large systems). (#1621 by Simon Cross)
- Removed qutip.control.optimize_pulse support for scipy.sparse.csr_matrix and generic ndarray-like matrices. Support for these was non-functional. (#1621 by Simon Cross)
- Fixed errors in the calculation of the Husimi spin_q_function and spin_wigner functions and added tests for them. (#1632 by Mark Johnson)
- Fixed setting of OpenMP compilation flag on Linux. Previously when compiling the OpenMP functions were compiled without parallelization. (#1693 by Eric Giguère)
- Fixed tracking the state of the Bloch sphere figure and axes to prevent exceptions during rendering. (#1619 by Simon Cross)
- Fixed compatibility with numpy configuration in numpy's 1.22.0 release. (#1752 by Matthew Treinish)
- Added dims checks for e_ops passed to solvers to prevent hanging the calling process when e_ops of the wrong dimensions were passed. (#1778 by Eric Giguère)
- Added a check in Qobj constructor that the respective members of data.shape cannot be larger than what the corresponding dims could contain to prevent a segmentation fault caused by inconsistencies between dims and shapes. (#1783, #1785, #1784 by Lajos Palanki & Eric Giguère)
Documentation Improvements
- Added docs for the num_cbits parameter of the QubitCircuit class. (#1652 by Jon Crall)
- Fixed the parameters in the call to fsesolve in the Floquet guide. (#1675 by Simon Cross)
- Fixed the description of random number usage in the Monte Carlo solver guide. (#1677 by Ian Thorvaldson)
- Fixed the rendering of equation numbers in the documentation (they now appear on the right as expected, not above the equation). (#1678 by Simon Cross)
- Updated the installation requirements in the documentation to match what is specified in setup.py. (#1715 by Asier Galicia)
- Fixed a typo in the
chi_to_choi
documentation. Previously the documentation mixed up chi and choi. (#1731 by Pontus Wikståhl) - Improved the documentation for the stochastic equation solvers. Added links to notebooks with examples, API doumentation and external references. (#1743 by Leonardo Assis)
- Fixed a typo in
qutip.settings
in the settings guide. (#1786 by Mahdi Aslani) - Made numerous small improvements to the text of the QuTiP basics guide. (#1768 by Anna Naden)
- Made a small phrasing improvement to the README. (#1790 by Rita Abani)
Developer Changes
- Improved test coverage of states and operators functions. (#1578 by Eric Giguère)
- Fixed test_interpolate mcsolve use (#1645 by Eric Giguère)
- Ensured figure plots are explicitly closed during tests so that the test suite passes when run headless under Xvfb. (#1648 by Simon Cross)
- Bumped the version of pillow used to build documentation from 8.2.0 to 9.0.0. (#1654, #1760 by dependabot)
- Bumped the version of babel used to build documentation from 2.9.0 to 2.9.1. (#1695 by dependabot)
- Bumped the version of numpy used to build documentation from 1.19.5 to 1.21.0. (#1767 by dependabot)
- Bumped the version of ipython used to build documentation from 7.22.0 to 7.31.1. (#1780 by dependabot)
- Rename qutip.bib to CITATION.bib to enable GitHub's citation support. (#1662 by Ashish Panigrahi)
- Added tests for simdiags. (#1681 by Eric Giguère)
- Added support for specifying the numpy version in the CI test matrix. (#1696 by Simon Cross)
- Fixed the skipping of the dnorm metric tests if cvxpy is not installed. Previously all metrics tests were skipped by accident. (#1704 by Florian Hopfmueller)
- Added bug report, feature request and other options to the GitHub issue reporting template. (#1728 by Aryaman Kolhe)
- Updated the build process to support building on Python 3.10 by removing the build requirement for numpy < 1.20 and replacing it with a requirement on oldest-supported-numpy. (#1747 by Simon Cross)
- Updated the version of cibuildwheel used to build wheels to 2.3.0. (#1747, #1751 by Simon Cross)
- Added project urls to linking to the source repository, issue tracker and documentation to setup.cfg. (#1779 by Simon Cross)
- Added a numpy 1.22 and Python 3.10 build to the CI test matrix. (#1777 by Simon Cross)
- Ignore deprecation warnings from SciPy 1.8.0 scipy.sparse.X imports in CI tests. (#1797 by Simon Cross)
- Add building of wheels for Python 3.10 to the cibuildwheel job. (#1796 by Simon Cross)
QuTiP 4.6.2
This minor release adds a function to calculate the quantum relative entropy, fixes a corner case in handling time-dependent Hamiltonians in mesolve and adds back support for a wider range of matplotlib versions when plotting or animating Bloch spheres.
It also adds a section in the README listing the papers which should be referenced while citing QuTiP.
Improvements
- Added a "Citing QuTiP" section to the README, containing a link to the QuTiP papers. (#1554)
- Added entropy_relative which returns the quantum relative entropy between two density matrices. (#1553)
Bug Fixes
- Fixed Bloch sphere distortion when using Matplotlib >= 3.3.0. (#1496)
- Removed use of integer-like floats in math.factorial since it is deprecated as of Python 3.9. (#1550)
- Simplified call to ffmpeg used in the the Bloch sphere animation tutorial to work with recent versions of ffmpeg. (#1557)
- Removed blitting in Bloch sphere FuncAnimation example. (#1558)
- Added a version checking condition to handle specific functionalities depending on the matplotlib version. (#1556)
- Fixed mesolve handling of time-dependent Hamiltonian with a custom tlist and c_ops. (#1561)
Developer Changes
- Read documentation version and release from the VERSION file.
QuTiP 4.6.1
This minor release fixes bugs in QIP gate definitions, fixes building from the source tarball when git is not installed and works around an MKL bug in versions of SciPy <= 1.4.
It also adds the [full]
pip install target so that pip install qutip[full]
installs qutip and all of its optional and developer dependencies.
Improvements
- Add the
[full]
pip install target (by Jake Lishman)
Bug Fixes
- Work around pointer MKL eigh bug in SciPy <= 1.4 (by Felipe Bivort Haiek)
- Fix berkeley, swapalpha and cz gate operations (by Boxi Li)
- Expose the CPHASE control gate (by Boxi Li)
- Fix building from the sdist when git is not installed (by Jake Lishman)
Developer Changes
- Move the qutip-doc documentation into the qutip repository (by Jake Lishman)
- Fix warnings in documentation build (by Jake Lishman)
- Fix warnings in pytest runs and make pytest treat warnings as errors (by Jake Lishman)
- Add Simon Cross as author (by Simon Cross)
QuTiP 4.6.0
This release brings improvements for qubit circuits, including a pulse scheduler, measurement statistics, reading/writing OpenQASM and optimisations in the circuit simulations.
This is the first release to have full binary wheel releases on pip; you can now do pip install qutip
on almost any machine to get a correct version of the package without needing any compilers set up. The support for Numpy 1.20 that was first added in QuTiP 4.5.3 is present in this version as well, and the same build considerations mentioned there apply here too. If building using the now-supported PEP 517 mechanisms (e.g. python -mbuild /path/to/qutip
), all build dependencies will be correctly satisfied.
Improvements
- MAJOR Add saving, loading and resetting functionality to
qutip.settings
for easy re-configuration. (by Eric Giguère) - MAJOR Add a quantum gate scheduler in
qutip.qip.scheduler
, to help parallelise the operations of quantum gates. This supports two scheduling modes: as late as possible, and as soon as possible. (by Boxi Li) - MAJOR Improved qubit circuit simulators, including OpenQASM support and performance optimisations. (by Sidhant Saraogi)
- MAJOR Add tools for quantum measurements and their statistics. (by Simon Cross and Sidhant Saraogi)
- Add support for Numpy 1.20. QuTiP should be compiled against a version of Numpy
>= 1.16.6
and< 1.20
(note: does not include 1.20 itself), but such an installation is compatible with any modern version of Numpy. Source installations frompip
understand this constraint. - Improve the error message when circuit plotting fails. (by Boxi Li)
- Add support for parsing M1 Mac hardware information. (by Xiaoliang Wu)
- Add more single-qubit gates and controlled gates. (by Mateo Laguna and Martín Sande Costa)
- Support decomposition of
X
,Y
andZ
gates in circuits. (by Boxi Li) - Refactor
QubitCircuit.resolve_gate()
(by Martín Sande Costa)
Bug Fixes
- Fix
dims
in the returns fromQobj.eigenstates
on superoperators. (by Jake Lishman) - Calling Numpy ufuncs on
Qobj
will now correctly raise aTypeError
rather than returning a nonsensendarray
. (by Jake Lishman) - Convert segfault into Python exception when creating too-large tensor products. (by Jake Lishman)
- Correctly set
num_collapse
in the output ofmesolve
. (by Jake Lishman) - Fix
ptrace
when all subspaces are being kept, or the subspaces are passed in order. (by Jake Lishman) - Fix sorting bug in
Bloch3d.add_points()
. (by pschindler) - Fix invalid string literals in docstrings and some unclosed files. (by Élie Gouzien)
- Fix Hermicity tests for matrices with values that are within the tolerance of 0. (by Jake Lishman)
- Fix the trace norm being incorrectly reported as 0 for small matrices. (by Jake Lishman)
- Fix issues with
dnorm
when using CVXPy 1.1 with sparse matrices. (by Felipe Bivort Haiek) - Fix segfaults in
mesolve
when passed a bad initialQobj
as the state. (by Jake Lishman) - Fix sparse matrix construction in PIQS when using Scipy 1.6.1. (by Drew Parsons)
- Fix
zspmv_openmp.cpp
missing from the pip sdist. (by Christoph Gohlke) - Fix correlation functions throwing away imaginary components. (by Asier Galicia Martinez)
- Fix
QubitCircuit.add_circuit()
for SWAP gate. (by Canoming) - Fix the broken LaTeX image conversion. (by Jake Lishman)
- Fix gate resolution of the FREDKIN gate. (by Bo Yang)
- Fix broken formatting in docstrings. (by Jake Lishman)
Deprecations
eseries
,essolve
andode2es
are all deprecated, pending removal in QuTiP 5.0. These are legacy functions and classes that have been left unmaintained for a long time, and their functionality is now better achieved withQobjEvo
ormesolve
.
Developer Changes
- MAJOR Overhaul of setup and packaging code to make it satisfy PEP 517, and move the build to a matrix on GitHub Actions in order to release binary wheels on pip for all major platforms and supported Python versions. (by Jake Lishman)
- Default arguments in
Qobj
are nowNone
rather than mutable types. (by Jake Lishman) - Fixed comsumable iterators being used to parametrise some tests, preventing the testing suite from being re-run within the same session. (by Jake Lishman)
- Remove unused imports, simplify some floats and remove unnecessary list conversions. (by jakobjakobson13)
- Improve Travis jobs matrix for specifying the testing containers. (by Jake Lishman)
- Fix coverage reporting on Travis. (by Jake Lishman)
- Added a
pyproject.toml
file. (by Simon Humpohl and Eric Giguère) - Add doctests to documentation. (by Sidhant Saraogi)
- Fix all warnings in the documentation build. (by Jake Lishman)
QuTiP 4.5.3
This patch release adds support for Numpy 1.20, made necessary by changes to how array-like objects are handled. There are no other changes relative to version 4.5.2.
Users building from source should ensure that they build against Numpy versions >= 1.16.6
and < 1.20
(not including 1.20
itself), but after that or for those installing from conda
, an installation will support any current Numpy version >= 1.16.6
.
Qutip 4.5.2
Bug Fixes
zcsr_proj
does not fail with unsorted indices (by Jake Lishman)- Fixed Milstein's heterodyne errors (by Eric Giguère)
- Removed risky code (by Jake Lishman)
- Fix datatype bug in lattice (by Boxi Li)
- eigh issues on mac with openBLAS fixed (by Eric Giguère)
Improvements
- Faster
zcsr_inner
(by Jake Lishman) - Support for Scipy 1.5 (by Jake Lishman)
- Better error message when installing without numpy (by Eric Giguère)
Book keeping
- Various code style improvements (by Jake Lishman)
Qutip 4.5.1
Bug Fixes
- Safer naming for temporary files. (by Eric Giguère)
- Better error message for failed string coefficient compilation. (issue raised by nohchangsuk)
- Fix
clebsch
function for half-integer (by Thomas Walker) - Fix
randint
'sdtype
touint32
for compatibility with windows. (issue raised by BoxiLi) - Corrected
stochastic
's heterodyne's m_ops (by eliegenois) - Mac pool use spawn. (issue raised by goerz)
- Fix typos in
QobjEvo._shift
. (by Eric Giguère)
Improvements
- Run the python 3.8 test in travis in linux. (by Simon Cross)
- Moved other tests to 3.8. (by Eric Giguère)
- Fix travis warning (by Ivan Carvalho)
husimi
/wigner
functions adapted to accept half integer spin. (by maij)
Book keeping
- Add Boxi Li to authors. (by Alex Pitchford)
- Deprecate graph function (by Jake Lishman)
- Skip tests that cause segfault on mac. (by Nathan Shammah and Eric Giguère)
QuTiP 4.5.0
Version 4.5.0 (January 31, 2020)
++++++++++++++++++++++++++++++
Improvements
-
MAJOR FEATURE: Added
qip.noise
, a module with pulse level description of quantum circuits allowing to model various types of noise and devices (by Boxi Li). -
MAJOR FEATURE: Added
qip.lattice
, a module for the study of lattice dynamics in 1D (by Saumya Biswas). -
Migrated testing from Nose to PyTest (by Tarun Raheja).
-
Optimized testing for PyTest and removed duplicated test runners (by Jake Lishman).
-
Deprecated importing
qip
functions to the qutip namespace (by Boxi Li). -
Added the possibility to define non-square superoperators relevant for quantum circuits (by Arne Grimsmo and Josh Combes).
-
Implicit tensor product for
qeye
,qzero
andbasis
(by Jake Lishman). -
QObjEvo no longer requires Cython for string coefficient (by Eric Giguère).
-
Added marked tests for faster tests in
testing.run()
and made faster OpenMP benchmarking in CI (by Eric Giguère). -
Added entropy and purity for Dicke density matrices, refactored into more general dicke_trace (by Nathan Shammah).
-
Added option for specifying resolution in Bloch.save function (by Tarun Raheja).
-
Added information related to the value of hbar in
wigner
andcontinuous_variables
(by Nicolas Quesada). -
Updated requirements for
scipy 1.4
(by Eric Giguère). -
Added previous lead developers to the qutip.about() message (by Nathan Shammah).
-
Added improvements to
Qobj
introducing theinv
method and making the partial trace,ptrace
, faster, keeping both sparse and dense methods (by Eric Giguère). -
Allowed general callable objects to define a time-dependent Hamiltonian (by Eric Giguère).
-
Added feature so that
QobjEvo
no longer requires Cython for string coefficients (by Eric Giguère). -
Updated authors list on Github and added
my binder
link (by Nathan Shammah).
Bug Fixes
-
Fixed
PolyDataMapper
construction forBloch3d
(by Sam Griffiths). -
Fixed error checking for null matrix in essolve (by Nathan Shammah).
-
Fixed name collision for parallel propagator (by Nathan Shammah).
-
Fixed dimensional incongruence in
propagator
(by Nathan Shammah) -
Fixed bug by rewriting clebsch function based on long integer fraction (by Eric Giguère).
-
Fixed bugs in QobjEvo's args depending on state and added solver tests using them (by Eric Giguère).
-
Fixed bug in
sesolve
calculation of average states when summing the timeslot states (by Alex Pitchford). -
Fixed bug in
steadystate
solver by removing separate arguments for MKL and Scipy (by Tarun Raheja). -
Fixed
Bloch.add_ponts
by settingedgecolor = None
inplot_points
(by Nathan Shammah). -
Fixed error checking for null matrix in
essolve
solver affecting alsoode2es
(by Peter Kirton). -
Removed unnecessary shebangs in .pyx and .pxd files (by Samesh Lakhotia).
-
Fixed
sesolve
and import ofos
incodegen
(by Alex Pitchford). -
Updated
plot_fock_distribution
by removing the offset value 0.4 in the plot (by Rajiv-B).