Giter Club home page Giter Club logo

Comments (5)

aarontrowbridge avatar aarontrowbridge commented on July 1, 2024

the tensor or kron function, seems to be only defined for Kets, Bras, and Operators, is it still necessary to write methods for the super operators

from quantumtoolbox.jl.

albertomercurio avatar albertomercurio commented on July 1, 2024

I can’t figure out what a tensor product between two superoperators should make, physically. So, I think that the definition of tensor product on the superoperators is meaningless

from quantumtoolbox.jl.

aarontrowbridge avatar aarontrowbridge commented on July 1, 2024

It is defined in the qutip permute for these types but i'm not sure how to think about them either atm.

from quantumtoolbox.jl.

ytdHuang avatar ytdHuang commented on July 1, 2024

@albertomercurio @aarontrowbridge

There are some rare situations which we want the SuperOperator to be in block matrix form (easier to analyze the dynamics in some specific topics).

Consider a Operator with sub-systems $A$ and $B$ ($\mathcal{H}_A \otimes \mathcal{H}_B$). The Hilbert space of it's corresponding SuperOperator could be written as:

$$\mathcal{H}_A \otimes \mathcal{H}_B \otimes \mathcal{H}_{A'} \otimes \mathcal{H}_{B'}$$

What I have in my mind is some functions that allow me to obtain the SuperOperator with the following Hilbert space order:

$$\mathcal{H}_A \otimes \mathcal{H}_{A'} \otimes \mathcal{H}_B \otimes \mathcal{H}_{B'}$$

But this could actually be done by transferring the SuperOperator back to Operator form, apply the permute, and then transfer it back to SuperOperator type:

A = Qobj(rand(NA, NA))
B = Qobj(rand(NB, NB))
AB = tensor(A, B)
S = spre(AB) # super operator

op1 = Qobj(S, type = Operator, dims = [NA, NB, NA, NB])
op2 = permute(op1, [1, 3, 2, 4])
S_new = Qobj(op2, type = SuperOperator, dims = [NA, NB])

So, yes !
I think for current stage, we can just focus on permute for Ket, Bra, and Operator types of QuantumObject.

from quantumtoolbox.jl.

aarontrowbridge avatar aarontrowbridge commented on July 1, 2024

@ytdHuang thanks for the feedback! I'm in the process of making all of the changes you suggested. I'm in the process of groking what's going on in the ptrace function as it relates to permutations, it is definitely a more elegant approach than mine!

from quantumtoolbox.jl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.