Changelog
Stay up to date with the latest Boulder Opal release notes
Boulder Opal 19.0.0
August 3, 2022
Breaking changes
- We have removed the following deprecated graph operations and parameters:
- The graph operations
graph.pwc_operator_hermitian_part
andgraph.stf_operator_hermitian_part
have been deprecated in favor of the unified operation graph.hermitian_part. - The parameter
cut_off_frequency
of the operation graph.sinc_convolution_kernel has been deprecated in favor ofcutoff_frequency
.
- The graph operations
What's new
- We have added two non-graph pulses to the pulse library:
- Hann series: qctrl.pulses.hann_series
- Sinusoid: qctrl.pulses.sinusoid
- The message alerting you when there's a new version of the Q-CTRL Python package available now also contains a URL to this Changelog page.
Boulder Opal 18.9.0
July 27, 2022
What's new
- We've added new STF pulses in the pulse library.
- Sech pulse: graph.pulses.sech_pulse_stf
- Sinusoid pulse: graph.pulses.sinusoid_stf
- Linear ramp: graph.pulses.linear_ramp_stf
- We've added non-graph pulses to the pulse library. You can use the Pulse class methods to sample and export them to your hardware.
- Cosine pulse: qctrl.pulses.cosine_pulse
- Square pulse: qctrl.pulses.square_pulse
- We've added an
initial_values
parameter to graph.utils.real_optimizable_pwc_signal and graph.utils.complex_optimizable_pwc_signal nodes to initialize optimization searches with your desired values.
Bug fixes
- We've fixed an authentication issue when using
qctrl
commands in the terminal.
Boulder Opal 18.8.0
July 25, 2022
What's new
- We've added new toolkit functions for creating the following STF pulses:
- Gaussian pulses: graph.pulse.gaussian_pulse_stf.
- Hann series: graph.pulse.hann_series_stf.
- Hyperbolic tangent ramp: graph.pulse.tanh_ramp_stf.
Boulder Opal 18.7.0
July 11, 2022
What's new
- The graph operation density_matrix_evolution_pwc, which you can use to simulate the evolution of open systems, now can also accept Tensors for Lindblad operators. This means that now you can pass the output of other graph operations as the Lindblad terms that describe the evolution of the open system.
Boulder Opal 18.6.0
June 22, 2022
What's new
We've created the Boulder Opal Toolkits (beta), built on top of the existing Boulder Opal functions and graph operations, to provide convenience functions, nodes, and classes that enable you to develop and implement workflows faster and with less code. You can access these toolkit operations from the corresponding namespaces in the Qctrl or Graph object (for example, qctrl.utils.confidence_ellipse_matrix
or graph.pulses.gaussian_pulse_pwc
). You can find more information about these in the toolkit topic and their reference documentation.
Please note that the toolkits are currently in beta phase of development. Breaking changes may be introduced.
The main toolkit capabilities include:
- Superconducting toolkit
- We have created a toolkit to easily set up simulation and optimization of superconducting systems composed of transmons and cavities. Find more information in the superconducting namespace reference and an example in the superconducting toolkit tutorial.
- Convenience graph operations
- We have introduced nodes to easily create and filter optimizable signals. Find out more in the utils namespace reference, and an example in the optimization tutorial.
- We have created a library of common control signals, such as a Gaussian pulse or a hyperbolic tangent ramp. Find more information in the pulses namespace reference and an example in this user guide.
- System identification
- You can now calculate confidence ellipses for estimated parameters in system identification workflows. Find out more information in the function's reference and an example in the system identification tutorial. You can also easily visualize these confidence ellipses using the plot_confidence_ellipses function from the Q-CTRL Visualizer.
- Format conversion
- We have created functions to convert between two formats representing a piecewise-constant function: a list of value/duration dictionaries (as in the outputs of Boulder Opal functions or the inputs for the plot_controls function from the Q-CTRL Visualizer) and two NumPy arrays with its durations and values. Find out more information in the utils namespace reference and examples in the simulation tutorial and the optimization tutorial.
Boulder Opal 18.4.0
June 14, 2022
What's new
- We have added two new graph operations for calculating the minimum and the maximum values of a tensor.
Boulder Opal 18.3.0
May 30, 2022
What's new
- We have added two new graph operations for creating operators in composite Hilbert spaces:
- The operation embed_operators creates operators in a composite Hilbert space by calculating the tensor product of operators in subsystems with the appropriate identity operators.
- The operation kronecker_product_list performs the sequential tensor product of a list of operators.
Boulder Opal 18.2.0
May 16, 2022
What’s new
- We've added simpler ways to create common operations of quantum mechanics:
- The new operation number_operator creates the number operator in the Fock space.
- The operation pauli_matrix now can also create the raising and lowering matrices.
- We've added the operation ms_phases_multitone to calculate the phases produced by a Mølmer–Sørensen gate created with a multitone global beam.
- We've added the unified graph operation hermitian_part for taking the Hermitian part of any of the data types used in our graphs (Tensors, PWCs, or STFs).
- You can now pass any kind of SciPy sparse matrix format to graph operations that use sparse matrices, such as density_matrix_evolution_pwc.
Boulder Opal 18.1.0
April 26, 2022
What’s new
- We've added new graph operations to create Pauli operators.
- pauli_matrix creates Pauli matrices.
- pauli_kronecker_product creates products of Pauli matrices in composite systems.
Boulder Opal 18.0.0
April 14, 2022
Breaking changes
- We’ve removed support for Python 3.6.
What’s new
- We’ve added support for Python 3.10.
- We’ve added new graph operations to work with quantum harmonic oscillator-like systems. You can use them to easily create states and operators in Fock spaces.
- creation_operator generate creation operators for truncated Fock spaces.
- annihilation_operator generate annihilation operators for truncated Fock spaces.
- fock_state generates a basis state in a Fock basis.
- coherent_state generates a coherent state.
- The
cut_off_frequency
parameter in the sinc_convolution_kernel node is now deprecated and will be removed in the future. Please usecutoff_frequency
instead.