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]: An extension package for QuantumOptics.jl #147

Open
2 of 15 tasks
andgoldschmidt opened this issue Aug 14, 2024 · 0 comments
Open
2 of 15 tasks

[Feature]: An extension package for QuantumOptics.jl #147

andgoldschmidt opened this issue Aug 14, 2024 · 0 comments
Labels
enhancement New feature or request good first issue Good for newcomers qnumerics Issue for qnumerics hackathon

Comments

@andgoldschmidt
Copy link
Member

andgoldschmidt commented Aug 14, 2024

Feature Description

Background

QuantumOptics.jl has lots of very cool features we would love to interact with, but sadly, not every user will add quantum optics to their environment. We want to build the core of Piccolo.jl to be independent of the features in a user's desired quantum numerics package, while also making the interaction with such a package easy.

Part I

An extension package allows us to create features that get added for any users fortunate enough to also have QuantumOptics.jl in their environment, https://pkgdocs.julialang.org/v1/creating-packages/#Conditional-loading-of-code-in-packages-(Extensions).

  • Implement module QuantumOpticsExt

One nice feature of extensions is we can handle name conflicts. In module QuantumObjectUtils we export , create, and annihilate. We can use our extensions package to handle the fact that QuantumOptics.jl also has similar functions. The purpose of the module QuantumUtils to ``module QuantumObjectUtils` refactor was to create a file containing only the potentially conflicting quantum information utilities.

  • use module QuantumOpticsExt to handle potential name conflicts for , create, and annihilate

Part II

A few basic features will showcase the help that QuantumOptics.jl provides. Consider implementing:

  • quantum system construction from QuantumOptics operator
  • embedded operator construction from QuantumOptics operator and basis
  • rollouts using Piccolo trajectories and quantum systems, with QuantumOptics time evolution
  • noisy rollouts using the previous rollouts, with QuantumOptics master equations (e.g. allow a user to specify Lindblad operators from QuantumOptics)

Importance

1 (lowest)

What does this feature affect?

  • quantum system construction
  • problem setup
  • problem solution
  • problem performance
  • solution analysis
  • plotting
  • documentation
  • tests
  • other (please specify below)

Other information

No response

@andgoldschmidt andgoldschmidt added enhancement New feature or request good first issue Good for newcomers qnumerics Issue for qnumerics hackathon labels Aug 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers qnumerics Issue for qnumerics hackathon
Projects
None yet
Development

No branches or pull requests

1 participant