Package khive_crystal
Sub-modules
khive_crystal.crystal_structure
khive_crystal.decompositions
khive_crystal.fundamental_khives
khive_crystal.integer_hive_graph
khive_crystal.tensor_products
khive_crystal.utils
Functions
def crystal_graph(khives: khive_crystal.khives.KHives) ‑> graphviz.graphs.Digraph
-
Generate the crystal graph for given KHives
Args
khives
:KHives
- khives
Returns
graphviz.Digraph
- the crystal graph for khives
def e(i: int) ‑> collections.abc.Callable[[khive_crystal.khive.KHive | list[khive_crystal.khive.KHive]], khive_crystal.khive.KHive | None | list[khive_crystal.khive.KHive | None]]
-
The entry point of e_i. Given H and i, return e_i(H) by appropriate crystal structure.
Args
i
:int
- i in I
Returns
Callable[[Union[KHive, List[KHive]]], int]
- f_i
Examples
>>> H: KHive = KHive( ... n=3, ... alpha=[3, 2, 0], ... beta=[2, 3, 0], ... gamma=[0, 0, 0], ... Uij=[[1, 0], [0]] ... ) >>> e(i=1)(H) KHive(n=3, alpha=[3, 2, 0], beta=[3, 2, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]])
>>> H = KHive( ... n=3, ... alpha=[1, 1, 0], ... beta=[1, 0, 1], ... gamma=[0, 0, 0], ... Uij=[[0, 0], [1]] ... ) >>> e(i=2)(H) KHive(n=3, alpha=[1, 1, 0], beta=[1, 1, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]])
>>> H: KHive = KHive(n=3, alpha=[1, 1, 0], beta=[1, 1, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]]) >>> e(i=2)([H, H])
def epsilon(i: int) ‑> collections.abc.Callable[[khive_crystal.khive.KHive | list[khive_crystal.khive.KHive]], int]
-
The entry point of epsilon_i. Given H and i, return epsilon_i(H) by appropriate crystal structure.
Args
i
:int
- i in I
Returns
Callable[[Union[KHive, List[KHive]]], int]
- epsilon_i
Examples
>>> H: KHive = KHive( ... n=3, ... alpha=[3, 2, 0], ... beta=[2, 3, 0], ... gamma=[0, 0, 0], ... Uij=[[1, 0], [0]] ... ) >>> epsilon(i=1)(H) 1
>>> H: KHive = KHive(n=3, alpha=[1, 1, 0], beta=[1, 1, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]]) >>> epsilon(i=2)(H) 0
>>> H: List[KHive] = [ ... KHive(n=3, alpha=[1, 1, 0], beta=[1, 0, 1], gamma=[0, 0, 0], Uij=[[0, 0], [1]]), ... KHive(n=3, alpha=[1, 1, 0], beta=[1, 1, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]]), ... ] >>> epsilon(i=2)(H) 1
def f(i: int) ‑> collections.abc.Callable[[khive_crystal.khive.KHive | list[khive_crystal.khive.KHive]], khive_crystal.khive.KHive | None | list[khive_crystal.khive.KHive | None]]
-
The entry point of f_i. Given H and i, return f_i(H) by appropriate crystal structure.
Args
i
:int
- i in I
Returns
Callable[[Union[KHive, List[KHive]]], int]
- f_i
Examples
>>> H: KHive = KHive(n=3, alpha=[3, 2, 0], beta=[3, 2, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]]) >>> f(i=1)(H) KHive(n=3, alpha=[3, 2, 0], beta=[2, 3, 0], gamma=[0, 0, 0], Uij=[[1, 0], [0]])
>>> H: KHive = KHive(n=3, alpha=[1, 1, 0], beta=[1, 1, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]]) >>> f(i=2)(H) KHive(n=3, alpha=[1, 1, 0], beta=[1, 0, 1], gamma=[0, 0, 0], Uij=[[0, 0], [1]])
>>> H: KHive = KHive(n=3, alpha=[1, 1, 0], beta=[1, 1, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]]) >>> f(i=2)([H, H]) [KHive(n=3, alpha=[1, 1, 0], beta=[1, 0, 1], gamma=[0, 0, 0], Uij=[[0, 0], [1]]), KHive(n=3, alpha=[1, 1, 0], beta=[1, 1, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]])]
def khive(n: int, alpha: list[int], beta: list[int], gamma: list[int], Uij: list[list[int]]) ‑> khive_crystal.khive.KHive
-
Get a instance of KHive
Args
n
:int
- size
alpha
:List[int]
- right edge labels
beta
:List[int]
- below edge labels
gamma
:List[int]
- left edge labels
Uij
:List[List[int]]
- rhombi
Returns
KHive
- K-hive
def khives(n: int, alpha: list[int]) ‑> khive_crystal.khives.KHives
-
Get a instance of KHives
Args
n
:int
- size
alpha
:List[int]
- right edge labels
Returns
KHives
- Khives
def phi(i: int) ‑> collections.abc.Callable[[khive_crystal.khive.KHive | list[khive_crystal.khive.KHive]], int]
-
The entry point of phi_i. Given H and i, return phi_i(H) by appropriate crystal structure.
Args
i
:int
- i in I
Returns
Callable[[Union[KHive, List[KHive]]], int]
- phi_i
Examples
>>> H: KHive = KHive(n=3, alpha=[3, 2, 0], beta=[3, 2, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]]) >>> phi(i=1)(H) 1
>>> H: KHive = KHive(n=3, alpha=[1, 1, 0], beta=[1, 1, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]]) >>> phi(i=2)(H) 1
>>> H: KHive = KHive(n=3, alpha=[1, 1, 0], beta=[1, 1, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]]) >>> phi(i=2)([H, H]) 2
def psi(H: khive_crystal.khive.KHive) ‑> list[khive_crystal.khive.KHive]
-
Decompose KHive into FundamentalKHive by applying the function split repeatedly.
Args
H
:KHive
- KHive
Returns
List[KHive]
- A pair of KHive and FundamentalKHive.
Examples
>>> H: KHive = KHive( ... n=3, ... alpha=[3, 3, 0], ... beta=[2, 3, 1], ... gamma=[0, 0, 0], ... Uij=[[1, 0], [1]] ... ) >>> psi(H=H) [KHive(n=3, alpha=[1, 1, 0], beta=[0, 1, 1], gamma=[0, 0, 0], Uij=[[1, 0], [1]]), KHive(n=3, alpha=[1, 1, 0], beta=[1, 1, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]]), KHive(n=3, alpha=[1, 1, 0], beta=[1, 1, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]])]
>>> H: KHive = KHive( ... n=3, ... alpha=[3, 1, 0], ... beta=[2, 2, 0], ... gamma=[0, 0, 0], ... Uij=[[1, 0], [0]] ... ) >>> psi(H=H) [KHive(n=3, alpha=[1, 0, 0], beta=[0, 1, 0], gamma=[0, 0, 0], Uij=[[1, 0], [0]]), KHive(n=3, alpha=[1, 0, 0], beta=[1, 0, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]]), KHive(n=3, alpha=[1, 1, 0], beta=[1, 1, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]])]
>>> H: KHive = KHive( ... n=3, ... alpha=[1, 1, 0], ... beta=[1, 0, 1], ... gamma=[0, 0, 0], ... Uij=[[0, 0], [1]] ... ) >>> psi(H=H) [KHive(n=3, alpha=[1, 1, 0], beta=[1, 0, 1], gamma=[0, 0, 0], Uij=[[0, 0], [1]])]
def psi_inv(H: list[khive_crystal.khive.KHive]) ‑> khive_crystal.khive.KHive
-
Compose tensor product of K-hives to a K-hive by Psi^{-1}.
Args
H
:List[KHive]
- list of K-hives expected to belong to an image of Psi.
Returns
KHive
- Psi^{-1}(H)
Examples
>>> H1: KHive = KHive(n=3, alpha=[1, 1, 0], beta=[1, 1, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]]) >>> H2: KHive = KHive(n=3, alpha=[1, 1, 0], beta=[0, 1, 1], gamma=[0, 0, 0], Uij=[[1, 0], [1]]) >>> H: List[KHive] = [H1, H2] >>> psi_inv(H=H) KHive(n=3, alpha=[2, 2, 0], beta=[1, 2, 1], gamma=[0, 0, 0], Uij=[[1, 0], [1]])
def psi_lambda(H: khive_crystal.khive.KHive) ‑> khive_crystal.khive.KHive | list[khive_crystal.khive.KHive]
-
Split KHive to a pair of KHive and FundamentalKHive.
Args
H
:KHive
- KHive
Returns
List[KHive]
- A pair of KHive and FundamentalKHive.
Examples
>>> H: KHive = KHive( ... n=3, ... alpha=[3, 3, 0], ... beta=[2, 3, 1], ... gamma=[0, 0, 0], ... Uij=[[1, 0], [1]] ... ) >>> psi_lambda(H=H) [KHive(n=3, alpha=[2, 2, 0], beta=[1, 2, 1], gamma=[0, 0, 0], Uij=[[1, 0], [1]]), KHive(n=3, alpha=[1, 1, 0], beta=[1, 1, 0], gamma=[0, 0, 0], Uij=[[0, 0], [0]])]
def view(H: khive_crystal.khive.KHive | list[khive_crystal.khive.KHive]) ‑> plotly.graph_objs._figure.Figure
-
Plot self.H to self.fig. If self.H is a KHive, plot it as origin = (0, 0). If self.H is a list of KHive, plot it as tensor products of KHive. This is a wrapper of the entry point of the class View.
Args
H (Union[KHive, List[KHive]]):
Returns
go.Figure: