Scqubits

Latest version: v4.2.0

Safety actively analyzes 681812 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

4.2

**ADDITIONS**
- Allow loops with capacitances when dynamical flux grouping is used in custom circuits.
- Allow setting branch parameters with negative values, helpful for higher order junctions in custom circuits.

**BUG FIXES**
- Fix prefactor for evaluations noise spectral density for quasiparticle noise - adds an additional factor of $\hbar/e^2$.
- Fix error in symbolic Hamiltonian for multi-harmonic junctions.

**UNDER THE HOOD**
- Support for `numpy`>=2.0.
- Fix type annotations for certain functions, code cleanup.
- Updates to various testing functions.
- Internal updates to the custom diagonalization module.

4.1

**ADDITIONS**
- Allow Henries as units for Josephson junctions in `Circuit` definitions.
- The info for `Circuit` module is just the `_repr__latex_`, which returns Circuit info from a code cell.

**BUG FIXES**
- Fix compatibility with `qutip` version 5.
- Fix crashes for oscillator subsystems in hierarchical diagonalization, in `exp_i_operator`.
- Fix $2\pi$ factor in external flux terms in purely harmonic subsystems.
- Fix crashes, related to the warning attribute which is not defined for `HilbertSpace` object.
- Fix Github actions for `macos-latest` runs, which failed for `qutip` version 5.0.

**UNDER THE HOOD**
- Updates and clean up of Github tests.
- No longer require `cython<3.0`.
- Added python-version specific `qutip` installs that guarantee full support .

4.0

**ADDITIONS**
Following additions are for the `Circuit` module:
- Support for custom diagonalization.
- Coherence time calculations for a general circuit, with the argument `generate_noise_methods`.
- Ability to provide circuit parameters using physical units and multiplier prefixes.
- Helper function `hamiltonian_for_qutip_dynamics` to easily simulate time dynamics for a given parameter.
- Ability to set basis for extended variables for each subsystem individually when hierarchical diagonalization is used.
- Can instantiate `Circuit` instance with a symbolic Hamiltonian.
- Flux grouping when external flux is time dependent for superconducting loops in a circuit.
- New info method to give a description of the `Circuit` instance.
- Make certain attributes read-only, which need to be changed using the `configure` method.
- Ability to change the spanning tree by defining a custom set of `closure_branches`.
- The `plot_wavefunction` now supports options to plot the real, imaginary, absolute-square and absolute value of a wavefunction when applicable.

**BUG FIXES**
- Fix diagonalization for purely harmonic systems using the `Circuit` module
- Fix bugs in `Circuit` plotting routines.
- `Circuit` module supports parallel processing.
- Fix bugs when defining custom variable transformation in `Circuit` module.
- Fix typos in `ZeroPi` related to custom diagonalization
- Fixed a bug in `plot_wavefunction`  method `Circuit` , where the user-provided `grids_dict` argument was not applied in the plot.

**UNDER THE HOOD**
- More efficient evaluation of eigenvalues for purely harmonic circuits.
- More efficient attribute updates for the `Circuit` instance.
- Using `pyparsing` instead of `pyyaml` to parse the input string for the `Circuit` module.
- Initial work on making the `Circuit` instance writable to file.
- Refactoring and improving code quality.
- Improve the accuracy of `_evaluate_symbolic_expr`

3.3

**ADDITIONS**

* The custom diagonalization module now also supports the `jax` library.
* Custom diagonalization is now possible for the `FullZeroPi` qubit.

**BUG FIXES**

* Fixed how `op_in_dressed_eigenbasis` sets operator dimensions.

**UNDER THE HOOD**

* Initial work on QuTiP 5 compatibility
* Initial work to allow for custom diagonalization in the `Circuit` module in the near future.
* Updates on how annotations are handled in some cases.
* Automatic generation of `__all__` list in the `__init__.py`.

3.2

**ADDITIONS**
* New diagonalization module: customize your eigensolver by determining which library, what solvers, and what solver options to use to calculate the eigenvalues and eigenvectors of the various problems scqubits addresses (single qubit or composite system; support for custom Circuits and FullZeroPi to be added). Both sparse and dense diagonalization procedures from libraries such as scipy, primme, and cupy (which offers GPU support), are exposed, and can be easily selected with different sets of predefined options and parameters. In principle, completely arbitrary diagonalization functions can be set by the user.
* Added support for 1/f flux noise dephasing time calculation to the `FluxQubit` class.
* Overhaul of the graphical user interfaces, including `scqubits.GUI`, `scqubits.Explorer`, and `scqubits.HilbertSpace.create`

**BUG FIXES**
* Fixed a bug affecting numerical results in certain `ParameterSweep` cases. The problem arises in cases where the
operators appearing in `InteractionTerm` need updating under parameter changes. (Not applicable to `Transmon`, `TunableTransmon`,
or `Oscillator`, but relevant for `Fluxonium`, for example.)
* Fixed a bug that could result in repeated Matplotlib warnings about missing fonts
* Fixed bug that could prevent progress bar visibility settings to take effect
* Fixed a bug that could change how the T1 coherence time due to a flux bias line was calculated in a `TunableTransmon` qubit.

**UNDER THE HOOD**
* Added missing flux-noise support to `FluxQubit`
* Docstring fixes and additions, improvements to type annotations

3.1.1

**ADDITIONS**
* Enhanced support for interfacing with QuTiP/mesolve: for simulation of time evolution it is often preferable to work with matrices in the dressed eigenenergy basis (in the absence of a time-dependent drive).
To simplify this, all qubits (i.e., `QuantumSystem` children) now offer an `energy_esys` keyword argument, and introduce `HilbertSpace.op_in_dressed_eigenbasis`.
* Add fit method `Transmon.find_EJ_EC` that extracts EJ, EC of a transmon, based on given E01 and anharmonicity.
* Add `E01`, `anharmonicity` as attributes to all qubits inheriting from `QubitBaseClass`.

**BUG FIXES**
* Fixed a bug affecting certain matrix element parameter sweeps that required recomputing of operators under parameter changes (114 and 177).
* Fixed a bug where `energy_by_bare_index` could throw an exception because np.int32 is not recognized by isinstance(myvar, int) (172).
* Fix for inconsistencies in global signs used for harmonic oscillator and discrete charge basis, originating in definitions of charge-basis lowering/raising operators; e^(i theta) is raising operator. Related fix in harm. osc. momentum operator sign (166).
* Corrected `Transmon.d_hamiltonian_d_flux` to account for the shift in generalized flux (178).
* Various GUI bug fixes.
* Various docstring typo fixes (incl. 165).

**UNDER THE HOOD**
* Renamed branch master → main.
* Constrain changes to matplotlib settings to scqubits.
* Account for scipy deprecation: `linalg.eigh` option `eigvals` -> `subset_by_index`.
* Introduce check for existence of lookup in `HilbertSpace` and `ParameterSweep`; emit meaningful exception message otherwise.
* Phase out `HilbertSpace.subsys_list` in favor of `subsystem_list` (160).
* Remove deprecated `HilbertSpace.lookup` interface and corresponding adapter class.
* Distinguish preslicing reset for `ParameterSweep` and `HilbertSpace` (170).
* Changed pytest data for `ZeroPi`, `FullZeroPi`, `Cos2Phi` to account for the sign fix in 3c1c5914e41d944d8234a8cfc8f7ef2f5ae7b67e.
* Increase required pathos version to 0.3.0 to fix the multiprocessing issue in python 3.7.

Page 1 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.