[docs]classNoiselessNoiseModel(NoiseModel):"""Noiseless noise model for testing. Only return the identity channel. :param NoiseModel: Parent abstract class class:`graphix.noise_model.NoiseModel` :type NoiseModel: class """
[docs]defprepare_qubit(self):"""return the channel to apply after clean single-qubit preparation. Here just identity."""returnKrausChannel([{"coef":1.0,"operator":np.eye(2)}])
[docs]defentangle(self):"""return noise model to qubits that happens after the CZ gats"""returnKrausChannel([{"coef":1.0,"operator":np.eye(4)}])
[docs]defmeasure(self):"""apply noise to qubit to be measured."""returnKrausChannel([{"coef":1.0,"operator":np.eye(2)}])
[docs]defbyproduct_x(self):"""apply noise to qubits after X gate correction"""returnKrausChannel([{"coef":1.0,"operator":np.eye(2)}])
[docs]defbyproduct_z(self):"""apply noise to qubits after Z gate correction"""returnKrausChannel([{"coef":1.0,"operator":np.eye(2)}])
[docs]defclifford(self):"""apply noise to qubits that happens in the Clifford gate process"""returnKrausChannel([{"coef":1.0,"operator":np.eye(2)}])
[docs]deftick_clock(self):"""notion of time in real devices - this is where we apply effect of T1 and T2. we assume commands that lie between 'T' commands run simultaneously on the device. """pass