champs package¶
- class champs.Builder(Mu: tuple[int], Nu: tuple[int] = (0,), relerr: float = 1e-10, backend: str = 'mpnum')¶
Bases:
object
Defines the structure of the builders for Kostka numbers and Sn characters.
- Parameters:
Mu (tuple[int]) – S_n conjugacy class as a list of positive integers that sum up to n.
Nu (tuple[int], optional) – S_n conjugacy class as a list of positive integers that sum up to n. Defaults to (0,). Used to encode skew partitions Mu/Nu.
relerr (float, optional) – MPS compression relative error. Defaults to 1e-10.
- get_MPO(k: int) MPArray | MatrixProductOperator ¶
MPO representation of the current operator J_k = sum_i a_i a_{i+k}^dag.
- Parameters:
k (int) – parameter specifying the current operator J_k.
- Returns:
MPO representation of the current operator J_k. the return type depends on self.backend.
- Return type:
mpnum.MPArray | qtn.tensor_1d.MatrixProductOperator
- get_MPS() MPArray | MatrixProductState ¶
Compute the MPS that encodes all characters of Mu.
- Returns:
MPS that encodes all characters of Mu. The return type depends on self.backend.
- Return type:
mp.MPArray | qtn.tensor_1d.MatrixProductState
- get_bond_dimension() int ¶
Returns the maximum bond dimension (maximum Schmidt rank) of the MPS.
- Returns:
_description_
- Return type:
int
- get_initial_MPS() MPArray | MatrixProductState ¶
Compute the MPS that encodes the initial state.
- Returns:
an MPS tensor representation of the initial state. The return type depends on self.backend.
- Return type:
mp.MPArray | qtn.tensor_1d.MatrixProductState
- valid_skew(Lambda: tuple[int]) bool ¶
Determines if Lamba Nu has enough boxes to have weight Mu.
- Parameters:
Lambda (tuple[int]) – partition that defines the skew shape Lambda Nu.
- Returns:
True if Lambda Nu has enough boxes to have weight Mu, False otherwise.
- Return type:
bool
- class champs.CharacterBuilder(Mu: tuple[int], Nu: tuple[int] = (0,), relerr: float = 1e-10, backend: str = 'mpnum')¶
Bases:
Builder
- get_MPO(k: int) MPArray | MatrixProductOperator ¶
MPO representation of the current operator J_k = sum_i a_i a_{i+k}^dag.
- Parameters:
k (int) – parameter specifying the current operator J_k.
- Returns:
MPO representation of the current operator J_k. Return type depends on the self.backend.
- Return type:
mpnum.MPArray | qtn.tensor_1d.MatrixProductOperator
- get_character(Lambda: tuple[int]) int ¶
Computes the character chi_Lambda(Mu) for a conjugacy class Mu and an irrep Lambda of S_n Note that the conjugacy class Mu is fixed by the CharacterBuilder object. Caches the partial products of MPS matrices over each interval to speed up the computation.
- Parameters:
Lambda (tuple[int]) – an irrep of S_n as a list of positive integers that sums up to n.
- Returns:
character chi_Lambda(Mu)
- Return type:
int
- class champs.KostkaBuilder(Mu: tuple[int], Nu: tuple[int] = (0,), relerr=1e-14)¶
Bases:
Builder
MPS algorithm for skew Kostka numbers. Computes Kostkas for a given weight vector Mu and skew Nu. Set Nu = (0,) for standard Kostka numbers.
- Parameters:
Mu (tuple[int]) – we assume that Mu is given in non-increasing order
Nu (tuple[int], optional) – _description_. Defaults to (0, ).
relerr (_type_, optional) – _description_. Defaults to 1e-14.
- get_MPO(k)¶
MPO representation of the current operator J_k = sum_i a_i a_{i+k}^dag.
- Parameters:
k (int) – parameter specifying the current operator J_k.
- Returns:
MPO representation of the current operator J_k. the return type depends on self.backend.
- Return type:
mpnum.MPArray | qtn.tensor_1d.MatrixProductOperator
- get_kostka(Lambda: tuple[int]) int ¶
Computes the Kostka K_lambda,Mu for a partition Lambda
- Parameters:
Lambda (tuple[int]) – Partition as a list of positive integers in nonincreasing order that sum up to n.
- Returns:
Kostka number K_lambda,Mu or (skew Kostka K_(Lambda / Nu),Mu if Nu != (0,))
- Return type:
int