# Changelog

Stay up to date with the latest Boulder Opal release notes

## Q-CTRL Python 17.0.0

March 1, 2022

### What's new

- New way to authenticate for Q-CTRL Python package.
- To authenticate, you can simply call qctrl auth or qctrl = Qctrl( ) without any additional arguments. An authentication link will open up automatically, or be provided for you to open in your browser of choice. You will be asked to enter your credentials if you are not already authenticated on our web app.

- New capabilities added to the calculate_optimization and calculate_stochastic_optimization optimizers to provide more flexibility on how you can configure optimizations.
- A new parameter
`max_iteration_count`

has been added to calculate_optimization function so that you can now include a stop condition for the optimizer to save time and compare the impact of input parameters on convergence more easily. See an example of how to do this in the user guide: How to tune the parameters of an optimization. - You can now retrieve the cost history of your optimization process to visualize the convergence and simply find the most suitable parameters for your system. See examples on how to use it in the user guides: How to tune the parameters of an optimization and How to tune the learning rate of a stochastic optimization.

- A new parameter
- A new parameter initial_values has been added in optimization_variable so that you can now set initial search values. See an example in the user guide: How to characterize the bandwidth of a transmission line using a qubit as a probe.
- New nodes are available that allow you to change the shape of tensors and perform tensor contraction. Learn more about them in the reference documentation for Boulder Opal.
- The graph context manager and access methods on the graph object via Qctrl.operations namespace has been removed. To migrate and create a graph, change code from:

`with qctrl.create_graph() as graph:`

`# Lines involving qctrl.operations, e.g.:`

`x = qctrl.operations.multiply(2, 3)`

into

`graph = qctrl.create_graph()`

`# Lines involving graph.node (instead of qctrl.operations.node)`

`x = graph.multiply(2, 3)`

- The deprecated operations and parameters listed below have been removed.
- Removed hessian_matrix operation in favor of hessian. Consult its reference here for more details.
- Removed recommend_arnoldi_k operation and krylov_subspace_dimension parameter from density_matrix_evolution_pwc operation as now you can directly set the precision of the integration via its error_tolerance parameter. Consult the operation’s reference here for more details.

## Boulder Opal web app

March 1, 2022

### What’s new

- New activity monitor features.
- You can track active jobs and review job history.
- You can now select and terminate multiple jobs simultaneously.
- You can find jobs by searching action id or using the job status filter.
- With action id provided in Jupyter Notebook and activity monitor, you can use it to retrieve previous results with the qctrl.get_result method.
- You can retrieve the results of previously run jobs using the qctrl.get_result method with an action id provided by the activity monitor or your local environment. See an example on how it’s used in our user guide here.

- Boulder Opal Changelog
- You can find the latest additions and updates to Boulder Opal Python package, documentation, and web app in our changelog.

- As a Boulder Opal user, you can also experience our Black Opal product, an interactive quantum computing learning platform, and other services through your account.

## Boulder Opal documentation

March 1, 2022

### What’s new

- We have recently updated and extended our documentation. It contains everything that you need to work with Boulder Opal and get up to speed with it.
- Get started guide provides you with a brief overview and a quickstart with Boulder Opal.
- Tutorials introduce you to the essential Boulder Opal features with hands-on exercises.
- Topics provide background information, explanation, and high-level discussion of key Boulder Opal concepts.
- User guides help you solve real-world problems using Boulder Opal with examples containing fully executable code.
- Application notes highlight new research results realized through use of a range of Boulder Opal capabilities. They demonstrate how leveraging different parts of the Boulder Opal toolset can solve major control challenges in the field.
- Technical reference includes the details of Q-CTRL Python package API. It contains the details on how the package works and how to use it.