This pull request definitely needs some attention.  I don't have any
time to work on it right now, but it shouldn't be too difficult to
finish.

On Mon, Aug 27, 2012 at 10:35 AM, Uğur Güney <[email protected]> wrote:
> Dear Aaron,
>
> Thanks for your help on automation! Because I've a big operator in the form:
>
> c_1*projUV_1* + c_2*projUV_2 + ...
>
> Now I can apply the Mul(*c)*qapply(tensor_product_simp(Mul(*nc))) on each
> term in a loop. ^_^ I'll try it tonight. I think it would be better if
> qapply handles this stuff by itself but the workaround is fine with me.
>
> Have a good day!
>
> vug
>
> On Sat, Aug 25, 2012 at 2:29 PM, Aaron Meurer <[email protected]> wrote:
>>
>> I'd say this is a bug.  It looks like it's been fixed at
>> https://github.com/sympy/sympy/pull/1053.  That PR seems to have been
>> stalled, so maybe you could see what needs to be done.
>>
>> An obvious work-around is to pull out the 2 from the qapply:
>>
>> In [19]: print 2*qapply(tensor_product_simp(projUV*vecUV)) # the
>> number stops the machinery
>> 2*<u1|u2>*<v1|v2>*|u1>x|v1>
>>
>> You can use args_cnc to help automate this:
>>
>> In [22]: a = (2*projUV*vecUV)
>>
>> In [24]: a.args_cnc()
>> Out[24]: [[2], [❘u₁⟩⟨u₁❘⨂ ❘v₁⟩⟨v₁❘, ❘u₂⟩⨂ ❘v₂⟩]]
>>
>> In [26]: c, nc = a.args_cnc()
>>
>> In [27]: Mul(*c)*qapply(tensor_product_simp(Mul(*nc)))
>> Out[27]: 2⋅⟨u₁❘u₂⟩⋅⟨v₁❘v₂⟩⋅❘u₁⟩⨂ ❘v₁⟩
>>
>> (by the way, we should have an as_commutative_noncommutative method)
>>
>> I guess that won't work if you need to do factorization, but there are
>> other methods that can help you there too (like factor_terms).
>>
>> I hope someone who actually knows the quantum stuff will point it out
>> if something I said above is wrong.
>>
>> Aaron Meurer
>>
>> On Sat, Aug 25, 2012 at 9:13 AM, Uğur Güney <[email protected]> wrote:
>> > Hi All!
>> >
>> > I am working on a research problem and wanted to use sympy's quantum
>> > module
>> > to do the calculations, because sympy has abstract Ket objects on which
>> > one
>> > can do many operations without assigning them actual values. I come up
>> > with
>> > a difficulty
>> >
>> > Say I have two Hilbert spaces U and V and on each space I have two
>> > vectors
>> >
>> > from sympy import *
>> > from sympy.physics.quantum import *
>> >
>> > u1=Ket('u1')
>> > u2=Ket('u2')
>> > v1=Ket('v1')
>> > v2=Ket('v2')
>> >
>> > projU = u1*u1.dual # a projection operator on u1
>> > print qapply(2*projU*u2) # qapply works as expected
>> > projV = v1*v1.dual # an operator on V
>> > projUV = TensorProduct(projU, projV) # operator on UV
>> > vecUV = TensorProduct(u2,v2) # vector in UV
>> > print qapply(tensor_product_simp(projUV*vecUV)) # works as expected
>> > again
>> > print qapply(tensor_product_simp(2*projUV*vecUV)) # the number stops the
>> > machinery
>> >
>> > outputs:
>> > 2*<u1|u2>*|u1>
>> > <u1|u2>*<v1|v2>*|u1>x|v1>
>> > 2*(|u1><u1|*|u2>)x(|v1><v1|*|v2>)
>> >
>> > I'll be glad if you can tell me how I can qapply on expressions in the
>> > form
>> > x*projUV*vecUV.
>> >
>> > Have a good day!
>> > ugur
>> >
>> >
>> >
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "sympy" group.
>> > To post to this group, send email to [email protected].
>> > To unsubscribe from this group, send email to
>> > [email protected].
>> > For more options, visit this group at
>> > http://groups.google.com/group/sympy?hl=en.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sympy" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/sympy?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/sympy?hl=en.



-- 
Brian E. Granger
Cal Poly State University, San Luis Obispo
[email protected] and [email protected]

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to