-
Notifications
You must be signed in to change notification settings - Fork 10
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
General operator instead of ladder opertors #16
Comments
In principle, it would be possible to add a general operator as an abstract object that does not commute with anything else. However, this would probably require some changes in the logic (e.g., it would have to be ignored when considering whether an expression is normal ordered). Could you explain the use case in a bit more detail? If you "just" want to simplify the Lindbladian |
My end goal is to compute the e.o.m. of the expectation value of the ladder operators of an open quantum system. Suppose we have the system given by time evolution To compute the e.o.m. of ladder operator we have to compute trace So just implementing the concept of an general operator as an abstract object that does not commute with anything else will be enough. I guess the challenge will be to implement the simplification of the trace. I managed to implement what I need in Mathematica with the |
Ok thanks. I assumed that this might be the end goal. Calculating these equations of motion does not actually require definition of a general or density matrix operator, as you can directly obtain them from the equations of motion in the Heisenberg picture (see, e.g., https://en.wikipedia.org/wiki/Lindbladian#Heisenberg_picture). You should be able to evaluate these directly with QuantumAlgebra, but I might add a routine for this as it comes up many times. I'll keep the issue open until I've done so. |
The
Quick example: julia> using QuantumAlgebra
julia> QuantumAlgebra.auto_normal_form()
julia> H = Pr"ω"*adag()*a();
julia> Ls = ( (Pr"κ"*(1+Pr"n"), a()), (Pr"κ"*Pr"n", adag()) );
julia> heisenberg_eom(a(),H,Ls)
-1//2 κ a() - 1i ω a()
julia> heisenberg_eom(adag()a(),H,Ls)
n κ - κ a†() a() |
Wow, super cool! Thanks for following this up. This will sure be useful for later and enhances the capabilities of the package. |
I am trying to compute the Lindbladian for a quantum system using the QuantumAlegbra.jl package. The calculation requires me to compute commutators between the density matrix/operator and ladder operators. However, the package currently only provides the functionality to describe ladder operators, and not to compute commutators with them and the density matrix/operator.
I would be willing to help implement this functionality if it is not too difficult. Please let me know if this is something that can be added to the package.
The text was updated successfully, but these errors were encountered: