Class TableAlgebra¶
Defined in File table_algebra.hpp
Class Documentation¶
-
class TableAlgebra¶
IRREP algebra defined by an explicit (symbolic) multiplication table. This can be used to describe arbitrary (also non-abelian) groups, with IRREPs being identified by their name.
Public Types
-
using irrep_type = std::string¶
-
using table_type = container::map<std::pair<irrep_type, irrep_type>, IrrepSet<irrep_type>>¶
Maps pairs of IRREPs to their product. For every pair of IRREPs, only one of the two orderings has to be present. Products involving the totally symmetric IRREP are implicit.
-
using conjugation_map = container::map<irrep_type, irrep_type>¶
Maps IRREPs to their complex conjugate. IRREPs not listed are taken to be their own complex conjugate. It suffices to list one direction of a conjugate pair (E1 -> E2 implies E2 -> E1).
Public Functions
-
TableAlgebra(irrep_type totally_symmetric, table_type table, conjugation_map conjugates = {})¶
- Parameters:
totally_symmetric – Name of the totally symmetric IRREP
table – The multiplication table
conjugates – The complex conjugation map
- Throws:
Exception – if the table or the conjugation map is inconsistent
-
const irrep_type &totally_symmetric() const¶
-
IrrepSet<irrep_type> product(const irrep_type &lhs, const irrep_type &rhs) const¶
- Throws:
Exception – if the table doesn’t contain the requested product
-
irrep_type conjugate(const irrep_type &irrep) const¶
-
using irrep_type = std::string¶