-
Notifications
You must be signed in to change notification settings - Fork 31
Generalize the definition of liouvillian
#541
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
base: main
Are you sure you want to change the base?
Conversation
-1im * (_spre(H, Id) - _spost(H, Id)) | ||
-1im * _spre(H, Id) + 1im * _spost(H', Id) # without extracting the prefactor -1im seems to be better for AbstractSciMLOperator | ||
_liouvillian(H::MatrixOperator, Id::AbstractMatrix) = MatrixOperator(_liouvillian(H.A, Id)) | ||
_liouvillian(H::ScaledOperator, Id::AbstractMatrix) = ScaledOperator(H.λ, _liouvillian(H.L, Id)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can remove the implementation for ScaledOperator
, since it should just call the first method (for AbstractSciMLOperator
)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually by removing this we have issues with Enzyme.jl
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok we actually need it, otherwise we don't apply conj
to the ScalarOperator. This creates some errors in Enzyme.jl
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #541 +/- ##
==========================================
+ Coverage 93.15% 93.95% +0.79%
==========================================
Files 51 51
Lines 3566 3558 -8
==========================================
+ Hits 3322 3343 +21
+ Misses 244 215 -29 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
When this PR will be merged the code should not show these error anymore. |
Checklist
Thank you for contributing to
QuantumToolbox.jl
! Please make sure you have finished the following tasks before opening the PR.make test
.julia
formatted by running:make format
.docs/
folder) related to code changes were updated and able to build locally by running:make docs
.CHANGELOG.md
should be updated (regarding to the code changes) and built by running:make changelog
.Request for a review after you have completed all the tasks. If you have not finished them all, you can also open a Draft Pull Request to let the others know this on-going work.
Description
Start from
QuTiP v5.2.1
, they have generalize the definition ofliouvillian
assee also the PR in
qutip
: qutip/qutip#2658That is, we should not expect the Hamiltonian to be Hermitian. This could be beneficial for people working on non-Hermitian physics.
All the test passes, the only problem is the type instability from our original test:
This is super weird cause I only change the definition of
liouvilian
, how come itfails
forc_ops2
butpass
forc_ops1
.