Skip to content

Commit 91be425

Browse files
committed
more cleanup
1 parent 071704b commit 91be425

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

docs/src/man/implementation.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ H1 = @mpoham sum(-2 * h1{i,j} for (i, j) in nearest_neighbours(lattice))
105105
H2 = @mpoham sum(h2{i,j} for (i, j) in nearest_neighbours(lattice))
106106
H3 = @mpoham sum(2im * h3{i,j} for (i, j) in nearest_neighbours(lattice))
107107

108-
H = H1 + J1 * H2 + J3 * H3
108+
H = H1 + J1 * H2 + J2 * H3
109109
````
110110

111111
For the matrix product state, we will select $\mathsf{Vec}$ as the module category for now:
@@ -127,7 +127,7 @@ init_mps = FiniteMPS(L, P, V; left = Vb, right = Vb)
127127
We can now look to find the ground state of the Hamiltonian with two-site DMRG.
128128
We use this instead of the "usual" one-site DMRG because the two-site algorithm will smartly fill up the blocks of the local tensor during the sweep, allowing one to initialise as a product state in one block and more likely avoid local minima, a common occurence in symmetric tensor network simulations.
129129
````julia
130-
dmrg2alg = DMRG2(; verbosity = 2, tol = 1e-7, trscheme = truncbelow(1e-4))
130+
dmrg2alg = DMRG2(; verbosity = 2, tol = 1e-7, trscheme = trunctol(; atol = 1e-4))
131131
ψ, _ = find_groundstate(init_mps, H, dmrg2alg)
132132
````
133133
The truncation scheme keyword argument is mandatory when calling `DMRG2` in MPSKit.
@@ -137,10 +137,12 @@ To run one-site DMRG anyway, use `DMRG` which does not require a truncation sche
137137

138138
Now that we've found the ground state, we can compute the entanglement spectrum in the middle of the chain.
139139
````julia
140-
spec = entanglement_spectrum(ψ, round(Int, L/2))
140+
entanglement_spectrum(ψ, round(Int, L/2))
141141
````
142-
This returns a dictionary which maps the objects grading the virtual space to the singular values.
143-
In this case, there is one key corresponding to $\mathsf{Vec}$.
142+
This returns a `TensorKit.SectorVector` containing the singular values.
143+
This can be sliced to find the singular values corresponding to a particular simple object.
144+
More information on that can be found in the docstring of `MPSKit.entanglement_spectrum`.
145+
In this case, all singular values correspond to $\mathsf{Vec}$.
144146
We can also immediately return a plot of this data by the following:
145147
````julia
146148
entanglementplot(ψ; site = round(Int, L/2))
@@ -172,12 +174,10 @@ This plot should be compared to [Lootens_2024; Figure 2](@cite).
172174
This can be repeated with other parameter values for $J_1$ and $J_2$ in the Hamiltonian to probe the $\mathsf{Rep(\mathbb{Z}_2 \times \mathbb{Z}_2)}$-symmetric or $\mathsf{Rep^\psi(A_4)}$ SPT phase.
173175

174176
!!! note "Additional functions and keyword arguments"
175-
Certain commonly used functions within MPSKit require extra keyword arguments to be compatible with multifusion MPS simulations.
177+
Certain commonly used functions within MPSKit can pass extra keyword arguments compatible with multifusion MPS simulations.
176178
In particular, the keyword argument `sector` (note the lowercase "s") appears in
177-
- `excitations` with `QuasiparticleAnsatz`: the sector is selected by adding an auxiliary space to the *domain* of each eigenvector of the transfer matrix.
178-
Since in a full contraction the domain of the eigenvector lies in the opposite side of the physical space (labeled by objects in $\mathcal{D} = \mathsf{Rep(A_4)}$), the charged excitations lie in the symmetry category $\mathcal{C} = \mathcal{D^*_M}$.
179-
- `exact_diagonalization`: the `sector` keyword argument now requires an object in $\mathcal{D}$, since this is the fusion category which specifies the bond algebra from which the Hamiltonian is constructed.
180-
This is equivalent to adding a charged leg on the leftmost (or rightmost) virtual space of the MPS in conventional MPS cases.
179+
- `excitations` with `QuasiparticleAnsatz`: the sector is selected by adding an auxiliary space to the *domain* of each eigenvector of the transfer matrix. Since in a full contraction the domain of the eigenvector lies in the opposite side of the physical space (labeled by objects in $\mathcal{D} = \mathsf{Rep(A_4)}$), the excitations lie in the Morita dual category $\mathcal{E} = \mathcal{D^*_M}$. This will default to the unit of $\mathcal{E}$ if not specified.
180+
- `exact_diagonalization`: the `sector` keyword argument now requires a simple object in $\mathcal{D}$, since this is the fusion category which specifies the bond algebra from which the Hamiltonian is constructed. This is equivalent to adding a charged leg on the leftmost (or rightmost) virtual space of the MPS in conventional MPS cases. This will default to the unit of $\mathcal{D}$ if not specified.
181181

182182
## Differences with the infinite case
183183
We can repeat the above calcalations also for an infinite system.
@@ -197,4 +197,4 @@ It is also clear that boundary terms do not play a role in this case.
197197
These are
198198
- `transfer_spectrum`: similar to `excitations`, the (partial) transfer matrix spectrum is selected by adding a charged auxiliary space to the transfer matrix eigenvectors.
199199
- `correlation_length`: since this function calls `transfer_spectrum`, the same logic applies.
200-
- `excitations` in the infinite case also requires the keyword argument.
200+
- `excitations` with `QuasiparticleAnsatz`.

0 commit comments

Comments
 (0)