qat.quops.ParametricAmplitudeDamping

class qat.quops.ParametricAmplitudeDamping(T_1, channel_repr=ChannelRepresentations.KRAUS)

Implementation of the amplitude damping channel

Its Kraus operators are:

\[\begin{split}E_{0}(t)&=|0\rangle\langle0|+\sqrt{1-p(t)}|1\rangle\langle1|=\left(\begin{array}{cc} 1 & 0\\ 0 & \sqrt{1-p(t)} \end{array}\right)\\ E_{1}(t)&=\sqrt{p(t)}|0\rangle\langle1|=\left(\begin{array}{cc} 0 & \sqrt{p(t)}\\ 0 & 0 \end{array}\right)\end{split}\]

with \(p(t) = 1 - \exp\left(-t/T_1\right)\), where \(T_1\) is the relaxation time.

Each instance of this class has a call operator that returns the channel corresponding to a given duration.

Note

This form of amplitude damping implicitly assumes a Lindblad approximation (white noise spectral function)

Parameters

T_1 (float) – relaxation time

Example:

from qat.quops import ParametricAmplitudeDamping
ad = ParametricAmplitudeDamping(T_1=5)
# return channel corresponding to applying this amplitude damping channel for 2 units of time:
print(ad(tau=2))
AmplitudeDamping, T_1=5, t=2:
[[1.        +0.j 0.        +0.j]
 [0.        +0.j 0.81873075+0.j]]
[[0.        +0.j 0.57417763+0.j]
 [0.        +0.j 0.        +0.j]]

T_1

relaxation time

Type

float

name

name of channel

Type

string

prob(t)

Error probability function \(p(t)\)

Parameters

t (float) – time

Returns

probability \(p(t)\)

Return type

float