Skip to content

Commit d4794ed

Browse files
committed
rename Category to Sector
1 parent 895e7ac commit d4794ed

File tree

15 files changed

+547
-550
lines changed

15 files changed

+547
-550
lines changed
Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
module Sectors
22

33
include("symmetry_style.jl")
4-
include("abstractcategory.jl")
5-
include("category_definitions/fib.jl")
6-
include("category_definitions/ising.jl")
7-
include("category_definitions/o2.jl")
8-
include("category_definitions/trivial.jl")
9-
include("category_definitions/su.jl")
10-
include("category_definitions/su2k.jl")
11-
include("category_definitions/u1.jl")
12-
include("category_definitions/zn.jl")
4+
include("abstractsector.jl")
5+
include("sector_definitions/fib.jl")
6+
include("sector_definitions/ising.jl")
7+
include("sector_definitions/o2.jl")
8+
include("sector_definitions/trivial.jl")
9+
include("sector_definitions/su.jl")
10+
include("sector_definitions/su2k.jl")
11+
include("sector_definitions/u1.jl")
12+
include("sector_definitions/zn.jl")
1313

1414
include("namedtuple_operations.jl")
15-
include("category_product.jl")
15+
include("sector_product.jl")
1616

1717
end
Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
# This file defines the abstract type AbstractCategory
2-
# all fusion categories (Z{2}, SU2, Ising...) are subtypes of AbstractCategory
1+
# This file defines the abstract type AbstractSector
2+
# all fusion categories (Z{2}, SU2, Ising...) are subtypes of AbstractSector
33

44
using BlockArrays: blocklengths
55
using ..LabelledNumbers: LabelledInteger, label, label_type, labelled, unlabel, unlabel_type
66
using ..GradedAxes: GradedAxes, blocklabels, fuse_blocklengths, gradedrange, tensor_product
77

8-
abstract type AbstractCategory end
8+
abstract type AbstractSector end
99

1010
# =================================== Base interface =====================================
11-
function Base.isless(c1::C, c2::C) where {C<:AbstractCategory}
12-
return isless(category_label(c1), category_label(c2))
11+
function Base.isless(c1::C, c2::C) where {C<:AbstractSector}
12+
return isless(sector_label(c1), sector_label(c2))
1313
end
1414

1515
# ================================= Sectors interface ====================================
@@ -24,10 +24,10 @@ function trivial(type::Type)
2424
return error("`trivial` not defined for type $(type).")
2525
end
2626

27-
istrivial(c::AbstractCategory) = (c == trivial(c))
27+
istrivial(c::AbstractSector) = (c == trivial(c))
2828

29-
function category_label(c::AbstractCategory)
30-
return error("method `category_label` not defined for type $(typeof(c))")
29+
function sector_label(c::AbstractSector)
30+
return error("method `sector_label` not defined for type $(typeof(c))")
3131
end
3232

3333
block_dimensions(g::AbstractUnitRange) = block_dimensions(SymmetryStyle(g), g)
@@ -38,41 +38,41 @@ end
3838

3939
quantum_dimension(x) = quantum_dimension(SymmetryStyle(x), x)
4040

41-
function quantum_dimension(::NotAbelianStyle, c::AbstractCategory)
41+
function quantum_dimension(::NotAbelianStyle, c::AbstractSector)
4242
return error("method `quantum_dimension` not defined for type $(typeof(c))")
4343
end
4444

45-
quantum_dimension(::AbelianStyle, ::AbstractCategory) = 1
45+
quantum_dimension(::AbelianStyle, ::AbstractSector) = 1
4646
quantum_dimension(::AbelianStyle, g::AbstractUnitRange) = length(g)
4747
quantum_dimension(::NotAbelianStyle, g::AbstractUnitRange) = sum(block_dimensions(g))
4848

4949
# =============================== Fusion rule interface ==================================
50-
(c1::AbstractCategory, c2::AbstractCategory) = fusion_rule(c1, c2)
50+
(c1::AbstractSector, c2::AbstractSector) = fusion_rule(c1, c2)
5151

52-
function fusion_rule(c1::AbstractCategory, c2::AbstractCategory)
52+
function fusion_rule(c1::AbstractSector, c2::AbstractSector)
5353
return fusion_rule(combine_styles(SymmetryStyle(c1), SymmetryStyle(c2)), c1, c2)
5454
end
5555

56-
function fusion_rule(::NotAbelianStyle, c1::C, c2::C) where {C<:AbstractCategory}
57-
degen, sectors = label_fusion_rule(C, category_label(c1), category_label(c2))
56+
function fusion_rule(::NotAbelianStyle, c1::C, c2::C) where {C<:AbstractSector}
57+
degen, sectors = label_fusion_rule(C, sector_label(c1), sector_label(c2))
5858
return gradedrange(labelled.(degen, sectors))
5959
end
6060

61-
# abelian case: return Category
62-
function fusion_rule(::AbelianStyle, c1::C, c2::C) where {C<:AbstractCategory}
63-
_, sectors = label_fusion_rule(C, category_label(c1), category_label(c2))
61+
# abelian case: return Sector
62+
function fusion_rule(::AbelianStyle, c1::C, c2::C) where {C<:AbstractSector}
63+
_, sectors = label_fusion_rule(C, sector_label(c1), sector_label(c2))
6464
return only(sectors)
6565
end
6666

67-
function label_fusion_rule(category_type::Type{<:AbstractCategory}, ::Any, ::Any)
68-
return error("`label_fusion_rule` not defined for type $(category_type).")
67+
function label_fusion_rule(sector_type::Type{<:AbstractSector}, ::Any, ::Any)
68+
return error("`label_fusion_rule` not defined for type $(sector_type).")
6969
end
7070

7171
# ================================ GradedAxes interface ==================================
7272
# tensor_product interface
7373
function GradedAxes.fuse_blocklengths(
74-
l1::LabelledInteger{<:Integer,<:AbstractCategory},
75-
l2::LabelledInteger{<:Integer,<:AbstractCategory},
74+
l1::LabelledInteger{<:Integer,<:AbstractSector},
75+
l2::LabelledInteger{<:Integer,<:AbstractSector},
7676
)
7777
return fuse_blocklengths(combine_styles(SymmetryStyle(l1), SymmetryStyle(l2)), l1, l2)
7878
end
@@ -93,23 +93,23 @@ function GradedAxes.fuse_blocklengths(
9393
end
9494

9595
# cast to range
96-
to_gradedrange(c::AbstractCategory) = to_gradedrange(labelled(1, c))
96+
to_gradedrange(c::AbstractSector) = to_gradedrange(labelled(1, c))
9797
to_gradedrange(l::LabelledInteger) = gradedrange([l])
9898
to_gradedrange(g::AbstractUnitRange) = g
9999

100-
# allow to fuse a category with a GradedUnitRange
101-
function GradedAxes.tensor_product(c::AbstractCategory, g::AbstractUnitRange)
100+
# allow to fuse a Sector with a GradedUnitRange
101+
function GradedAxes.tensor_product(c::AbstractSector, g::AbstractUnitRange)
102102
return tensor_product(to_gradedrange(c), g)
103103
end
104104

105-
function GradedAxes.tensor_product(g::AbstractUnitRange, c::AbstractCategory)
105+
function GradedAxes.tensor_product(g::AbstractUnitRange, c::AbstractSector)
106106
return tensor_product(g, to_gradedrange(c))
107107
end
108108

109-
function GradedAxes.tensor_product(c1::AbstractCategory, c2::AbstractCategory)
109+
function GradedAxes.tensor_product(c1::AbstractSector, c2::AbstractSector)
110110
return to_gradedrange(fusion_rule(c1, c2))
111111
end
112112

113-
function GradedAxes.fusion_product(c::AbstractCategory)
113+
function GradedAxes.fusion_product(c::AbstractSector)
114114
return to_gradedrange(c)
115115
end

0 commit comments

Comments
 (0)