QuTiP: Resolving inconsistent Qobj shapes

816 views Asked by At

This was previously explored in QuTiP TypeError: Incompatible Qobj shapes with tensor product but I'm not sure about the answer there.

Suppose I define A = tensor(qeye(2), qeye(2)) and B = qeye(4), I cannot multiply them because the object shapes are inconsistent.

However, the matrices are of the same dimension and I would like to "flatten" A to allow it to be multiplied by B. If I have a combination of seperable operators and non-seperable ones, how do I use them together? In other words, B cannot be simplified further so what should I do to A to allow them to be multiplied?

EDIT: The clunky looking Qobj(A.data.toarray()) works but I'll leave this open in case someone has a better idea or understands why QuTiP does this.

1

There are 1 answers

0
Turbotanten On BEST ANSWER

Yes using Qobj.data you get the matrix representing the state or operator.

Hence A.data * B.data allows you to multiply them together. Once you've done that you can enclose it in Qobj(A.data * B.data) to make it a quantum object.