qutip_qip.noise
Noise of quantum hardware.
Classes
|
The base class representing noise in a processor. |
|
The noise in the amplitude of the control pulse. |
|
The decoherence on each qubit characterized by two time scales t1 and t2. |
|
The decoherence noise in a processor. |
|
Random noise in the amplitude of the control pulse. |
|
An always-on ZZ cross talk noise with the corresponding coefficient on each pair of qubits. |
- class qutip_qip.noise.ControlAmpNoise(coeff: int | float | integer | floating | list[int | float | integer | floating] | tuple[int | float | integer | floating, ...] | ndarray[tuple[Any, ...], dtype[floating]] | ndarray[tuple[Any, ...], dtype[integer]], tlist: ArrayLike | None = None, indices: list[int | integer] | tuple[int | integer, ...] | ndarray[tuple[Any, ...], dtype[integer]] | None = None)[source]
Bases:
NoiseThe noise in the amplitude of the control pulse.
- Parameters:
- coeffReal | RealSequence
A list of the coefficients for the control Hamiltonians. For available choices, see
qutip.QobjEvo.- tlistarray_like, optional
A NumPy array specifies the time of each coefficient.
- indicesIntSequence, optional
The indices of target pulse in the list of pulses.
- Attributes:
- coeffReal | RealSequence
A list of the coefficients for the control Hamiltonians. For available choices, see
qutip.QobjEvo.- tlistarray_like or None
A NumPy array specifies the time of each coefficient.
- indicesIntSequence or None
The indices of target pulse in the list of pulses.
- class qutip_qip.noise.DecoherenceNoise(c_ops: Qobj | list[Qobj], targets: int | list[int | integer] | tuple[int | integer, ...] | ndarray[tuple[Any, ...], dtype[integer]] | None = None, coeff: list[int | float | integer | floating] | tuple[int | float | integer | floating, ...] | ndarray[tuple[Any, ...], dtype[floating]] | ndarray[tuple[Any, ...], dtype[integer]] | None = None, tlist: ArrayLike | None = None, all_qubits: bool = False)[source]
Bases:
NoiseThe decoherence noise in a processor. It generates lindblad noise according to the given collapse operator c_ops.
- Parameters:
- c_ops
qutip.Qobjor list ofqutip.Qobj The collapse operators representing the dynamics of the noise.
- targetsint or list of int, optional
The indices of qubits that are acted on. Default is on all qubits.
- coefflist of float or bool, optional
A list of the coefficients for the control Hamiltonians.
- tlistarray_like, optional
A NumPy array specifies the time of each coefficient.
- all_qubitsbool, optional
If c_ops contains only single qubits collapse operator,
all_qubits=Truewill allow it to be applied to all qubits.
- c_ops
- Attributes:
- c_opslist of
qutip.Qobj The collapse operators representing the dynamics of the noise.
- targetsint or list of int or None
The indices of qubits that are acted on.
- coeffRealSequence or None
A list of the coefficients for the control Hamiltonians.
- tlistarray_like or None
A NumPy array specifies the time of each coefficient.
- all_qubitsbool
Whether the operator is applied to all qubits.
- c_opslist of
- class qutip_qip.noise.Noise[source]
Bases:
objectThe base class representing noise in a processor. The noise object can be added to
device.Processorand contributes to evolution.- get_noisy_pulses(dims: list[int] | None = None, pulses: list[Pulse] | None = None, systematic_noise: Pulse | None = None) tuple[list[Pulse], Pulse][source]
Return the input pulses list with noise added and the pulse independent noise in a dummy
Pulseobject. This is a template method, a method with the same name and signatures needs to be defined in the subclasses.- Parameters:
- Returns:
- class qutip_qip.noise.RandomNoise(dt: float, rand_gen: Generator, indices: list[int] | None = None, **kwargs)[source]
Bases:
ControlAmpNoiseRandom noise in the amplitude of the control pulse. The arguments for the random generator need to be given as key word arguments.
- Parameters:
- dtfloat
The time interval between two random amplitude. The coefficients of the noise are the same within this time range.
- rand_gen
numpy.random.Generator A numpy random generator, reference
numpy.random, it has to take asizeparameter as the size of random numbers in the output array.- indiceslist of int, optional
The indices of target pulse in the list of pulses.
- **kwargs
Key word arguments for the random number generator.
- Attributes:
- dtfloat
The time interval between two random amplitude. The coefficients of the noise are the same within this time range.
- rand_gen
numpy.random.Generator A numpy random generator, reference
numpy.random.- indiceslist of int or None
The indices of target pulse in the list of pulses.
- **kwargs
Key word arguments for the random number generator.
Examples
>>> gaussnoise = RandomNoise( dt=0.1, rand_gen=np.random.normal, loc=mean, scale=std)
- class qutip_qip.noise.RelaxationNoise(t1: int | float | integer | floating | list[int | float | integer | floating] | tuple[int | float | integer | floating, ...] | ndarray[tuple[Any, ...], dtype[floating]] | ndarray[tuple[Any, ...], dtype[integer]] | None = None, t2: int | float | integer | floating | list[int | float | integer | floating] | tuple[int | float | integer | floating, ...] | ndarray[tuple[Any, ...], dtype[floating]] | ndarray[tuple[Any, ...], dtype[integer]] | None = None, targets: int | integer | list[int | integer] | tuple[int | integer, ...] | ndarray[tuple[Any, ...], dtype[integer]] | None = None)[source]
Bases:
NoiseThe decoherence on each qubit characterized by two time scales t1 and t2.
- Parameters:
- t1: float or list, optional
Characterize the decoherence of amplitude damping for each qubit.
- t2: float or list, optional
Characterize the decoherence of dephasing for each qubit.
- targets: int or list, optional
The indices of qubits that are acted on. Default is on all qubits
- Attributes:
- t1: float or list
Characterize the decoherence of amplitude damping for each qubit.
- t2: float or list
Characterize the decoherence of dephasing for each qubit.
- targets: int or list
The indices of qubits that are acted on.
- get_noisy_pulses(dims: list[int | integer] | tuple[int | integer, ...] | ndarray[tuple[Any, ...], dtype[integer]] | None = None, pulses: list[int | float | integer | floating] | tuple[int | float | integer | floating, ...] | ndarray[tuple[Any, ...], dtype[floating]] | ndarray[tuple[Any, ...], dtype[integer]] | None = None, systematic_noise: Pulse | None = None) tuple[list[Pulse], Pulse][source]
Return the input pulses list with noise added and the pulse independent noise in a dummy
Pulseobject.- Parameters:
- Returns:
- class qutip_qip.noise.ZZCrossTalk(params: dict[str, any])[source]
Bases:
NoiseAn always-on ZZ cross talk noise with the corresponding coefficient on each pair of qubits. The operator acts only one the lowest two levels and is 0 on higher level. Equivalent to
tensor(sigmaz(), sigmaz()).- Parameters:
- paramsdict
Parameters computed from a
SCQubits. Expected keys:"J","wq_dressed_cavity","alpha".
- Attributes:
- paramsdict
The device parameters used to compute ZZ coupling coefficients.
- qutip_qip.noise.process_noise(pulses: list[Pulse], noise_list: list[Noise], dims: int | list[int], t1: float | list[float] | None = None, t2: float | list[float] | None = None, device_noise: bool = False, spline_kind: str | None = None) list[Pulse][source]
Apply noise to the input list of pulses. It does not modify the input pulse, but return a new one containing the noise.
- Parameters:
- pulses: list of :class:`.Pulse`
The input pulses, on which the noise object will be applied.
- noise_list: list of :class:`.Noise`
A list of noise objects.
- dims: int or list
Dimension of the system. If int, we assume it is the number of qubits in the system. If list, it is the dimension of the component systems.
- t1: float or list, optional
Characterize the decoherence of amplitude damping for each qubit. A list of size N or a float for all qubits.
- t2: float or list, optional
Characterize the decoherence of dephasing for each qubit. A list of size N or a float for all qubits.
- device_noise: bool
If pulse independent noise such as relaxation are included. Default is False.
- spline_kind: str, optional
Type of the coefficient interpolation: “step_func” or “cubic”.
- Returns:
- noisy_pulses: list of
Pulse The noisy pulses, including the system noise.
- noisy_pulses: list of