qiskit-aer
qiskit-aer copied to clipboard
handle T2 > 2*T1 and clarify terminology
Summary
- replaces the NoiseError when
T2 > 2*T1
with a warning and a line that capsT2
at the2*T1
limit - clarifies some terminology issues i happened to notice while doing the above
Details and comments
Since T1 and T2 are typically measured at different times, it's not that uncommon for the most recently reported T2 to exceed the limit given by the most recently reported T1. Rather than treating this as an error, it seems better to just cap T2 at the physical limit and emit a warning.
While at it, I replaced some terms to clarify that T2 is the overall coherence time, not the relaxation time (T1) or the dephasing time (T_phi).
Thanks, @dtmcclure (sorry for slow response). I'm all for improving terminology.
Also the upgrade in handling of T2 value makes sense to me.
In current API, callers of thermal_relaxation_error
has responsibility to truncate T2 value and a private utility function _truncate_t2_value is provided. Raising errors in the case of T2 > 2 * T1 may be a bit beneficial (error-pruning) for users who provide T2 value by hand while the internal truncation (proposed in this PR) may be convenient for users who pass T2 values experimentally measured (not always need to write thermal_relaxation_error(t1, _truncate_t2_value(t1, t2), time)
). I now lean to weight the latter benefit. I agree the change but it should be well documented.
Could you update docstring to mention the new spec (truncation of T2 to 2 * T1) and add a release note to tell the upgrade (raise an error -> silent truncation in the case of T2 > 2 * T1)?