diff --git a/docs/src/lib/sectors.md b/docs/src/lib/sectors.md index bfdd9c6f..3907b58a 100644 --- a/docs/src/lib/sectors.md +++ b/docs/src/lib/sectors.md @@ -15,6 +15,7 @@ ZNIrrep U1Irrep SU2Irrep CU1Irrep +FermionParity FibonacciAnyon FusionTree ``` diff --git a/docs/src/man/sectors.md b/docs/src/man/sectors.md index ab51b601..2e535a0b 100644 --- a/docs/src/man/sectors.md +++ b/docs/src/man/sectors.md @@ -1244,10 +1244,17 @@ the corresponding tensors. ## Fermions -TODO - -(Support for fermionic sectors and corresponding super vector spaces is on its way. This -section will be completed when the implementation is finished.) +TODO: Update the documentation for this section. + +Fermionic sectors are represented by the type [`FermionParity`](@ref), which effectively +behaves like a ℤ₂ sector, but with two modifications. Firstly, the exchange of two sectors +with odd fermion parity should yield a minus sign, which is taken care of by virtue of the +R-symbol. This ensures that permuting tensors behave as expected. Secondly, diagrams with +self-crossing lines (aka twists) give rise to a minus sign for odd fermion parity. This is +in essence equivalent to having supertraces, which is what ensures that `@tensor` has a +result that is invariant under permutation of its input tensors. This does however lead to +unwanted minus signs for certain types of diagrams. To avoid this, the `@planar` macro does +not include a supertrace, but requires a manual resolution of all crossings in the diagram. ## Anyons diff --git a/src/sectors/fermions.jl b/src/sectors/fermions.jl index 28b31b85..97046be9 100644 --- a/src/sectors/fermions.jl +++ b/src/sectors/fermions.jl @@ -1,3 +1,11 @@ +""" + FermionParity <: Sector + +Represents sectors with fermion parity. The fermion parity is a ℤ₂ quantum number that +yields an additional sign when two odd fermions are exchanged. + +See also: `FermionNumber`, `FermionSpin` +""" struct FermionParity <: Sector isodd::Bool end