Comment #3 on issue 2881 by elliso...@gmail.com: Refactory secondquant to use new quantum modules
http://code.google.com/p/sympy/issues/detail?id=2881

Sean, this is great! I have been meaning to get back to this but hadn't had a chance.

In terms of the fermi level issues, here is my thinking. The most basic definition of fermion creation/anihillation operators makes no reference to the fermi level (the non-interacting ground state of N fermions). You can even write down Wick's theorem for that case. A similar situation holds for Bosons - the general definition makes no reference to the physical ground state of N non-interacting bosons (all N bosons in the ground state = BEC).

Wick's theorem hold in a wide range of situations. Each of those situations uses the notion of Normal ordering. But normal ordering is always defined relative to a given many particle state. Usually you pick the normal ordering so that that expectation value of a normal ordered product of operators in 0. For general fermion/boson operators, that state is the vacuum state. With normal ordering defined relative to the vacuum you can write down a time-indep version of wicks theorem that applies.

When you are using Wick's theorem in other contexts you often need to take the expectation values relative to the non-interacting ground state (fermi gas or BEC). In those situations you define other operators (particle+holes for fermions, scaled operators for bosons) and you normal order those new operators relative to the non interacting ground state. Again, Wick's theorem applies.

From this perspective, it doesn't make sense to hardwire information about the fermi level to Wick's theorem for fermions. We should have a version of Wick's theorem that works with any creation/annihilation operators whose normal ordered products vanish wrt *some* appropriate state. Here is a link to a paper that has a nice summary of this perspective of Wick's theorem:

http://wwwteor.mi.infn.it/~molinari/NOTES/Wick.pdf

But this leaves many questions:

* How do we create a normal ordered product that knows about which state the ordering is with respect to. One of the keys is that the anihillation operator on the state gives 0. * In general, you want to be able to do canonical transformations of c/a operators and use Wick's theorem on the new operators. This would let us handle things like the BCS canonical trans. * We may want to make c/a operators take the "name" of the operator as the first argument. This would allow us to have different fermionic operators for things like particles+holes. * We also may want the c/a operators to take more than one argument for situations where there is more than one index on the operator (space+spin for example). * We might want to create an API whereby the c/a operators can declare what state they anihillate. * We might want to create a normal ordered product that can handle all of these things. * With a properly designed normal ordered product, I think we can write a single Wick's theorem to cover all of these cases.

All of this applies to time-independent operators. We will probably have to create subclasses for the time dependent versions of all these things.





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

Reply via email to