operators in number restricted space

86 views
Skip to first unread message

Rafael Barfknecht

unread,
Apr 20, 2021, 2:30:50 PM4/20/21
to QuTiP: Quantum Toolbox in Python
Hello all, 

The function enr_destroy(dimsexcitations) constructs the annihilation operators in a restricted particle number space. To quote from the manual,

"If we are only interested in states that contain up to 2 excitations, we only need to include states such as

(0, 0, 0, 0) (0, 0, 0, 1) (0, 0, 0, 2) (0, 0, 1, 0) (0, 0, 1, 1) (0, 0, 2, 0) …

This function creates annihilation operators for the 4 modes that act within this state space:

a1, a2, a3, a4 = enr_destroy([5, 5, 5, 5], excitations=2)".

The function works very well to reduce the size of the Hilbert space. But what if I want to further reduce it by only including states with a certain number of excitations, that is

(0,0,1,1), (0,0,0,2), (1,0,1,0), ...?

Is there any option in QuTip to address this?

Best regards,

Rafael

Neill Lambert

unread,
Apr 22, 2021, 10:25:40 PM4/22/21
to qu...@googlegroups.com
hi Rafael,

 
The function works very well to reduce the size of the Hilbert space. But what if I want to further reduce it by only including states with a certain number of excitations, that is

(0,0,1,1), (0,0,0,2), (1,0,1,0), ...?

Is there any option in QuTip to address this?


I don't think there is an existing straightforward way to do it....   In this case I guess you have a model which conserves excitation number, so you have something like a Hamiltonian and collapse operators which only connect states with the same number of excitations?  You can edit enr_state_dictionaries() and state_number_enumerate() to only return a dictionary of states as you describe pretty easily, but in that case, I think defining a destruction operator on just one of your systems doesn't work straightforwardly because it would take you out of that set of states.  so I guess you would have to define some custom operators which just move excitations around between subsystems, which is doable I guess, but like with the standard ENR stuff, or PIQs, would need some custom functions.

Maybe there is good generic way to do it, could be fun to try, though depending on your problem it might just be easier to write your original problem as a finite basis, and just modify your hamiltonian and collapse operators to take into account the influence of excitation numbers and stuff (like with Dicke states, for example)?

thanks
neill


ahmed ghareeb

unread,
Apr 25, 2021, 7:34:20 PM4/25/21
to qu...@googlegroups.com
Hallo all
I think this issue helpful for many topics 
 Actually it has been used in Heirrarchy equation of motion (Heom)
And heirrarchy of pure state (Hops)
to reduced the size of problem 

See


Actually I tried it on heom 
But in Mathematica

you can see python implementation 
For related issue used for vibronic excitation for mode and number particle 
See


--
You received this message because you are subscribed to the Google Groups "QuTiP: Quantum Toolbox in Python" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qutip+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/qutip/CAKKp-tOS3qHsLVUNrKMpvCqZbe2QbjQ-c83FyoZfPZ9UihamdA%40mail.gmail.com.

Rafael Barfknecht

unread,
Apr 26, 2021, 10:13:36 AM4/26/21
to QuTiP: Quantum Toolbox in Python
Dear all,

Thanks for the reply.

@neill: my first idea was also to try and adapt some function to implement that excitation number conservation, but to be honest I am not sure how to do it, specially with qutip being installed through anaconda.

It would probably be best to rewrite the Hamiltonian in that restricted space and then proceed with the calculations. Is there some example of how this is done with qutip? For instance, writing a basis with a conserved number of excitations and then defining the relevant operators in this basis? Can this be done with qutip functions?

Best wishes,

Rafael
Reply all
Reply to author
Forward
0 new messages