# Fermion site-type operator \`c\`: \`inner()\` indicates \`c\` on different sites commute

**URL:** <https://itensor.discourse.group/t/fermion-site-type-operator-c-inner-indicates-c-on-different-sites-commute/1851>\
**Category:** ITensor Julia Questions\
**Tags:** fermions\
**Created:** [July 2, 2024, 8:15pm UTC](https://itensor.discourse.group/t/fermion-site-type-operator-c-inner-indicates-c-on-different-sites-commute/1851 "2024-07-02T20:15:06Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![christopherdavidwhit](https://yyz2.discourse-cdn.com/free1/user_avatar/itensor.discourse.group/christopherdavidwhit/32/591_2.png) [@christopherdavidwhit](https://itensor.discourse.group/u/christopherdavidwhit)\
**Post date:** [July 3, 2024, 12:09pm UTC](https://itensor.discourse.group/t/fermion-site-type-operator-c-inner-indicates-c-on-different-sites-commute/1851/3 "2024-07-03T12:09:02Z")

</div>

Thanks for linking to [https://itensor.discourse.group/t/proper-way-to-construct-fermion-gates/172:](https://itensor.discourse.group/t/proper-way-to-construct-fermion-gates/172:) afaict it doesn’t solve my problem, but it is a help!

I’m a little confused—where does `OpSum` come into it? AFAICT the only ITensor functions I’ve used are `MPS`, `op` and `apply`, and it’s not obvious to me that any of those is going to call `OpSum`.

Also, you write

> once [I] write `c1 = op("c", ss[1])`, then `c1` is an ITensor and has no knowledge of being fermionic as it has no QNs. The strings are handled at an operator level, so `OpSum` and some of `correlation_matrix` can insert JW strings.

I’m a little confused by this. It doesn’t seem consistent with Miles’ comment in that other thread that `apply` automatically handles the JW string. It also doesn’t seem consistent with the observed behavior: in the code I posted, applying `c` or `cdag`

- changes the _link_ indices at the site at which I apply it, and
- changes tensors at other sites by multiplying in a sign.  
(You can see both of these in the output in my original question.) Is this really the expected behavior for multiplying in an ITensor that doesn’t know anything about JW strings?

Again I’m probably missing something basic?

---

_[View the full topic](https://itensor.discourse.group/t/fermion-site-type-operator-c-inner-indicates-c-on-different-sites-commute/1851)._
