User guides

Step-by-step how-to guides for the features in Boulder Opal

Set up basics

How to monitor activity and retrieve results

Monitor job status and retrieve results from previously run calculations in Boulder Opal

How to mute status messages during calculations

Change the verbosity of the messaging

How to cite Boulder Opal

Cite relevant Boulder Opal articles and specific documentation pages

Calculate with graphs

How to calculate and optimize with graphs

Create graphs for computations with Boulder Opal

How to represent quantum systems using graphs

Represent quantum systems for optimization, simulation, and other tasks using graphs

How to create analytical signals for simulation and optimization

Use predefined signals from the Boulder Opal toolkit

How to define continuous analytical Hamiltonians

Use analytical expressions to construct your Hamiltonian

How to perform optimization and simulation in the same calculation

Perform calculations using optimization results in a single graph

How to reuse graph definitions in different calculations

Reapply graph nodes for multiple applications

How to optimize controls using gradient-free optimization

Perform graph-based optimizations when gradients are costly

Design error-robust controls

How to optimize controls in arbitrary quantum systems using graphs

Highly-configurable non-linear optimization framework for quantum control

How to optimize controls with nonlinear dependences

Incorporate nonlinear Hamiltonian dependences on control signals

How to optimize controls on large sparse Hamiltonians

Efficiently perform control optimization on sparse Hamiltonians

How to create dephasing and amplitude robust single-qubit gates

Incorporate robustness into the design of optimal pulses

How to create leakage-robust single-qubit gates

Design pulses that minimize leakage to unwanted states

How to optimize error-robust Mølmer–Sørensen gates for trapped ions

Efficient state preparation using Mølmer–Sørensen-type interactions with in-built convenience functions

How to optimize Mølmer–Sørensen gates for a multitone global beam

Creating efficient gates for trapped ions without individually addressing the ions

How to optimize controls robust to strong noise sources

Design controls that are robust against strong time-dependent noise sources with stochastic optimization

Tune optimization hyperparameters

How to tune the parameters of an optimization

Defining parameters of the optimization using the cost history and early halt conditions

How to tune the learning rate of a stochastic optimization

Configuring the stochastic optimizer by requesting the cost history from the optimization results

Optimize controls under constraints

How to add smoothing and band-limits to optimized controls

Incorporate smoothing of optimized waveforms

How to optimize controls with time symmetrization

Incorporate time symmetry into optimized waveforms

How to find time-optimal controls

Optimizing over the duration of your controls

How to optimize controls using a Fourier basis

Create optimized pulses using CRAB techniques

How to optimize controls using a Hann series basis

Create optimized controls using Hann series basis functions

How to optimize controls using user-defined basis functions

Create optimized controls using arbitrary basis functions

Characterize hardware

How to perform noise spectroscopy on arbitrary noise channels

Reconstructing noise spectra using shaped control pulses

How to perform parameter estimation with a small amount of data

Estimate Hamiltonian model parameters using measured data and the graph-based optimization engine

How to perform parameter estimation with a large amount of data

Estimate Hamiltonian model parameters using measured data and the graph-based stochastic optimization engine

How to characterize a transmission line using a qubit as a probe

Characterize transmission-line bandwidth via probe measurements and the graph-based optimization engine

Automate hardware with AI

How to automate calibration of control hardware

Calibrate RF control channels for maximum pulse performance

How to automate closed-loop hardware optimization

Closed-loop optimization without complete system models

How to automate complex calibration tasks with Boulder Opal

Automate your calibration workflows with the Q-CTRL Experiment Scheduler

How to optimize controls starting from an incomplete system model

Design waveforms using a model-independent reinforcement learning framework

Simulate quantum dynamics

How to simulate quantum dynamics for noiseless systems using graphs

Simulate the dynamics of closed quantum systems

How to simulate quantum dynamics subject to noise with graphs

Simulate the dynamics of closed quantum systems in the presence of Non-Markovian noise

How to simulate multi-qubit circuits in quantum computing

Evaluate the performance of multi-qubit circuits with and without noise

How to simulate open system dynamics

Calculating the dynamics of a quantum system described by a GKS–Lindblad master equation

How to simulate large open system dynamics

Calculate the dynamics of a high-dimensional quantum system described by a GKS–Lindblad master equation

How to calculate the steady state of an open quantum system

Compute the long time limit density matrix of Lindblad dynamics from a time-independent generator

How to calculate system dynamics for arbitrary Mølmer–Sørensen gates

Calculate the Mølmer–Sørensen gate evolution characteristics for trapped ions

Verify performance

How to evaluate control susceptibility to quasi-static noise

Characterize the robustness of a control pulse to quasi-static noise

How to calculate and use filter functions for arbitrary controls

Calculate the frequency-domain noise sensitivity of driven controls

Integrate with other tools

How to format and export control solutions for hardware implementation

Prepare optimized controls for hardware implementation

How to import and use pulses from the Q-CTRL Open Controls library

Use pulses from an open-source library in Boulder Opal calculations

How to use QuTiP operators in graphs

Incorporate QuTiP objects and programming syntax directly into graphs

How to integrate Boulder Opal with QUA from Quantum Machines

Integrate Boulder Opal pulses directly into Quantum Machines hardware using the Q-CTRL QUA Adapter

How to manage automated closed-loop hardware optimization with M-LOOP

Use external data management package for simple closed-loop optimizations

Was this useful?

Boulder Opal

Improve your quantum hardware by 100X

Boulder Opal logomark

Need support?

Questions? Problems? Need more info? Contact Q-CTRL Support for assistance!

Learning center

Discover the background, history, and context of Q-CTRL's work in quantum computing and quantum sensing.


Discover pioneering original research from the team at Q-CTRL.

Open Controls

Create and deploy established error-robust quantum control protocols from the open literature with Open Controls.