sneg icon indicating copy to clipboard operation
sneg copied to clipboard

`number` behaves weirdly with spinless fermion operator

Open thudjx opened this issue 1 year ago • 3 comments

The MWE goes like:

snegspinlessfermionoperators[d];
bs = {d[CR, 1]};
matrixrepresentationop[number[d[1]], bs] 
matrixrepresentationop[nc[d[CR, 1], d[AN, 1]], bs] 

which returns

{{0}}
{{1}}

It seems that the expression generated by number function behaves differently from by the nc. Do I miss something here?

thudjx avatar Mar 08 '23 06:03 thudjx

By default number[d[1]] actually returns nc[d[0,1,0], d[1,1,0]] + nc[d[0,1,1],d[1,1,1]], that is a sum over both spin components (last argument, 0 and 1), while 1 in the middle is a site index. This explains the difference.

On 8 Mar 2023, at 07:11, Jason @.***> wrote:

The MWE goes like:

snegspinlessfermionoperators[d]; bs = {d[CR, 1]}; matrixrepresentationop[number[d[1]], bs] // MatrixForm matrixrepresentationop[nc[d[CR, 1], d[AN, 1]], bs] // MatrixForm which returns

{{0}} {{1}} It seems that the expression generated by number function behaves differently from by the nc. Do I miss something here?

— Reply to this email directly, view it on GitHub https://github.com/rokzitko/sneg/issues/5, or unsubscribe https://github.com/notifications/unsubscribe-auth/AG57NBCPIJFYZU5BGMBOGODW3APHTANCNFSM6AAAAAAVTLYFUE. You are receiving this because you are subscribed to this thread.

rokzitko avatar Mar 08 '23 06:03 rokzitko

I have found that number of a spinless fermion operator is substituted according to the rule, which means the returned operator is in fact has spin component(0) at tail of the index list, which is not shown. A similar case is here: image. This clearifies my question. But I am not sure this is a good idea to represent a spinless fermion, cause we can easily have a two component index list: image The last postion of the index list has some kind of arbitrarity. When it is 0, this position is interpreted as spin and is hidden in the output; while when it is not 0, this position is a solid index and has to be shown.

thudjx avatar Mar 08 '23 07:03 thudjx

Sorry, I missed the fact that this was about spinless operators. Yes, in this case these are assumed to be "spin 0" objects, thus a 0 is appended. I agree, that was a bad design choice (made many years ago..). The best fix is probably to make this silent suppression of trailing index 0 configurable in SnegPPoperator.

rokzitko avatar Mar 08 '23 07:03 rokzitko