Skip to content
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

pulse sequence #919

Open
AbdullahKazi500 opened this issue Mar 17, 2024 · 2 comments
Open

pulse sequence #919

AbdullahKazi500 opened this issue Mar 17, 2024 · 2 comments
Labels
enhancement New feature or request

Comments

@AbdullahKazi500
Copy link

AbdullahKazi500 commented Mar 17, 2024

Is your feature request related to a problem? Please describe.
Sequence.delay() Enhancement:
Currently, there may be scenarios where users need to ensure that the system remains at rest after executing a sequence of pulses. However, manually calculating and inserting delays between pulses can be error-prone.
By adding the at_rest argument to the Sequence.delay() method, users can conveniently specify whether a delay should be automatically inserted after the last pulse, simplifying the process of creating sequences with resting periods.

The existing Pulse class may not provide direct access to the full duration of pulses, especially when considering factors such as modulation or special execution modes like EOM mode for square pulses.
we need some method which will enables users to accurately determine the total duration of pulses, including any modulation effects or execution mode considerations. This enhances the precision and reliability of pulse timing in experiments.
Describe the solution you'd like

Add a new optional argument at_rest: bool = False to the Sequence.delay() method signature.
When at_rest is set to True, the Sequence will automatically insert a delay command after the last pulse has finished, ensuring that the system is left at rest.
This enhancement provides users with more control over the timing and behavior of sequences, especially in scenarios where a resting period is required after pulse execution.
Pulse.get_full_duration() Method:

Add a new method Pulse.fullduration() to the Pulse class.
This method will calculate and return the full duration of the pulse, taking into account any modulation or special modes of execution
By providing access to the full duration of the pulse, users can accurately plan and synchronize sequences, ensuring precise timing in their experiments.

Additional context
Users can easily specify resting periods between pulses without manual calculation.
Access to the full duration of pulses allows for precise timing and synchronization in experiments.
These enhancements simplify the process of creating and managing sequences, making it easier for users to define complex timing requirements.

Update the Sequence.delay() method signature to include the at_rest argument and implement the logic to insert a delay if required.
Implement the Pulse.fullduration() method to accurately calculate the full duration of pulses, considering any modulation or execution modes.
Update documentation and examples to demonstrate the usage of these new features.
Conduct thorough testing to ensure the reliability and accuracy of the implemented enhancements.
Ensure that these enhancements are backward compatible with existing code and do not introduce any breaking changes.
Performance: Optimize the implementation to minimize computational overhead and maintain efficiency, especially for large sequences or complex pulse configurations.

@AbdullahKazi500 AbdullahKazi500 added the enhancement New feature or request label Mar 17, 2024
@AbdullahKazi500 AbdullahKazi500 changed the title Enhance Sequence.delay() and Pulse.get_full_duration() Methods Enhance Sequence.delay() and Pulse.full_duration() Methods Mar 17, 2024
@AbdullahKazi500 AbdullahKazi500 changed the title Enhance Sequence.delay() and Pulse.full_duration() Methods pulse sequence Mar 17, 2024
@weinbe58
Copy link
Member

weinbe58 commented Apr 6, 2024

hi @AbdullahKazi500

Can you explain what you mean by "at rest" with an example? for example, do you mean you want to have the pulse sequence remain constant for a duration?

@AbdullahKazi500
Copy link
Author

Yes @weinbe58

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants