Change Log¶
Version 2.1¶
- Bug Fixes
Fixed a bug that overwrote <ParameterSweep>[“evals”] data with transition data when using plot_transitions().
Fixed proper integration of ParameterSweep into CentralDispatch, enabling proper warnings to the user when internal computed sweep data is out of sync with associated quantum system parameters.
Fixed a bug that could occur when a ParameterSweep was applied to a HilbertSpace object involving only a single subsystem.
- Under the Hood
Enable use of weakref in CentralDispatch for proper garbage collection.
Extended pytests to basic CentralDispatch functionality
Version 2.0¶
- Additions
New graphical user interface
scqubits.GUI()illustrating single-qubit functionality of scqubits.Introducing
NamedSlotsNdarrayas a convenient subclass of ndarray with name-based and value-based slicing, and immediate support for basic plotsAdded functionality for extracting dispersive energy parameters (such as Kerr coupling strengths)
Improved support for transition plots (subsystem transitions, sidebands etc.)
Added
Cos2PhiQubitclass.Added
KerrOscillatorclassAdded
GenericQubit(two-level system) so that toy models such as the Jaynes-Cummings model can be readily realized withHilbertSpace.Added
nandphioperators to the Oscillator classAdded helper methods
convert_to_E_oscandconvert_to_l_oscforOscillatorinitializationNew and enhanced interface for defining interaction terms in HilbertSpace objects via
.add_interaction()Added option to input interaction as a
Qobj, or specify interaction terms as string expressions; also represented inHilbertSpace.create()GUI
- Improvements
Convergence for
ZeroPiis now faster, thanks to a correction to the expression for the grid spacing in discretization.py.Refactored
ParameterSweepclass, now allowing for multi-dimensional parameter sweepsAdded a warning describing
total=Truebeing the default in t1 calculations
- Bug fixes
Fix to type conversion error affecting the
numberoperator in operators.pyRectified orientation of
matrix2dplots to match axes labelsmodeoption for values displayed in matrix element plots was ignored
- Internals
New support for higher-order stencils in discretized derivatives.
Improved formatting of
__str__methods (called when “printing” an scqubits class instance).Under the hood: use of Python 3.6 compatible type annotations; unified formatting enabled by the
blackpackageImprovements to fileIO speeding up operations (increased memore cache) and requiring less disk space (avoid literal redundancies in stored data).
Version 1.3.2¶
- Bug fixes
bug fix:
<qubit>.create()failed in jupyter notebooks due to missing image filesbug fix: corrected the form of the quasiparticle noise operator
Version 1.3.1¶
- Major changes/additions
Coherence calculations for the majority of qubits. These allow for estimating coherence times and rates due to various noise channels.
A new units system: users can specify energy units of their system Hamiltonian. These units are automatically considered when plotting and in coherence time calculations.
Separated documentation and example jupyter notebooks into individual repositories, see scqubits-doc and scqubits-examples.
- Minor changes/additions
Introduced tests for real-valuedness of zero-pi Hamiltonians (for speedup).
New options in plotting (e.g. grid).
- Bug fixes
Fixed bug preventing the proper disabling of the progress bar.
Various bug fixes and improvements of file IO operations.
Fixed issue with color legend bar in .plot_matrixelements.
Version 1.2.3¶
Bug fix: the
FullZeroPiHamiltonian was incorrect in the case of nonzerodC.improvement: thanks to adjusted ARPACK options, diagonalization should be noticeably faster for
ZeroPiandFullZeroPi.make
pathosanddillthe default for multiprocessing.
Version 1.2.2¶
Bug fix: implementation of the
add_hc=Trueflag inInteractionTerminvolved a bug that could lead to incorrect resultsupdate to plotting routines now supports various extra plotting options such as
linestyle=...etc.added
TunableTransmonclass for flux-tunable transmon, including junction asymmetrylimit support to Python >= 3.6
corrections to documentation of
FullZeroPiadded missing jupyter notebook illustrating use of
HilbertSpaceandParameterSweepoverhaul of file IO system now allows saving and loading various scqubit data via a custom h5 file format
ipywidget support for creating qubits inside jupyter (try, for example,
tmon = scqubits.Transmon.create())
Version 1.2.1¶
update to the setup script to properly include testing data with the PyPi release.
Version 1.2¶
- Major changes/additions
scqubits now offers multiprocessing support for a number of methods.
Introduced checks ensuring that umbrella objects like
HilbertSpaceandParameterSweepinstances do not accidentally go “out-of-sync” with respect to their basic components. When needed, warnings are thrown for the user to re-run sweeps or spectrum lookups.
- Under the hood:
Monitoring for changes of interdependent class instances is implemented through a central dispatch system. (disable:
settings.DISPATCH_ENABLED)Removed
HilbertSpacereference from within InteractionTerm (throws deprecation warning if still used)Made
HilbertSpaceinherit fromtuplerather thanlist; composition changes toHilbertSpacewarrant generating a newHilbertSpaceinstanceShifted
InteractionTerm.hamiltoniantoHilbertSpace.interaction_hamiltonianCreated
DataStoreas general purpose parent class toSpectrumDataNo longer store custom data inside
ParameterSweep,sweep_generators.pyfunctions returnDataStoreobjects
Version 1.1.1¶
fixed a bug in display of
FluxQubitwavefunctioninternal refactoring
Version 1.1.0¶
new class
InteractionTermworks in tandem withHilbertSpaceto ease setup of composite systems with pairwise interactionsnew
ParameterSweepclass efficiently generates spectral data for performing a scan of aHilbertSpaceobject over an external parametersnew
Explorerclass introduces interactive plots (see docs and demo ipynb)cleaned up implementation of file Serializable operations