Download - QuTiPv2s3-ap-northeast-1.amazonaws.com/jrjohansson/web/posters/... · 2015-01-27 · 1 2 ss n t ss ve ve ve ve ve s t s te p s tn t n ve s rs r e rm ve ve ve ve y e e y r e r e cks

Transcript
Page 1: QuTiPv2s3-ap-northeast-1.amazonaws.com/jrjohansson/web/posters/... · 2015-01-27 · 1 2 ss n t ss ve ve ve ve ve s t s te p s tn t n ve s rs r e rm ve ve ve ve y e e y r e r e cks

Data

Type

Hermitian?

Dimensions

Shape

self.dims

If other is Qobj:ManipulatinAddition

SubtractionMultiplication

DivisionDaggerDiagonal

ExponentiationFull

NormSqrtTraceUnit

QuTiP

blo

ch_

red

field

brm

eso

lve

blo

ch_

red

field

_so

lve

blo

ch_

red

field

_te

nso

re

seri

es

ese

rie

se

sva

le

ssp

ec

est

idy

stoc

hast

icss

eso

lve

smes

olve

sses

olve

_gen

eric

smes

olve

_gen

eric

d1_p

si_h

omod

yne

d2_p

si_h

omod

yne

d1_p

si_h

eter

odyn

e

d2_p

si_h

eter

odyn

e

d1_c

urre

nt

d2_c

urre

nt

d1_r

ho_h

omod

yne

d2_r

ho_h

omod

yne

corre

latio

n

corre

latio

n_2o

p_1t

corre

latio

n_2o

p_2t

corre

latio

n_4o

p_1t

corre

latio

n_4o

p_2t

cohe

renc

e_fu

nctio

n_g1

cohe

renc

e_fu

nctio

n_g2

corre

latio

n_ss

corre

latio

n

spectr

um_corre

lation_fft

spectr

um_ss

mesolve

mesolve

odesolve

essolve

essolve

ode2es

floquet

floquet_modes

floquet_modes_t

floquet_modes_table

floquet_modes_t_lookup

floquet_states

floquet_states_t

floquet_wavefunction

floquet_wavefunction_t

floquet_state_decomposition

fsesolvefloquet_master_equation_rates

floquet_collapse_operators

floquet_master_equation_tensor

floquet_master_equation_steadystate

floquet_basis_transform

floquet_markov_mesolve

fmmesolvemcsolve mcsolvesteady steadystatesteadyrhs_generate

rhs_clearrhs_generate

propagator

propagatorpropagator_steadystate

odecheckssettings

resetload_rc_file

odeconfig

Odeconfig

odedata

Odedata

odeoptions

Odeoptions

sphereplot

sphereplot

wigner

wignerqfunc

orbital

orbital

visualization

hinton

matrix_histogram

matrix_histogram

_complex

energy_level_diagram

wigner_cm

ap

fock_distribution

wigner_fock_distribution

bloch3d

Bloch3d

bloch

Arrow

3D

Bloch

tomography

qpt_plot

qpt_plot_combined

qpt

sup

ero

pe

rato

r

liouvillian

liouvillian_fast

ma

t2ve

c

vec2

ma

t

vec2

ma

t_in

de

x

ma

t2ve

c_in

de

x

spo

stsp

re

op

era

tors

jma

tjp

lus

jz

sig

ma

psi

gm

am

sig

ma

xsi

gm

ay

sig

ma

zd

est

roy

cre

ate

qe

yeq

ide

ntit

y

po

sitio

n

mo

me

ntu

mnu

m

sque

ez

sque

ezin

g

disp

lace

qutri

t_op

s

qdia

gsra

ndom

_obj

ects

rand

_her

m

rand

_uni

tary

rand

_ket

rand

_dm

thre

e_le

vel_

atom

thre

e_le

vel_

basi

s

thre

e_le

vel_

ops

states

basi

s

qutri

t_ba

sis

cohe

rent

cohe

rent

_dm

fock

_dmfock

thermal_dm

ket2dm

projection

qstate

state_number_enumerate

state_number_index

state_index_number

state_number_qobj

continuous_variables

correlation_matrix

covariance_matrix

correlation_matrix_field

correlation_matrix_quadrature

wigner_covariance_matrix

logarithmic_negativity

gates

cnotfredkintoffoliswapiswapsqrtiswapsnotphasegate

entropyentropy_vn

entropy_linearconcurrence

entropy_mutual

entropy_conditional metrics

fidelitytracedist expect

expect

single_expect

varianceptrace

qobj

Qobj

qobj_list_evaluatedag

ptracedims

shape

qobj_save

qobj_loadisket

isbra

isoper

issuper

isequal

ischeck

isherm

partial_transpose

partial_transpose

tensor

tensor

simdiag

simdiag

degen

testing

run

ipynbtools

version_table

demos

demos

parfor

parfor

sparse

sp_eigs

fileio

file_data_storefile_data_read

qsa

veq

loa

d

cleb

sch

cleb

sch

utilitie

s

n_

the

rma

llin

spa

ce_

with

ab

ou

ta

bo

ut

QuTiPv2.2

The Quantum Toolbox in Python J.R. Johansson (RIKEN), P.D. Nation (Korea University), F. Nori (RIKEN, U. Michigan)

QuTiP is an open-source software framework for simulating the dynamics of closed and open quantum systems. The QuTiP library depends on the excellent Numpy and Scipy numerical packages. In addition, graphical output is provided by Matplotlib. QuTiP aims to provide user-friendly and efficient numerical simulations of a wide variety of quantum mechanical problems, including those with Hamiltonians and/or collapse operators with arbitrary time-dependence, commonly found in a wide range of physics applications, such as quantum optics, trapped ions, superconducting circuits, semiconducting quantum dots, and quantum nanomechanical resonators. QuTiP is freely available for use and/or modification on all Unix-based platforms and on Windows.

About QuTiP

1. J. R. Johansson, P. D. Nation, and F. Nori, QuTiP 2: A Python framework for the dynamics of open quantum systems. Comp. Phys. Comm. 184, 1234 (2013) 2. J. R. Johansson, P. D. Nation, and F. Nori, QuTiP: An open-source Python framework for the dynamics of open quantum systems. Comp. Phys. Comm. 183, 1760–1772 (2012)

More information and download at: http://www.qutip.org

v. Publications

i - Quantum Objects iii - Time evolution of quantum systems

iv. Visualization

ii. States, operators, gates

A core feature in QuTiP, the Qobj class, provides an representation of quantum objects, such as operators, density matrices, state vectors (bras and kets). In addition, a large number of operations that one commonly need to perform on quantum objects are implemented as methods in the Qobj class. For example:

- artihmetic operations - conjugate and transpose - groundstate, eigenstates and energies - basis transformations - matrix elements - partial trace and partial transpose - extract and eliminate states - matrix exponentiation - norm and normalization

Time evolution of quantum systems is one of the main application areas of QuTiP, which includes solvers for:

- Schrödinger equation: sesolve - Lindblad ME: mesolve - Monte Carlo: mcsolve - Bloch-Redfield ME: brmesolve - Floquet formalism: fsesolve, fmmesolve - Stochastic: ssesolve, smesolve - Steady state: steady, steadystate - Correlation functions: correlation

Dacaying Rabi vacuum oscillations

from qutip import *

N = 10a = tensor(destroy(N), qeye(2))sz = tensor(qeye(N), sigmaz())s = tensor(qeye(N), destroy(2))wc = wq = 1.0 * 2 * pig = 0.5 * 2 * pikappa = 0.25

H = wc * a.dag() * a - 0.5 * wq * sz + 0.5 * g * (a * s.dag() + a.dag() * s)psi0 = tensor(basis(N,1), basis(2,0))result = mesolve(H, psi0, linspace(0, 10, 100), [sqrt(kappa) * a], [a.dag() * a])

Driven qubit, time-dependent Hamiltonian

from qutip import *

epsilon = delta = 1.0psi0 = basis(2,0) # Initial state: ground stateH0 = - delta * sigmaz() - epsilon * sigmax() H1 = - sigmaz()h_t = [H0, [H1, 'A * cos(w*t)']] # Hamiltonianargs = {'A': 10.017, 'w': 0.025*2*pi} e_ops = [sigmax(), sigmay(), sigmaz()] # Expectation values

output = sesolve(h_t, psi0, linspace(0, 160, 500), e_ops, args)

Dissipative evolution, two-qubit iSWAP gate

from qutip import *

g = 1.0 * 2 * pig1, g2, n_th = 0.75, 0.25, 1.5 # dissipation parametersc_ops = []H = g * (tensor(sigmax(), sigmax()) + tensor(sigmay(), sigmay()))

sm1 = tensor(sigmam(), qeye(2)) # qubit 1 collapse operatorssz1 = tensor(sigmaz(), qeye(2))c_ops.append(sqrt(g1 * (1+n_th)) * sm1)c_ops.append(sqrt(g1 * n_th) * sm1.dag())c_ops.append(sqrt(g2) * sz1)

sm2 = tensor(qeye(2), sigmam()) # qubit 2 collapse operatorssz2 = tensor(qeye(2), sigmaz())c_ops.append(sqrt(g1 * (1+n_th)) * sm2)c_ops.append(sqrt(g1 * n_th) * sm2.dag())c_ops.append(sqrt(g2) * sz2)

U = propagator(H, pi/(4*g), c_ops)

Stochastic decay of a single Fock state

from qutip import *

N = 4 # number of basis stateskappa = 1.0/0.129 # coupling to heat bathnth = 0.063 # temperature with <n>=0.063

a = destroy(N) # cavity annihilation operatorH = a.dag() * a # harmonic oscillator Hamiltonianpsi0 = basis(N,1) # initial state

c_op_list = []c_op_list.append(sqrt(kappa * (1 + nth)) * a)c_op_list.append(sqrt(kappa * nth) * a.dag())

ntraj = [1, 5, 15, 904]tlist = linspace(0,0.6,100)

mc = mcsolve(H, psi0, tlist, c_op_list, [a.dag()*a], ntraj)me = mesolve(H, psi0, tlist, c_op_list, [a.dag()*a])

# calculate steady statefinal_state = steadystate(H, c_op_list) fexpt = expect(a.dag()*a, final_state)

# plot results ...

Visualization of quantum states and processes is an important part of QuTiP, which includes a large number of classes and functions for visualization techniques commonly used in quantum mechanics. For example:

Bloch sphere

from qutip import *

b = Bloch()b.add_points([x_vec, y_vec, z_vec])...

Wigner functions

from qutip import *

psi = sum([basis(10, n) for n in [0, 3, 6]]).unit()

w = WignerDistribition(psi)w.visualize()

Process tomography

from qutip import *

op_basis = [[qeye(2), sigmax(), sigmay(), sigmaz()] for i in range(2)]op_labels = [["i", "x", "y", "z"] for i in range(2)]

chi = qpt(U, op_basis)qpt_plot_combined(chi, op_labels)

Quantum objects

>>> psi = Qobj([1, 0]) # create a bra state vector Quantum object: dims = [[1], [2]], shape = [1, 2], type = ket Qobj data = [[ 1. 0.]]

>>> psi.dag() Quantum object: dims = [[2], [1]], shape = [2, 1], type = ket Qobj data = [[ 1.] [ 0.]]

Composite systems

>>> H = tensor(sigmax(), sigmax()) Quantum object: dims = [[2, 2], [2, 2]], shape = [4, 4], type = oper, isherm = True Qobj data = [[ 0. 0. 0. 1.] [ 0. 0. 1. 0.] [ 0. 1. 0. 0.] [ 1. 0. 0. 0.]]

>>> psi = tensor([fock(2, 1), fock(2, 0)])>>> ptrace(psi, 0) Quantum object: dims = [[2], [2]], shape = [2, 2], type = oper, isherm = True Qobj data = [[ 0. 0.] [ 0. 1.]]

QuTiP includes a large library of functions thatcreats Qobj representations of commonquantum states, operators and superoperators:

States: - Coherent states: coherent(N, alpha) - Fock states: fock(N, n) - Thermal states: thermal_dm(N, n_th)

Operators: - Idenity: identity(N) - Annihilation: destroy(N) - Creation: create(N) - Number: num(N) - Displacement: displace(N, alpha) - Pauli operators: sigmax(), sigmay() sigmaz(), sigmam(), sigmap()

- Spin operators: jmat(k, s)

Steady states

H = ... # Hamiltonianc_ops = ... # collapse operatorsrho_ss = steadystate(H, c_ops)

Superoperators: - Liouvillian: liouvillian(H, c_ops) - Pre- and post: spre(op), spost(op)

Floquet energies

from qutip import *

H0 = delta/2.0 * sigmaz() - eps0/2.0 * sigmax()H1 = A/2.0 * sigmax()for idx, A in enumerate(A_vec): H = [H0, [H1, lambda t, w: sin(w*t)]] f_modes, f_energies = \ floquet_modes(H, T, args=omega, True) q_energies[idx,:] = f_energies

http://www.qutip.org

Gates: - Not: cnot(), snot() - Swap: iswap(), swap(), sqrtiswap()

- Phase: phasegate(theta) - 3-qubit gates: fredkin(), toffoli()