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