-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Thermal noise model #4673
Thermal noise model #4673
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't had a chance to review the thermal_noise_model yet.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Replied to comments. Due to the PR structure, changes will be applied in other PRs and bubble up to this one.
A top-level note on OpIdentifier
: I discussed this with @tanujkhattar in #4672, and we concluded that cirq.Gateset
and cirq.GateFamily
were the appropriate structures to use for identifying operations by gate type. Using those types will remove the need for OpIdentifier
, as they can be compared directly with operations.
8d631a1
to
5b6f251
Compare
Rebased and force-pushed to capture changes in the earlier PRs in this sequence. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good. A few tweaks and cleanups and I think we should be ready to merge.
Requesting input on @MichaelBroughton's comments from @dkafri, who wrote the internal version of this code. I could maybe stumble through the linear algebra here, but in particular I'd like to make sure we don't go against any decisions made in the original design of this model. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some comments
Comments have been addressed and this PR is ready for re-review. |
Automerge cancelled: A status check is failing. |
Opened #4796 to track this; re-running checks for now. |
* Remove files for subsequent PRs * Add coverage for OpId * Clarify if-case * snake_case_gamma * Add insertion noise model. * Update to use new match methods * Apply review cleanup * Introduce Thermal noise model. * Align with checks * remove ThermalChannel ref * Answer review comments * Document mutli-type behavior. * qubit_dims -> qubits * Extract methods, clean docstrings * Cache kraus_ops_from_rates * Document edge behaviors. * Handle other qubits nicely Co-authored-by: Cirq Bot <[email protected]>
* Remove files for subsequent PRs * Add coverage for OpId * Clarify if-case * snake_case_gamma * Add insertion noise model. * Update to use new match methods * Apply review cleanup * Introduce Thermal noise model. * Align with checks * remove ThermalChannel ref * Answer review comments * Document mutli-type behavior. * qubit_dims -> qubits * Extract methods, clean docstrings * Cache kraus_ops_from_rates * Document edge behaviors. * Handle other qubits nicely Co-authored-by: Cirq Bot <[email protected]>
* Remove files for subsequent PRs * Add coverage for OpId * Clarify if-case * snake_case_gamma * Add insertion noise model. * Update to use new match methods * Apply review cleanup * Introduce Thermal noise model. * Align with checks * remove ThermalChannel ref * Answer review comments * Document mutli-type behavior. * qubit_dims -> qubits * Extract methods, clean docstrings * Cache kraus_ops_from_rates * Document edge behaviors. * Handle other qubits nicely Co-authored-by: Cirq Bot <[email protected]>
This PR is part of #4640. It adds the
ThermalNoiseModel
, which models thermalization of a qubit - i.e., transitions from the |1) state to the |0) state or vice-versa, or dephasing events.#4672 is a prerequisite for this PR. The only files that need to be reviewed in this PR are:
cirq-core/cirq/devices/...
__init__.py
thermal_noise_model[_test].py