Solving time-dependent master equation with different jump operators

50 views
Skip to first unread message

Joan Agusti

unread,
Nov 8, 2021, 6:00:17 AM11/8/21
to QuTiP: Quantum Toolbox in Python
Dear all, 
I have some issues solving a time-depending master equation. 
I know how it works, as I have done it before, but now my problem is a bit different and I am struggling a bit. For the same problem, I can solve it two ways, both of which I am struggling a bit:

1st way:
For a time-dependent single jump operators a(t) and b(t), one just needs L_ops=[[a,f(t)],[b,g(t)], etc.]. My problem is that I have a collective set of jump operators, where just one of them is time-dependent, i.e. a(t)+b. Of course, following the single jump operators logics, it would be L_ops=[[a+b,f(t)]], but this would correspond to a(t)+b(t) (with the same temporal profile), which is not my case. Is it possible to solve this way??

2nd way: I can massage my problem and get two single jump operators L_ops=[[a,f(t)],b]. The problem is that now I get terms that cannot be written in Lindblad form, such as L_m=ab\rho+\rho ab, etc. Here my main problem is when I try to get the Liouvillian out of L_ops. I get this error (I attach the picture)

Could somebody give me some guidance as to how to do it?

Thanks,
Joan


Screenshot 2021-11-08 at 11.59.01.png

Simon Cross

unread,
Nov 15, 2021, 7:35:38 AM11/15/21
to qu...@googlegroups.com
Hi Joan,

You didn't give a full example of what you are trying to achieve, but
the second argument to liouvillian(...), i.e. c_ops, must be a list of
Qobj or QobjEvo items. The items cannot be things like `[a, f(t)]`. So
instead you should write something like:

a_t = QobjEvo([a, f(t)])
c_ops = [a_t, b]
liouvillian(H, c_ops)

Hopefully that will help you make progress.

Yours sincerely,
Simon Cross

Simon Cross

unread,
Nov 15, 2021, 7:37:43 AM11/15/21
to qu...@googlegroups.com
Hi Joan,

> a_t = QobjEvo([a, f(t)])

I just realised that I followed your pseudocode notation here but that
it might be confusing for other readers. The `f(t)` should of course
just be `f` where `f` is a function which takes arguments `f(t,
args)`.

Yours sincerely,
Simon Cross
Reply all
Reply to author
Forward
0 new messages