# User guides

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

## Basics

- How to monitor activity and retrieve results
- Monitor job status and retrieve results from previously run calculations in Boulder Opal
- How to represent quantum systems using graphs
- Represent quantum systems for optimization, simulation, and other tasks using graphs
- How to calculate and optimize with graphs
- Create graphs for computations with the Q-CTRL Python package
- 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 Q-CTRL 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 Q-CTRL pulses directly into Quantum Machines hardware using the Q-CTRL Python QUA package

## Control optimization

- How to optimize controls in arbitrary quantum systems using graphs
- Highly-configurable non-linear optimization framework for quantum control
- How to tune the parameters of an optimization
- Defining parameters of the optimization using the cost history and early halt conditions
- How to optimize controls with time symmetrization
- Incorporate time symmetry into optimized waveforms
- How to add smoothing and band-limits to optimized controls
- Incorporate smoothing of optimized waveforms
- How to optimize controls with nonlinear dependences
- Incorporate nonlinear Hamiltonian dependences on control signals
- How to perform model-based optimization using a Fourier basis
- Create optimized pulses using CRAB techniques
- How to perform model-based optimization with user-defined basis functions
- Create optimized controls using arbitrary basis functions
- How to optimize controls on large sparse Hamiltonians
- Efficiently perform control optimization on sparse Hamiltonians
- How to optimize controls robust to strong noise sources
- Design controls that are robust against strong time-dependent noise sources with stochastic optimization

## Error-robust quantum logic

- 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 calculate phase and motion dynamics for arbitrarily modulated Mølmer–Sørensen gates
- Calculate the Mølmer–Sørensen gate evolution characteristics for trapped ions

## Simulation

- 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

## Performance evaluation

- 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

## Hardware automation

- 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 manage automated closed-loop hardware optimization with M-LOOP
- Use external data management package for simple closed-loop optimizations
- How to optimize controls starting from an incomplete system model
- Design waveforms using a model-independent reinforcement learning framework

## Hardware characterization

- How to perform noise spectroscopy on arbitrary noise channels
- Reconstructing noise spectra using shaped control pulses
- How to perform Hamiltonian parameter estimation using a small amount of measured data
- Estimate Hamiltonian model parameters using measured data and the graph-based optimization engine
- How to perform Hamiltonian parameter estimation using a large amount of measured data
- Estimate Hamiltonian model parameters using measured data and the graph-based stochastic optimization engine
- How to characterize the bandwidth of a transmission line using a qubit as a probe
- Characterize transmission-line bandwidth via probe measurements and the graph-based optimization engine