qiskit icon indicating copy to clipboard operation
qiskit copied to clipboard

Add symbolic Gaussian Square Echo to Qiskit Pulse `symbolic_pulses` library

Open miamico opened this issue 2 years ago • 4 comments

Summary

Adding the implementation of a symbolic Gaussian Square Echo pulse

Details and comments

This is a first implementation of a symbolic version of Gaussian square echo pulse. Tests and documentation to be added. I have left the definition of the gap between echo pulses as it was but we may want to look at it more closely. Usually, the two echo pulses are separated by the duration of a single qubit gate which allows to echo the control qubit.

miamico avatar Sep 14 '22 18:09 miamico

Thank you for opening a new pull request.

Before your PR can be merged it will first need to pass continuous integration tests and be reviewed. Sometimes the review process can be slow, so please be patient.

While you're waiting, please feel free to review other open PRs. While only a subset of people are authorized to approve pull requests for merging, everyone is encouraged to review open pull requests. Doing reviews helps reduce the burden on the core team and helps make the project's code better for everyone.

One or more of the the following people are requested to review this:

  • @Qiskit/terra-core

qiskit-bot avatar Sep 14 '22 18:09 qiskit-bot

CLA assistant check
All committers have signed the CLA.

CLAassistant avatar Sep 14 '22 18:09 CLAassistant

I'm glad to see we have other pulse shapes in Qiskit. If this is going to be backend-supported, you may also want to update

qobj converter,

https://github.com/Qiskit/qiskit-terra/blob/f2befd10b1aba6d9369daf4465cffdf75c7da576/qiskit/qobj/converters/pulse_instruction.py#L36-L46

and qpy loader

https://github.com/Qiskit/qiskit-terra/blob/f2befd10b1aba6d9369daf4465cffdf75c7da576/qiskit/qpy/binary_io/schedules.py#L94-L106

I think I have made the changes to those modules to support the GaussianSquareEcho pulse. I have a question though. I see that all the pulses have a corresponding equivalent in the continuous and discrete modules. Should I implement a gaussian square echo pulse there as well?

miamico avatar Sep 15 '22 16:09 miamico

Implementation of waveform counterpart, i.e. continuous and discrete, is not mandatory, because we can get the same array with SymbolicPulse.get_waveform method (but nothing stops you to implement).

nkanazawa1989 avatar Sep 21 '22 02:09 nkanazawa1989

Picking this up again since this PR was merged recently. As it is now, GaussianSquareEcho only contains the Gaussian square pulses without the single qubit gates for the echo. There is a delay between the Gaussian Square pulses with positive and negative amplitudes where the second single qubit gate for the echo would fit. I wonder if we should include these single qubit gates or not. If not, how would we add the single qubit gate needed for the echo in the delay between the Gaussian squares?

miamico avatar Jan 10 '23 19:01 miamico