mimiqcircuits.operations.noisechannel.standards.phaseamplitudedamping¶
Classes
|
One-qubit phase amplitude damping noise channel. |
|
One-qubit thermal noise channel. |
- class mimiqcircuits.operations.noisechannel.standards.phaseamplitudedamping.ThermalNoise(T1, T2, time, ne)[source]¶
Bases:
krauschannelOne-qubit thermal noise channel.
The thermal noise channel is equivalent to the
PhaseAmplitudeDampingchannel, but it is parametrized instead as:\[\begin{split}\mathcal{E}(\rho) = \begin{pmatrix} e^{-\Gamma_1 t}\rho_{00} + (1-n_e)(1-e^{-\Gamma_1 t}) & e^{-\Gamma_2 t}\rho_{01} \\ e^{-\Gamma_2 t}\rho_{10} & e^{-\Gamma_1 t}\rho_{11} + n_e(1-e^{-\Gamma_1 t}) \end{pmatrix}\end{split}\]where \(\Gamma_1 = 1/T_1\) and \(\Gamma_2 = 1/T_2\), and the parameters must fulfill \(T_1 \geq 0\), \(T_2 \leq 2 T_1\), \(t \geq 0\), and \(0 \leq n_e \leq 1\).
These parameters can be related to the ones used to define the
PhaseAmplitudeDampingchannel through \(p = 1-n_e\), \(\gamma = 1-e^{-\Gamma_1 t}\), and \(\beta = \frac{1}{2}(1-e^{-(\Gamma_2-\Gamma_1/2)t})\).See also
PhaseAmplitudeDamping,AmplitudeDamping,GeneralizedAmplitudeDamping.- Parameters:
T₁ (float) – Longitudinal relaxation rate, must be greater than or equal to 0.
T₂ (float) – Transversal relaxation rate, must be less than or equal to 2 * T₁.
t (float) – Time duration of the gate, must be greater than or equal to 0.
nₑ (float) – Excitation fraction when in thermal equilibrium with the environment, must be in the range [0, 1].
Examples
>>> from mimiqcircuits import * >>> c = Circuit() >>> c.push(ThermalNoise(0.5, 0.6, 1.2, 0.3), 1) 2-qubit circuit with 1 instruction: └── ThermalNoise(0.5, 0.6, 1.2, 0.3) @ q[1]
- krausmatrices()[source]¶
Returns the Kraus matrices associated with the given Kraus channel.
A mixed unitary channel is written as:
\[\mathcal{E}(\rho) = \sum_k p_k U_k \rho U_k^\dagger,\]where \(U_k\) are the unitary matrices returned by this function.
If the Kraus channel is parametric, the matrix elements are wrapped in a symengine or sympy object.
- Returns:
A list of symengine matrices representing the Kraus operators.
- Return type:
- krausoperators()[source]¶
Returns the Kraus operators associated with the given Kraus channel.
This should be implemented for each specific channel.
- Returns:
A list of matrices representing the Kraus operators.
- Return type:
- property parnames¶
- class mimiqcircuits.operations.noisechannel.standards.phaseamplitudedamping.PhaseAmplitudeDamping(p, gamma, beta)[source]¶
Bases:
krauschannelOne-qubit phase amplitude damping noise channel.
This channel is defined by:
\[\begin{split}\mathcal{E}(\rho) = \begin{pmatrix} (1-\gamma)\rho_{00} + \gamma p & (1-2\beta)\sqrt{1-\gamma}\rho_{01} \\ (1-2\beta)\sqrt{1-\gamma}\rho_{10} & (1-\gamma)\rho_{11} + (1-p)\gamma \end{pmatrix}\end{split}\]Here, \(p, \gamma, \beta \in [0,1]\).
This channel is equivalent to a GeneralizedAmplitudeDamping(p, gamma) channel (see
GeneralizedAmplitudeDamping), followed by a PauliZ(beta) channel (seePauliZ).Use
krausmatrices()to see a Kraus matrix representation of the channel.See also
AmplitudeDamping,GeneralizedAmplitudeDamping,ThermalNoise.- Parameters:
Examples
>>> from mimiqcircuits import * >>> c = Circuit() >>> c.push(PhaseAmplitudeDamping(0.1, 0.2, 0.3), 1) 2-qubit circuit with 1 instruction: └── PhaseAmplitudeDamping(0.1, 0.2, 0.3) @ q[1]
- krausmatrices()[source]¶
Returns the Kraus matrices associated with the given Kraus channel.
A mixed unitary channel is written as:
\[\mathcal{E}(\rho) = \sum_k p_k U_k \rho U_k^\dagger,\]where \(U_k\) are the unitary matrices returned by this function.
If the Kraus channel is parametric, the matrix elements are wrapped in a symengine or sympy object.
- Returns:
A list of symengine matrices representing the Kraus operators.
- Return type:
- krausoperators()[source]¶
Returns the Kraus operators associated with the given Kraus channel.
This should be implemented for each specific channel.
- Returns:
A list of matrices representing the Kraus operators.
- Return type:
- property parnames¶