Base class for all Semi simple groups, i.e. groups that has a SemiSimpleAlgebra. More...
#include <group.h>
Public Member Functions | |
| SemiSimpleGroup (const std::string &name) | |
| Constructor with one parameter. More... | |
| SemiSimpleGroup (const SemiSimpleAlgebra &t_algebra, const std::string &t_name) | |
| Constructor with two parameters. More... | |
| ~SemiSimpleGroup () override | |
| Destructor. | |
| SemiSimpleAlgebra * | getAlgebra () const override |
| Returns a pointer to the algebra of the group. More... | |
| void | setAlgebra (const SemiSimpleAlgebra &t_algebra) |
| Replaces the algebra owned by the group. More... | |
| Irrep | highestWeightRep (const std::vector< int > &highestWeight) const override |
| Returns an Irrep of highest weight highestWeight. More... | |
| csl::Expr | getQuadraticCasimir (const AlgebraState &highest) const |
| Returns the expression (symbolic, rational number) of the quadratic Casimir operator for a representation. More... | |
| Irrep | getTrivialRep () const override |
| Returns the trivial (dimension 1) representation of the group. More... | |
| SumIrrep | tensorProduct (const Irrep &rep1, const Irrep &rep2) const |
| Computes the product of two representations and returns its decomposition in a sum of irreducible representations (SumIrrep). See SemiSimpleAlgebra::tensorProduct(). More... | |
| SumIrrep | tensorProduct (const std::initializer_list< int > &rep1, const std::initializer_list< int > &rep2) const |
| Computes and the product of two representations and returns its decomposition in a sum of irreducible representations. See SemiSimpleAlgebra::tensorProduct(). More... | |
| const csl::Space * | getVectorSpace (const Irrep &irrep) const override |
| Returns the vector space (csl::Space) associated with a certain irreducible representation of the group. More... | |
| AlgebraState | getHighestWeight (const csl::Space *t_space) const override |
| Searches and returns the highest weight of the representation living in t_space (csl::Space). More... | |
| std::vector< const csl::Space * > | getAllVectorSpace () const override |
| Returns all vector spaces (csl::Space) created by the group. More... | |
| csl::Index | getCorrespondingIndex (const std::string &index_name, const QuantumFieldParent &parent) override |
| Returns a csl::Index of the vector space corresponding to a given mty::QuantumFieldParent's representation of the group. More... | |
Public Member Functions inherited from mty::AbstractGroup | |
| AbstractGroup (const std::string &t_name="") | |
| Constructor with one optional parameter. More... | |
| AbstractGroup (int t_dim, const std::string &t_name="") | |
| Constructor with two parameters. More... | |
| virtual | ~AbstractGroup () |
| Destructor. | |
| virtual Irrep | getAdjointRep () const |
| Virtual function. Raises an error if called. See reimplementations. | |
| virtual group::Type | getType () const =0 |
| Returns the type of the group. See mty::group::Type. More... | |
| mty::GaugedGroup * | getGaugedGroup () const |
| void | setGaugedGroup (mty::GaugedGroup *t_gauged) |
| std::string | getName () const |
| Returns the name of the group. More... | |
| int | getDim () const |
| Returns the dimension (integer) of the group. More... | |
Protected Attributes | |
| std::unique_ptr< SemiSimpleAlgebra > | algebra |
| Owner std::unique_ptr to the SemiSimpleAlgebra associated with the group. | |
| std::vector< std::pair< AlgebraState, const csl::Space * > > | vectorSpaces |
| Association of AlgebraState (highest weights of irreps) and vector spaces. To each irrep (i.e. each highest weight) is associated a different and unique vector space (csl::Space). See getVectorSpace(). | |
| std::map< AlgebraState, csl::Expr > | quadraticCasimir |
| Association of AlgebraState (highest weights of irreps) and quadratic Casimirs. To each irrep (i.e. each highest weight) is associated a quadratic casimir operator. It is computed the first time asked, and stored. | |
Protected Attributes inherited from mty::AbstractGroup | |
| int | dim |
| Dimension of the group. | |
| std::string | name |
| Name of the group. | |
| mty::GaugedGroup * | gauged |
Base class for all Semi simple groups, i.e. groups that has a SemiSimpleAlgebra.
This class handles the different vector spaces for different representations. Each time a new representation is asked, a csl::Space is created. Then, a same representation in the same group will live in the same csl::Space. All computations of representations and products use the features of SemiSimpleAlgebra.
|
explicit |
Constructor with one parameter.
| name | Name of the group. |
| mty::SemiSimpleGroup::SemiSimpleGroup | ( | const SemiSimpleAlgebra & | t_algebra, |
| const std::string & | t_name | ||
| ) |
Constructor with two parameters.
| t_algebra | algebra corresponding to the group. |
| t_name | name of the group. |
|
overridevirtual |
Returns a pointer to the algebra of the group.
Reimplemented from mty::AbstractGroup.
|
overridevirtual |
Returns all vector spaces (csl::Space) created by the group.
All vector spaces are put in a std::vector that is returned.
Implements mty::AbstractGroup.
|
overridevirtual |
Returns a csl::Index of the vector space corresponding to a given mty::QuantumFieldParent's representation of the group.
The QuantumFieldParent is important to know which representation is wanted. For example in QCD, if 'g' is the gluon and 'q' a quark that are respectively in octet and triplet representations of a SemiSimpleGroup 'SU3_c',
will return an index in the adjoint representation (dimension 8), whereas
will return an index in the fundamental representation (dimension 3).
| index_name | Name of the csl::Index. |
| parent | QuantumFieldParent in which we search a representation of the group. |
Implements mty::AbstractGroup.
|
overridevirtual |
Searches and returns the highest weight of the representation living in t_space (csl::Space).
If a representation living in t_space is found, its highest weight is returned. Else an error is raised.
| t_space | Vector space in which the representation lives. |
Reimplemented from mty::AbstractGroup.
| csl::Expr mty::SemiSimpleGroup::getQuadraticCasimir | ( | const AlgebraState & | highest | ) | const |
Returns the expression (symbolic, rational number) of the quadratic Casimir operator for a representation.
See SemiSimpleAlgebra::getQuadraticCasimir().
| irrep | Highest weight state of the representation from which we want the Casimir. |
|
overridevirtual |
Returns the trivial (dimension 1) representation of the group.
Implements mty::AbstractGroup.
Returns the vector space (csl::Space) associated with a certain irreducible representation of the group.
If the vector space of a representation identical to irrep (same highest weight) is found, it is returned. Else, a new vector space is created (csl::Space) and returned. The spaces created in this function are specialized in color::ColorSpace in order to implement trace properties in simplifications. See documentation of color::ColorSpace.
| irrep | Representation from which we want the vector space. |
Implements mty::AbstractGroup.
|
overridevirtual |
Returns an Irrep of highest weight highestWeight.
The group uses the function SemiSimpleAlgebra::highestWeightRep() of its algebra to create the representation and returns it.
| highestWeight | Highest weight state of the representation. |
Reimplemented from mty::AbstractGroup.
| void mty::SemiSimpleGroup::setAlgebra | ( | const SemiSimpleAlgebra & | t_algebra | ) |
Replaces the algebra owned by the group.
t_algebra may be an r-value. This function simply creates (allocated memory with a unique_ptr) a new algebra identical to t_algebra.
| t_algebra | New algebra of the group. |
Computes the product of two representations and returns its decomposition in a sum of irreducible representations (SumIrrep). See SemiSimpleAlgebra::tensorProduct().
| rep1 | First representation in the product. |
| rep2 | Second representation in the product. |
| SumIrrep mty::SemiSimpleGroup::tensorProduct | ( | const std::initializer_list< int > & | rep1, |
| const std::initializer_list< int > & | rep2 | ||
| ) | const |
Computes and the product of two representations and returns its decomposition in a sum of irreducible representations. See SemiSimpleAlgebra::tensorProduct().
Instead of taking representations, this function takes directly the dynkin labels of their highest weight state. It first call SemiSimpleAlgebra::highestWeightRep() to instantiate representations from their highest weight, and then computes the tensor product.
| rep1 | First representation in the product, caracterized by its dinkin labels in a std::vector of integers. |
| rep2 | Second representation in the product, caracterized by its dinkin labels in a std::vector of integers. |
1.8.13