@@ -248,10 +248,10 @@ is some symmetry action defined on every vector space associated with each of th
248248of a ` TensorMap ` , and the ` TensorMap ` is then required to be equivariant, i.e. it acts as
249249an intertwiner between the tensor product representation on the domain and that on the
250250codomain. By Schur's lemma, this means that the tensor is block diagonal in some basis
251- corresponding to the so-called irreducible representations that can be coupled to by
252- combining the different representations on the different spaces in the domain or codomain.
253- For Abelian symmetries, this does not require a basis change and it just imposes that the
254- tensor has some block sparsity. Let's clarify all of this with some examples.
251+ corresponding to the irreducible representations that can be coupled to by combining the
252+ different representations on the different spaces in the domain or codomain. For Abelian
253+ symmetries, this does not require a basis change and it just imposes that the tensor has
254+ some block sparsity. Let's clarify all of this with some examples.
255255
256256We start with a simple `` ℤ₂ `` symmetry:
257257``` @repl tutorial
@@ -290,7 +290,7 @@ A = TensorMap(randn, V*V, V)
290290dim(A)
291291convert(Array, A)
292292
293- V = RepresentationSpace{ U₁×ℤ₂} ((0,0)=>2,(1,1)=>1,(-1,0)=>1)
293+ V = GradedSpace[Irrep[ U₁×ℤ₂]] ((0,0)=>2,(1,1)=>1,(-1,0)=>1)
294294dim(V)
295295A = TensorMap(randn, V*V, V)
296296dim(A)
@@ -299,38 +299,42 @@ convert(Array, A)
299299Here, the ` dim ` of a ` TensorMap ` returns the number of linearly independent components,
300300i.e. the number of non-zero entries in the case of an abelian symmetry. Also note that we
301301can use ` × ` (obtained as ` \times+TAB ` ) to combine different symmetries. The general space
302- associated with symmetries is a ` RepresentationSpace ` . Although this is actually an
302+ associated with symmetries is a ` GradedSpace ` . Although this is actually an
303303abstract type, it is the access point for users to construct spaces with arbitrary
304304symmetries, and ` ℤ₂Space ` (also ` Z2Space ` as non-Unicode alternative) and ` U₁Space ` (or
305305` U1Space ` ) are just convenient synonyms, e.g.
306306``` @repl tutorial
307- RepresentationSpace{U₁} (0=>3,1=>2,-1=>1) == U1Space(-1=>1,1=>2,0=>3)
307+ GradedSpace[Irrep[U₁]] (0=>3,1=>2,-1=>1) == U1Space(-1=>1,1=>2,0=>3)
308308V = U₁Space(1=>2,0=>3,-1=>1)
309309for s in sectors(V)
310310 @show s, dim(V, s)
311311end
312- U₁Space(-1=>1,0=>3,1=>2) == RepresentationSpace(U₁ (1)=>2, U₁ (0)=>3, U₁ (-1)=>1)
313- supertype(RepresentationSpace )
312+ U₁Space(-1=>1,0=>3,1=>2) == GradedSpace(Irrep[U₁] (1)=>2, Irrep[U₁] (0)=>3, Irrep[U₁] (-1)=>1)
313+ supertype(GradedSpace )
314314```
315- Note also that the order in which the charges and their corresponding subspace
315+ Note that ` GradedSpace ` is not immediately parameterized by some group ` G ` , but actually by
316+ the set of irreducible representations of ` G ` , denoted as ` Irrep[G] ` . Indeed, ` GradedSpace `
317+ also supports a grading that is derived from the fusion ring of a (unitary) pre-fusion
318+ category. Also note that the order in which the charges and their corresponding subspace
316319dimensionality are specified is irrelevant, and that the charges, henceforth called sectors
317320(which is a more general name for charges or quantum numbers) are of a specific type, in
318- this case ` U₁ ` . However, the ` RepresentationSpace{G} ` constructor automatically converts
319- the keys in the list of ` Pair ` s it receives to the correct type. Alternatively, we can
320- directly create the sectors of the correct type and use the generic ` RepresentationSpace `
321+ this case ` Irrep[U₁] == U1Irrep ` . However, the ` GradedSpace[I] ` constructor automatically
322+ converts the keys in the list of ` Pair ` s it receives to the correct type. Alternatively, we
323+ can directly create the sectors of the correct type and use the generic ` GradedSpace `
324+
321325constructor. We can probe the subspace dimension of a certain sector ` s ` in a space ` V `
322- with ` dim(V, s) ` . Finally, note that ` RepresentationSpace ` is also a subtype of
326+ with ` dim(V, s) ` . Finally, note that ` GradedSpace ` is also a subtype of
323327` EuclideanSpace{ℂ} ` , which implies that it still has the standard Euclidean inner product
324328and we assume all representations to be unitary.
325329
326330TensorKit.jl also allows for non-abelian symmetries such as ` SU₂ ` . In this case, the vector
327331space is characterized via the spin quantum number (i.e. the irrep label of ` SU₂ ` ) for each
328332of its subspaces, and is created using ` SU₂Space ` (or ` SU2Space ` or
329- ` RepresentationSpace{ SU₂} ` )
333+ ` GradedSpace[Irrep[ SU₂]] ` )
330334``` @repl tutorial
331335V = SU₂Space(0=>2,1/2=>1,1=>1)
332336dim(V)
333- V == RepresentationSpace{ SU₂} (0=>2, 1=>1, 1//2=>1)
337+ V == GradedSpace[Irrep[ SU₂]] (0=>2, 1=>1, 1//2=>1)
334338```
335339Note that now ` V ` has a two-dimensional subspace with spin zero, and two one-dimensional
336340subspaces with spin 1/2 and spin 1. However, a subspace with spin ` j ` has an additional
0 commit comments