-
Notifications
You must be signed in to change notification settings - Fork 31
Introduce QobjEvo and use SciMLOperators for time evolution
#266
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
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ytdHuang
reviewed
Oct 16, 2024
ytdHuang
reviewed
Oct 16, 2024
ytdHuang
reviewed
Oct 16, 2024
ytdHuang
reviewed
Oct 16, 2024
ytdHuang
reviewed
Oct 16, 2024
ytdHuang
reviewed
Oct 16, 2024
ytdHuang
reviewed
Oct 16, 2024
ytdHuang
reviewed
Oct 16, 2024
ytdHuang
reviewed
Oct 16, 2024
6bdb2e8 to
db80e1b
Compare
ytdHuang
reviewed
Oct 17, 2024
ytdHuang
reviewed
Oct 17, 2024
ytdHuang
reviewed
Oct 17, 2024
ytdHuang
reviewed
Oct 19, 2024
ytdHuang
reviewed
Oct 19, 2024
ytdHuang
reviewed
Oct 19, 2024
ytdHuang
reviewed
Oct 19, 2024
ytdHuang
reviewed
Oct 19, 2024
ytdHuang
reviewed
Oct 19, 2024
ytdHuang
reviewed
Oct 21, 2024
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #266 +/- ##
==========================================
+ Coverage 93.41% 93.80% +0.39%
==========================================
Files 31 32 +1
Lines 2337 2422 +85
==========================================
+ Hits 2183 2272 +89
+ Misses 154 150 -4 ☔ View full report in Codecov by Sentry. |
ytdHuang
reviewed
Oct 22, 2024
ytdHuang
reviewed
Oct 22, 2024
ytdHuang
approved these changes
Oct 22, 2024
ytdHuang
reviewed
Oct 22, 2024
ytdHuang
reviewed
Oct 22, 2024
ytdHuang
reviewed
Oct 22, 2024
ytdHuang
reviewed
Oct 22, 2024
ytdHuang
reviewed
Oct 22, 2024
albertomercurio
added a commit
to albertomercurio/QuantumToolbox.jl
that referenced
this pull request
Nov 10, 2024
…p#266) * First working implementation * Minor changes * First working case of sesolve * Minor changes * Rebase commits * Apply Yi-Te comments * Working mesolve * Make dsf_mesolve and dfd_mesolve work * Minor changes * Working version of ssesolve * Remove sleep in runtests * Remove OperatorSum and TimeDependentOperatorSum * Remove alg as argument from all problem definitions * First working runtests * Add tests for QObjEvo and time evolution * Add docstrings to documentation * Reduce tolerance for stochastic runtests * Make runtests multithreaded and reduce time for timeevolution tests * Add QobjEvo tests and minor changes * Update docstrings * Add comment on the use of MatrixOperator
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
With this PR I remove the obsolete operators like
OperatorSumandTimeDependentOperatorSum, by introducing theQobjEvooperator, like in python. Thisstructtakes advantage of the SciMLOperators.jl ecosystem, in order to handle in a lazy way complex operators like sum of them and time-dependent ones.The
ObjEvois andAbstractQuantumObject, with the same fields as theQuantumObject, so they share many of the methods.The introduction of using SciMLOperators.jl would push us towards the support of automatic differentiation of
sesolve,mesolveandmcsolve, allowing the possibility to make quantum optimal control very efficiently.I made this PR to improve the performance of complex
SciMLOperatorslike our sum of time-dependent operators. So, we have to wait for a new release of the package first.Todo list:
QobjEvooperatortlistfrom the parameters, and add it directly as argumentTimeEvolutionSoltype-stablet_lwith a more readabletlistOperatorSumandTimeDependentOperatorSumsesolvewith the support toQobjEvomesolvewith the support toQobjEvomcsolvewith the support toQobjEvossesolvewith support toQobjEvoalgas argument for all the Problem functionsI will add the documentation in the next PRs. This one is already heavy.