Just a collection of improvements in the code surrounding Lindblad Liouvillian setup:
- adjoint() could do at least some inspection of the operator at hand and return an optimized operator. Not sure how useful this is.
- transform() could inspect the operator at hand and apply some optimizations. In particular, it could simply lift value-like operators (laser fields, constants, ...), which makes its use less cumbersome.
- You could have a utility function that takes the bath spectral density at T=0, which has only non-zero values for positive energies, and shifts it to positive temperatures. Maybe this would also tie in with a "framework" for setting up or building up spectral densities from individual terms or so.