Documentation of MARTY
A Modern ARtificial Theoretical phYsicist
Data Structures | Namespaces | Typedefs | Enumerations | Functions | Variables
group.h File Reference

Group objects handling different possible symmetry groups. For now only semi-simple groups have representations and product of representations. More...

#include <memory>
#include "semiSimpleAlgebra.h"
#include "SU_N_algebra.h"
#include "representation.h"
#include "mrtError.h"

Go to the source code of this file.

Data Structures

class  mty::AbstractGroup
 Abstract base class for groups. More...
 
class  mty::SemiSimpleGroup
 Base class for all Semi simple groups, i.e. groups that has a SemiSimpleAlgebra. More...
 
class  mty::group::U1
 Abelian unitary group. mty::algebra::R is the associated SemiSimpleAlgebra. More...
 
class  mty::group::SU
 Special unitary group. The algebra of \( SU(N) \) is \( A_{N-1} \) , see mty::algebra::A. More...
 
class  mty::group::SO
 Special orthogonal group. The algebra of \( SO(N) \) is \( B_{(N-1)/2} \) if \( N \) is odd, \( D_{N/2} \) else. See mty::algebra::B and mty::algebra::D. More...
 
class  mty::group::Sp
 Simplectic group. The algebra of \( Sp(2N) \) is \( C_N \). See mty::algebra::C. More...
 
class  mty::group::E6
 Exceptional group of algebra \( E_6 \). See mty::algebra::E6. More...
 
class  mty::group::E7
 Exceptional group of algebra \( E_7 \). See mty::algebra::E7. More...
 
class  mty::group::E8
 Exceptional group of algebra \( E_8 \). See mty::algebra::E8. More...
 
class  mty::group::F4
 Exceptional group of algebra \( F_4 \). See mty::algebra::F4. More...
 
class  mty::group::G2
 Exceptional group of algebra \( G_2 \). See mty::algebra::G2. More...
 
class  mty::group::Lorentz
 Lorentz group. Algebra of Lorentz: \( D_2=A_1\oplus A_1 \). More...
 

Namespaces

 mty
 Namespace of MARTY.
 
 mty::group
 Namespace to avoid name conflicts for groups that can have very simple names. See algebra::Type for the same reason.
 

Typedefs

typedef class mty::AbstractGroup mty::Group
 Abstract base class for groups. More...
 

Enumerations

enum  mty::group::Type {
  mty::group::Type::Trivial,
  mty::group::Type::O,
  mty::group::Type::SO,
  mty::group::Type::U1,
  mty::group::Type::SU,
  mty::group::Type::Sp,
  mty::group::Type::E6,
  mty::group::Type::E7,
  mty::group::Type::E8,
  mty::group::Type::F4,
  mty::group::Type::G2,
  mty::group::Type::Lorentz
}
 Enumeration of types of semi simple Lie groups. The names being very small, we use a namespace to avoid conflicts. More...
 

Functions

std::ostream & mty::group::operator<< (std::ostream &fout, mty::group::Type type)
 Overload of operator<< for group::Type::Type. Allows to display a string corresponding to the type of group instead of an integer. More...
 
std::unique_ptr< mty::SemiSimpleGroupmty::createGroup (group::Type type, std::string const &name, int dim=-1)
 Dynamically allocates a new group of type type and returns a pointer to it (in a std::unique_ptr). More...
 
std::unique_ptr< mty::SemiSimpleGroupmty::createGroup (group::Type type, int dim=-1)
 Dynamically allocates a new group of type type and returns a pointer to it (in a std::unique_ptr). More...
 
std::ostream & mty::operator<< (std::ostream &fout, const AbstractGroup &obj)
 Overload of operator<< for AbstractGroup. Displays the type of the group and its dimension between brackets. More...
 
group::Type mty::stringToGroupType (std::string const &name)
 Converts a string to a group type. Allows to read a group::Type in a file. More...
 

Variables

mty::group::Lorentzmty::Lorentz = new mty::group::Lorentz()
 Global variable. Lorentz group in the form of a raw pointer to an AbstractGroup. This variable should be used whereever the Lorentz group is used in the program.
 

Detailed Description

Group objects handling different possible symmetry groups. For now only semi-simple groups have representations and product of representations.

Author
Gregoire Uhlrich
Version
1.3