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

[Feature] Time-dependent Hamevo with noise operators #621

Merged
merged 15 commits into from
Nov 26, 2024

Conversation

chMoussa
Copy link
Collaborator

@chMoussa chMoussa commented Nov 25, 2024

Closes #622 . Adding the noise_operators argument to Hamevo as in Pyqtorch.

TODOs:

  • Add a noise_operators argument to Hamevo
  • Set the conversion to Pyqtorch appropriately (solver, steps, and noise_operators)
  • Add/Fix tests
  • Add docs

Note that one may need to adapt the NoiseHandler class later to set the noise_operators accordingly to the type of analog noise. However, this may require harmonising all noises in all backends. Thus this is left for future work.

@chMoussa chMoussa added the feature New feature or request label Nov 25, 2024
@chMoussa chMoussa self-assigned this Nov 25, 2024
Copy link
Collaborator

@jpmoutinho jpmoutinho left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @chMoussa. I think it would be more consistent to stick to qadence blocks when it comes to interfaces asking for operators.

docs/content/time_dependent.md Show resolved Hide resolved
docs/content/time_dependent.md Outdated Show resolved Hide resolved
Copy link
Collaborator

@RolandMacDoland RolandMacDoland left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @chMoussa thanks for this ! Unsure about how it works though. I thought you had to specify operators but instead you seem to be passing a list of identities ?

docs/content/time_dependent.md Outdated Show resolved Hide resolved
docs/content/time_dependent.md Outdated Show resolved Hide resolved
docs/content/time_dependent.md Outdated Show resolved Hide resolved
tests/backends/pyq/test_time_dependent_generator.py Outdated Show resolved Hide resolved
docs/content/time_dependent.md Outdated Show resolved Hide resolved
@chMoussa
Copy link
Collaborator Author

My main question would be in practice what do users typically use. If it's mainly pauli strings, then it would be much more convenient to do it with Qadence blocks. If they want to use arbitrary matrices, it could also be a use for the MatrixBlock, which has not been used that much.

@jpmoutinho @RolandMacDoland I modified eventually the code to work with a list of blocks as noise operators. We won't support certain cases such as parametric blocks but I left a warning note in docs about using MatrixBlock instead. This is reflected in the tests now. Let me know what you think of it.

Copy link
Collaborator

@jpmoutinho jpmoutinho left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @chMoussa, looking good. I think my main question now is about how general / restrictive should the noise model be. In Pulser only single-qubit jump operators are available. If we don't have that restriction, is that ok?

docs/content/time_dependent.md Show resolved Hide resolved
qadence/backends/pyqtorch/convert_ops.py Show resolved Hide resolved
Copy link
Collaborator

@jpmoutinho jpmoutinho left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, final comment left on the docs but otherwise lgtm.

@chMoussa chMoussa merged commit ff759d3 into main Nov 26, 2024
8 checks passed
@chMoussa chMoussa deleted the cm/analog_noise_pyq branch November 26, 2024 17:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature] Add noise_operators in Hamevo as in Pyqtorch
3 participants