VMPS++
Loading...
Searching...
No Matches
Sym::SUN< N, Scalar > Class Template Reference

Detailed Description

template<std::size_t N, typename Scalar>
class Sym::SUN< N, Scalar >

Class for handling a SU(N) symmetry of a Hamiltonian with explicitly storage the Clebsch-Gordon coefficients.

Template Parameters
Scalar: double or complex<double>
N: the N in SU(N)
Warning
Use the the external CGC-Library: https://homepages.physik.uni-muenchen.de/~vondelft/Papers/ClebschGordan/
Longterm Todo:
To use general SU(N) symmetries, several adjustions are necessary in the code, concerning the innermultiplicity.

Definition at line 29 of file SUN.h.

#include <SUN.h>

Public Types

typedef std::array< int, 1 > qType
 

Public Member Functions

 SUN ()
 
template<std::size_t M>
bool validate (std::array< SUN< N, Scalar >::qType, M > qs)
 

Static Public Member Functions

static qType qvacuum ()
 
static std::string name ()
 
static qType flip (const qType &q)
 
static int degeneracy (const qType &q)
 
static TensorType< 3 > reduce (qType ql, qType qr, qType Q)
 
static std::vector< qTypereduceSilent (qType ql, qType qr)
 
static std::vector< qTypereduceSilent (std::vector< qType > ql, qType qr)
 
static Eigen::Tensor< Scalar, 2 > calcCupTensor (qType q)
 
static Eigen::Tensor< Scalar, 2 > calcCapTensor (qType q)
 
static Scalar coeff_adjoint (const qType &q1, const qType &q2, const qType &q3)
 
static Scalar coeff_Apair (const qType &q1, const qType &q2, const qType &q3, const qType &q4, const qType &q5, const qType &q6)
 
static Scalar coeff_buildR (const qType &q1, const qType &q2, const qType &q3, const qType &q4, const qType &q5, const qType &q6, const qType &q7, const qType &q8, const qType &q9)
 
template<std::size_t M>
static bool compare (std::array< qType, M > q1, std::array< qType, M > q2)
 
template<std::size_t M>
static bool validate (std::array< qType, M > qs)
 

Static Public Attributes

static constexpr bool HAS_CGC = true
 
static constexpr bool SPECIAL = false
 
static constexpr std::size_t Nq =1
 

Private Types

typedef Eigen::Index Index
 
template<Index Rank>
using TensorType = Eigen::Tensor< Scalar, Rank, Eigen::ColMajor, Index >
 

Member Typedef Documentation

◆ Index

template<std::size_t N, typename Scalar >
typedef Eigen::Index Sym::SUN< N, Scalar >::Index
private

Definition at line 31 of file SUN.h.

◆ qType

template<std::size_t N, typename Scalar >
typedef std::array<int,1> Sym::SUN< N, Scalar >::qType

Definition at line 34 of file SUN.h.

◆ TensorType

template<std::size_t N, typename Scalar >
template<Index Rank>
using Sym::SUN< N, Scalar >::TensorType = Eigen::Tensor<Scalar,Rank,Eigen::ColMajor,Index>
private

Definition at line 32 of file SUN.h.

Constructor & Destructor Documentation

◆ SUN()

template<std::size_t N, typename Scalar >
Sym::SUN< N, Scalar >::SUN ( )
inline

Definition at line 36 of file SUN.h.

Member Function Documentation

◆ calcCapTensor()

template<std::size_t N, typename Scalar >
Eigen::Tensor< Scalar, 2, Eigen::ColMajor, Eigen::Index > Sym::SUN< N, Scalar >::calcCapTensor ( qType  q)
static

Definition at line 162 of file SUN.h.

◆ calcCupTensor()

template<std::size_t N, typename Scalar >
Eigen::Tensor< Scalar, 2, Eigen::ColMajor, Eigen::Index > Sym::SUN< N, Scalar >::calcCupTensor ( qType  q)
static

Definition at line 176 of file SUN.h.

◆ coeff_adjoint()

template<std::size_t N, typename Scalar >
Scalar Sym::SUN< N, Scalar >::coeff_adjoint ( const qType q1,
const qType q2,
const qType q3 
)
static

Definition at line 190 of file SUN.h.

◆ coeff_Apair()

template<std::size_t N, typename Scalar >
Scalar Sym::SUN< N, Scalar >::coeff_Apair ( const qType q1,
const qType q2,
const qType q3,
const qType q4,
const qType q5,
const qType q6 
)
static

Definition at line 199 of file SUN.h.

◆ coeff_buildR()

template<std::size_t N, typename Scalar >
Scalar Sym::SUN< N, Scalar >::coeff_buildR ( const qType q1,
const qType q2,
const qType q3,
const qType q4,
const qType q5,
const qType q6,
const qType q7,
const qType q8,
const qType q9 
)
static

Definition at line 211 of file SUN.h.

◆ compare()

template<std::size_t N, typename Scalar >
template<std::size_t M>
bool Sym::SUN< N, Scalar >::compare ( std::array< qType, M q1,
std::array< qType, M q2 
)
static

Definition at line 129 of file SUN.h.

◆ degeneracy()

template<std::size_t N, typename Scalar >
static int Sym::SUN< N, Scalar >::degeneracy ( const qType q)
inlinestatic

Definition at line 47 of file SUN.h.

◆ flip()

template<std::size_t N, typename Scalar >
static qType Sym::SUN< N, Scalar >::flip ( const qType q)
inlinestatic

Definition at line 46 of file SUN.h.

◆ name()

template<std::size_t N, typename Scalar >
static std::string Sym::SUN< N, Scalar >::name ( )
inlinestatic

Definition at line 44 of file SUN.h.

◆ qvacuum()

template<std::size_t N, typename Scalar >
static qType Sym::SUN< N, Scalar >::qvacuum ( )
inlinestatic

Definition at line 42 of file SUN.h.

◆ reduce()

template<std::size_t N, typename Scalar >
Eigen::Tensor< Scalar, 3, Eigen::ColMajor, Eigen::Index > Sym::SUN< N, Scalar >::reduce ( qType  ql,
qType  qr,
qType  Q 
)
static

Definition at line 78 of file SUN.h.

◆ reduceSilent() [1/2]

template<std::size_t N, typename Scalar >
std::vector< typename SUN< N, Scalar >::qType > Sym::SUN< N, Scalar >::reduceSilent ( qType  ql,
qType  qr 
)
static

Definition at line 103 of file SUN.h.

◆ reduceSilent() [2/2]

template<std::size_t N, typename Scalar >
std::vector< typename SUN< N, Scalar >::qType > Sym::SUN< N, Scalar >::reduceSilent ( std::vector< qType ql,
qType  qr 
)
static

Definition at line 114 of file SUN.h.

◆ validate() [1/2]

template<std::size_t N, typename Scalar >
template<std::size_t M>
static bool Sym::SUN< N, Scalar >::validate ( std::array< qType, M qs)
static

◆ validate() [2/2]

template<std::size_t N, typename Scalar >
template<std::size_t M>
bool Sym::SUN< N, Scalar >::validate ( std::array< SUN< N, Scalar >::qType, M qs)

Definition at line 142 of file SUN.h.

Member Data Documentation

◆ HAS_CGC

template<std::size_t N, typename Scalar >
constexpr bool Sym::SUN< N, Scalar >::HAS_CGC = true
staticconstexpr

Definition at line 38 of file SUN.h.

◆ Nq

template<std::size_t N, typename Scalar >
constexpr std::size_t Sym::SUN< N, Scalar >::Nq =1
staticconstexpr

Definition at line 40 of file SUN.h.

◆ SPECIAL

template<std::size_t N, typename Scalar >
constexpr bool Sym::SUN< N, Scalar >::SPECIAL = false
staticconstexpr

Definition at line 39 of file SUN.h.


The documentation for this class was generated from the following file: