The current Transmon class (qua_qsim.architectures.transmon.Transmon) does not include a readout resonator. However, in realistic systems the transmon is nearly always coupled to a readout resonator.
For this reason, adding a Resonator class that can be attached to the transmon would capture more of the real-life dynamics
Requirements
The resonator should reside in quaqsim.architectures.resonator.py
The transmon (quaqsim.architectures.transmon) should have an optional attribute resonator. If the resonator is attached, the resulting Hamiltonian matrices should have the appropriate dimensions.
You do not necessarily need to implement the demodulation and integration weights features of the QUA measure command
It is sufficient for a program to use the photon count in the resonator as a proxy for the transmon state, as done in a real environment.
Acceptance Criteria
The resonator should be integrated seamlessly, so that the following three QUA experiments produce the following results:
Note: The default implementations of the following experiments use the update_frequency instruction which is not yet implemented. To overcome this, you have two options. The most useful (but more involved) is that you can follow the example of other instructions such as FrameRotation2Pi in how they are compiled, making use of the qiskit.pulse documentation for the final stage of simulation. For example, here is the ShiftFrequency instruction documentation. The other is to perform the frequency sweep outside of the QUA program through the frequency of the drive channel in the channel_map which sets up the experiment.
Resonator Spectroscopy: On a real transmon+resonator, this experiment produces a Lorentzian whose peak is at the resonator's resonance frequency. As long as this script produces a minimum/maximum at the resonator frequency due to coupling with the transmon, it is correct.
Resonator Spectroscopy vs. Amplitude: On a real transmon+resonator, this experiment produces the following shape in the amplitude of the reflected signal.
The current
Transmon
class (qua_qsim.architectures.transmon.Transmon
) does not include a readout resonator. However, in realistic systems the transmon is nearly always coupled to a readout resonator. For this reason, adding aResonator
class that can be attached to the transmon would capture more of the real-life dynamicsRequirements
quaqsim.architectures.resonator.py
quaqsim.architectures.transmon
) should have an optional attributeresonator
. If the resonator is attached, the resulting Hamiltonian matrices should have the appropriate dimensions.Acceptance Criteria
The resonator should be integrated seamlessly, so that the following three QUA experiments produce the following results:
update_frequency
instruction which is not yet implemented. To overcome this, you have two options. The most useful (but more involved) is that you can follow the example of other instructions such as FrameRotation2Pi in how they are compiled, making use of the qiskit.pulse documentation for the final stage of simulation. For example, here is the ShiftFrequency instruction documentation. The other is to perform the frequency sweep outside of the QUA program through the frequency of the drive channel in thechannel_map
which sets up the experiment.Resonator Spectroscopy: On a real transmon+resonator, this experiment produces a Lorentzian whose peak is at the resonator's resonance frequency. As long as this script produces a minimum/maximum at the resonator frequency due to coupling with the transmon, it is correct.
Resonator Spectroscopy vs. Amplitude: On a real transmon+resonator, this experiment produces the following shape in the amplitude of the reflected signal.