Open Quantum Systems

using PiccoloQuantumObjects
using SparseArrays # for visualization

Open quantum systems

We can construct an OpenQuantumSystem with Lindblad dynamics, enabling a user to pass a list of dissipation operators.

PiccoloQuantumObjects.QuantumSystems.OpenQuantumSystemType
OpenQuantumSystem <: AbstractQuantumSystem

A struct for storing open quantum dynamics.

Fields

  • H::Function: The Hamiltonian function: (u, t) -> H(u, t)
  • 𝒢::Function: The Lindbladian generator function: u -> 𝒢(u)
  • H_drift::SparseMatrixCSC{ComplexF64, Int}: The drift Hamiltonian
  • H_drives::Vector{SparseMatrixCSC{ComplexF64, Int}}: The drive Hamiltonians
  • T_max::Float64: Maximum evolution time
  • drive_bounds::Vector{Tuple{Float64, Float64}}: Drive amplitude bounds
  • n_drives::Int: The number of control drives
  • levels::Int: The number of levels in the system
  • dissipation_operators::Vector{SparseMatrixCSC{ComplexF64, Int}}: The dissipation operators
  • time_dependent::Bool: Whether the Hamiltonian has explicit time dependence

See also QuantumSystem.

source

Add a dephasing and annihilation error channel.

H_drives = [PAULIS[:X]]
a = annihilate(2)
dissipation_operators = [a'a, a]
T_max = 10.0
drive_bounds = [(-1.0, 1.0)]
system = OpenQuantumSystem(H_drives, T_max, drive_bounds, dissipation_operators=dissipation_operators)
system.dissipation_operators[1] |> sparse
2×2 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 1 stored entry:
     ⋅          ⋅    
     ⋅      1.0+0.0im
system.dissipation_operators[2] |> sparse
2×2 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 1 stored entry:
     ⋅      1.0+0.0im
     ⋅          ⋅    
Warning

The Hamiltonian part system.H excludes the Lindblad operators. This is also true for functions that report properties of system.H, such as get_drift, get_drives, and is_reachable.

get_drift(system) |> sparse
2×2 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 0 stored entries:
     ⋅          ⋅    
     ⋅          ⋅    

This page was generated using Literate.jl.