Skip to content

Commit ce1e6b8

Browse files
committed
clarify with image
1 parent 436e622 commit ce1e6b8

2 files changed

Lines changed: 227 additions & 7 deletions

File tree

docs/src/man/extension.md

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ For this reason, the `TensorKitSectors.UnitStyle` trait is introduced to differe
3636
This trait is used to specialise certain functions within TensorKit (see below).
3737
`TensorKitSectors.allunits` is also introduced to return all the simple unit objects of the (multi)fusion category.
3838
This function must be defined for every multifusion category to be compatible with TensorKit.
39+
3940
Via the fusion rules, the left and right units of all `BimoduleSector`s along with their duals are also extracted and cached.
4041
The fusion behavior that must be imposed for the entire `BimoduleSector` is the most general one that appears in the fusion between any two `BimoduleSector`s.
4142
In particular, if one of the diagonal fusion categories has fusion rules with multiplicities, then the entire `BimoduleSector` must be set to have `TensorKitSectors.FusionStyle(::Type{<:BimoduleSector}) = GenericFusion()`.
@@ -68,19 +69,28 @@ For multifusion categories, the latter function returns the space with the semis
6869
There, based on the index where a unit space is wished to be inserted, a `leftunitspace` or `rightunitspace` is added such that the resulting space remains consistent with the fusion rules of the multifusion category.
6970
Similarly, `TensorKit.removeunit` is used to remove unit spaces, and will explicitly check whether the space contains only unit objects of any color with `TensorKit.isunitspace`.
7071

71-
# MultiTensorKit compatibility with MPSKit
72+
## MultiTensorKit compatibility with MPSKit
7273

7374
This section will briefly explain the changes within MPSKit which are required to make it compatible with MultiTensorKit.
7475
For a more practical explanation, users are kindly guided towards the [Example section](@ref implementation).
7576

7677
The main change within MPSKit is very similar to the fusion tree manipulations in TensorKit, namely the use of `leftunit` and `rightunit` to identify the correct unit object.
77-
In the case of MPSKit, trivial spaces are used everywhere, from the boundary of a finite MPS to the virtual spaces of a Hamiltonian written in MPO form.
78-
Additionally, multiple tensor contractions made use of braiding tensors to perform crossings of legs of the MPS/MPOs.
78+
In the case of MPSKit, trivial spaces are used everywhere, from the boundary of a finite matrix product state to the virtual spaces of a Hamiltonian written as an matrix product operator.
79+
Additionally, multiple tensor contractions made use of braiding tensors to perform crossings of legs of the MPSs/MPOs.
7980
Since no (half-)braiding is available for the `BimoduleSector`s, all algorithms had to be made planar, and thus all braiding tensors were removed.
80-
Since all braidings were trivial, this was dealt with by simply removing the braiding tensors and replacing the crossing of legs with a termination and reintroduction of the legs without crossing.
81-
This is achieved through `TensorKit.removeunit` and `TensorKit.insertleftunit`/`TensorKit.insertrightunit`, which remove and insert spaces with the correct unit object, respectively, based on the grading of neighboring vector spaces.
82-
At the level of the MPS, the correct unit object can be identified through the use of `leftunit` and `rightunit`.
81+
Since all braidings were trivial, this was dealt with by simply removing the braiding tensors and replacing the crossing of legs with a termination and reintroduction of the legs without crossing by aid of `removeunit`, `insertleftunit` and `insertrightunit`.
82+
83+
At the level of the MPS, the correct unit object can be identified through the use of `leftunit(ψ::AbstractMPS)` and `rightunit(ψ::AbstractMPS)`.
8384
When the virtual space of the MPS is graded by a diagonal `BimoduleSector`, i.ea unitary fusion category, then these all coincide with the unique unit object of that fusion category.
8485
However, when the virtual space is graded by an off-diagonal `BimoduleSector`, i.e. a bimodule category, then the left and right units are different, and thus it is important to identify the correct one when performing MPS algorithms.
8586
For example, Hamiltonians should always have the same coloring as the right unit of the MPS, since they are contracted at the physical level of the MPS.
86-
Similarly, excitations of an MPS are labeled by `BimoduleSector`s with the same coloring as the left unit of the MPS, since the auxiliary charge leg of the excitation is attached on the other side of the MPS to the virtual level.
87+
Similarly, excitations of an MPS are labeled by `BimoduleSector`s with the same coloring as the left unit of the MPS, since the auxiliary charge leg of the excitation is attached on the other side of the MPS to the virtual level.
88+
This is illustrated in the following figure.
89+
90+
```@raw html
91+
<img src="../img/anyonchain_excitation.svg" alt="" width="90%"/>
92+
```
93+
94+
Here, $\mathcal{D}$ is the fusion category grading the physical space of the MPS, $\mathcal{R}$ is the right $\mathcal{D}$-module category grading the virtual space of the MPS.
95+
$\mathcal{E}$ is the Morita dual fusion category of $\mathcal{D}$ with respect to $\mathcal{R}$, which is the category labelling the excitations of the MPS.
96+
In this case, the left unit of the MPS is in $\mathcal{E}$, and the right unit in $\mathcal{D}$.

0 commit comments

Comments
 (0)