kestrelquantum / QuantumCollocation.jl

Quantum Optimal Control with Direct Collocation
MIT License
30 stars 7 forks source link

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

Open andgoldschmidt opened 3 months ago

andgoldschmidt commented 3 months ago

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).

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.

Part II

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

Importance

1 (lowest)

What does this feature affect?

Other information

No response