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

Detailed Description

template<typename Kind, typename Scalar = double>
class Sym::U1< Kind, Scalar >

Class for handling a U(1) symmetry of a Hamiltonian.

Template Parameters
Scalar: double or complex<double>

Definition at line 24 of file U1.h.

#include <U1.h>

Public Types

typedef Scalar Scalar_
 
typedef qarray< NqqType
 

Public Member Functions

 U1 ()
 
template<std::size_t M>
bool compare (const std::array< U1< Kind, Scalar >::qType, M > &q1, const std::array< U1< Kind, Scalar >::qType, M > &q2)
 
template<std::size_t M>
bool validate (const std::array< U1< Kind, Scalar >::qType, M > &qs)
 

Static Public Member Functions

static constexpr bool IS_CHARGE_SU2 ()
 
static constexpr bool IS_SPIN_SU2 ()
 
static constexpr bool IS_SPIN_U1 ()
 
static constexpr bool NO_SPIN_SYM ()
 
static constexpr bool NO_CHARGE_SYM ()
 
static constexpr qType qvacuum ()
 
static constexpr std::array< qType, 2 > lowest_qs ()
 
static std::string name ()
 
static constexpr std::array< KIND, Nqkind ()
 
static constexpr std::array< int, Nqmod ()
 
static qType flip (const qType &q)
 
static int degeneracy (const qType &q)
 
static int spinorFactor ()
 
template<std::size_t M>
static bool compare (const std::array< qType, M > &q1, const std::array< qType, M > &q2)
 
template<std::size_t M>
static bool validate (const std::array< qType, M > &qs)
 
static bool triangle (const std::array< qType, 3 > &qs)
 
static bool pair (const std::array< qType, 2 > &qs)
 
static std::vector< qTypereduceSilent (const qType &ql, const qType &qr)
 
static std::vector< qTypereduceSilent (const qType &ql, const qType &qm, const qType &qr)
 
static std::vector< qTypereduceSilent (const std::vector< qType > &ql, const qType &qr)
 
static std::vector< qTypereduceSilent (const std::vector< qType > &ql, const std::vector< qType > &qr, bool UNIQUE=false)
 
static vector< tuple< qarray< 1 >, size_t, qarray< 1 >, size_t, qarray< 1 > > > tensorProd (const std::vector< qType > &ql, const std::vector< qType > &qr)
 
static Scalar coeff_unity ()
 
static Scalar coeff_dot (const qType &q1)
 
static Scalar coeff_rightOrtho (const qType &q1, const qType &q2)
 
static Scalar coeff_leftSweep (const qType &q1, const qType &q2)
 
static double coeff_leftSweep2 (const qType &q1, const qType &q2, const qType &q3)
 
static double coeff_leftSweep3 (const qType &q1, const qType &q2, const qType &q3)
 
static Scalar coeff_swapPhase (const qType &q1, const qType &q2, const qType &q3)
 
static Scalar coeff_adjoint (const qType &q1, const qType &q2, const qType &q3)
 
static Scalar coeff_splitAA (const qType &q1, const qType &q2, const qType &q3)
 
static Scalar coeff_3j (const qType &q1, const qType &q2, const qType &q3, int q1_z, int q2_z, int q3_z)
 
static Scalar coeff_CGC (const qType &q1, const qType &q2, const qType &q3, int q1_z, int q2_z, int q3_z)
 
static Scalar coeff_6j (const qType &q1, const qType &q2, const qType &q3, const qType &q4, const qType &q5, const qType &q6)
 
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_splitAA (const qType &q1, const qType &q2, const qType &q3, const qType &q4, const qType &q5, const qType &q6)
 
static Scalar coeff_prod (const qType &q1, const qType &q2, const qType &q3, const qType &q4, const qType &q5, const qType &q6)
 
static Scalar coeff_MPOprod6 (const qType &q1, const qType &q2, const qType &q3, const qType &q4, const qType &q5, const qType &q6)
 
static Scalar coeff_twoSiteGate (const qType &q1, const qType &q2, const qType &q3, const qType &q4, const qType &q5, const qType &q6)
 
static Scalar coeff_9j (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 Scalar coeff_tensorProd (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 Scalar coeff_MPOprod9 (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 Scalar coeff_buildL (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 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 Scalar coeff_HPsi (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 Scalar coeff_AW (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 Public Attributes

static constexpr size_t Nq =1
 
static constexpr bool HAS_CGC = false
 
static constexpr bool NON_ABELIAN = false
 
static constexpr bool ABELIAN = true
 
static constexpr bool IS_TRIVIAL = false
 
static constexpr bool IS_MODULAR = false
 
static constexpr int MOD_N = 1
 
static constexpr size_t lowest_qs_size = 2
 

Member Typedef Documentation

◆ qType

template<typename Kind , typename Scalar = double>
typedef qarray<Nq> Sym::U1< Kind, Scalar >::qType

Definition at line 46 of file U1.h.

◆ Scalar_

template<typename Kind , typename Scalar = double>
typedef Scalar Sym::U1< Kind, Scalar >::Scalar_

Definition at line 27 of file U1.h.

Constructor & Destructor Documentation

◆ U1()

template<typename Kind , typename Scalar = double>
Sym::U1< Kind, Scalar >::U1 ( )
inline

Definition at line 48 of file U1.h.

Member Function Documentation

◆ coeff_3j()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_3j ( const qType q1,
const qType q2,
const qType q3,
int  q1_z,
int  q2_z,
int  q3_z 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 308 of file U1.h.

◆ coeff_6j()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_6j ( const qType q1,
const qType q2,
const qType q3,
const qType q4,
const qType q5,
const qType q6 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 324 of file U1.h.

◆ coeff_9j()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_9j ( 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 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 383 of file U1.h.

◆ coeff_adjoint()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_adjoint ( const qType q1,
const qType q2,
const qType q3 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 292 of file U1.h.

◆ coeff_Apair()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_Apair ( const qType q1,
const qType q2,
const qType q3,
const qType q4,
const qType q5,
const qType q6 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 338 of file U1.h.

◆ coeff_AW()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_AW ( 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 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 453 of file U1.h.

◆ coeff_buildL()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_buildL ( 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 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 413 of file U1.h.

◆ coeff_buildR()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, 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 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 398 of file U1.h.

◆ coeff_CGC()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_CGC ( const qType q1,
const qType q2,
const qType q3,
int  q1_z,
int  q2_z,
int  q3_z 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 316 of file U1.h.

◆ coeff_dot()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_dot ( const qType q1)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 260 of file U1.h.

◆ coeff_HPsi()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_HPsi ( 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 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 443 of file U1.h.

◆ coeff_leftSweep()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_leftSweep ( const qType q1,
const qType q2 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 276 of file U1.h.

◆ coeff_leftSweep2()

template<typename Kind , typename Scalar = double>
static double Sym::U1< Kind, Scalar >::coeff_leftSweep2 ( const qType q1,
const qType q2,
const qType q3 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 102 of file U1.h.

◆ coeff_leftSweep3()

template<typename Kind , typename Scalar = double>
static double Sym::U1< Kind, Scalar >::coeff_leftSweep3 ( const qType q1,
const qType q2,
const qType q3 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 103 of file U1.h.

◆ coeff_MPOprod6()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_MPOprod6 ( const qType q1,
const qType q2,
const qType q3,
const qType q4,
const qType q5,
const qType q6 
)
static

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 365 of file U1.h.

◆ coeff_MPOprod9()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_MPOprod9 ( 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 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 433 of file U1.h.

◆ coeff_prod()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_prod ( const qType q1,
const qType q2,
const qType q3,
const qType q4,
const qType q5,
const qType q6 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 356 of file U1.h.

◆ coeff_rightOrtho()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_rightOrtho ( const qType q1,
const qType q2 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 268 of file U1.h.

◆ coeff_splitAA() [1/2]

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_splitAA ( const qType q1,
const qType q2,
const qType q3 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 300 of file U1.h.

◆ coeff_splitAA() [2/2]

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_splitAA ( const qType q1,
const qType q2,
const qType q3,
const qType q4,
const qType q5,
const qType q6 
)
static

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 347 of file U1.h.

◆ coeff_swapPhase()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_swapPhase ( const qType q1,
const qType q2,
const qType q3 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 284 of file U1.h.

◆ coeff_tensorProd()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_tensorProd ( 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 
)
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 423 of file U1.h.

◆ coeff_twoSiteGate()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_twoSiteGate ( const qType q1,
const qType q2,
const qType q3,
const qType q4,
const qType q5,
const qType q6 
)
static

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 374 of file U1.h.

◆ coeff_unity()

template<typename Kind , typename Scalar >
Scalar Sym::U1< Kind, Scalar >::coeff_unity
inlinestatic

Various coeffecients, all resulting from contractions or traces of the Clebsch-Gordon coefficients.

Note
All coefficients are trivial for U(1) and could be represented by a bunch of Kronecker deltas. Here we return simply 1, because the algorithm only allows valid combinations of quantumnumbers, for which the Kronecker deltas are not necessary.

Definition at line 252 of file U1.h.

◆ compare() [1/2]

template<typename Kind , typename Scalar = double>
template<std::size_t M>
static bool Sym::U1< Kind, Scalar >::compare ( const std::array< qType, M > &  q1,
const std::array< qType, M > &  q2 
)
static

This function defines a strict order for arrays of quantum-numbers.

Note
The implementation is arbritary, as long as it defines a strict order.

◆ compare() [2/2]

template<typename Kind , typename Scalar = double>
template<std::size_t M>
bool Sym::U1< Kind, Scalar >::compare ( const std::array< U1< Kind, Scalar >::qType, M > &  q1,
const std::array< U1< Kind, Scalar >::qType, M > &  q2 
)

Definition at line 464 of file U1.h.

◆ degeneracy()

template<typename Kind , typename Scalar = double>
static int Sym::U1< Kind, Scalar >::degeneracy ( const qType q)
inlinestatic

Definition at line 64 of file U1.h.

◆ flip()

template<typename Kind , typename Scalar = double>
static qType Sym::U1< Kind, Scalar >::flip ( const qType q)
inlinestatic

Definition at line 63 of file U1.h.

◆ IS_CHARGE_SU2()

template<typename Kind , typename Scalar = double>
static constexpr bool Sym::U1< Kind, Scalar >::IS_CHARGE_SU2 ( )
inlinestaticconstexpr

Definition at line 38 of file U1.h.

◆ IS_SPIN_SU2()

template<typename Kind , typename Scalar = double>
static constexpr bool Sym::U1< Kind, Scalar >::IS_SPIN_SU2 ( )
inlinestaticconstexpr

Definition at line 39 of file U1.h.

◆ IS_SPIN_U1()

template<typename Kind , typename Scalar = double>
static constexpr bool Sym::U1< Kind, Scalar >::IS_SPIN_U1 ( )
inlinestaticconstexpr

Definition at line 41 of file U1.h.

◆ kind()

template<typename Kind , typename Scalar = double>
static constexpr std::array< KIND, Nq > Sym::U1< Kind, Scalar >::kind ( )
inlinestaticconstexpr

Definition at line 60 of file U1.h.

◆ lowest_qs()

template<typename Kind , typename Scalar = double>
static constexpr std::array< qType, 2 > Sym::U1< Kind, Scalar >::lowest_qs ( )
inlinestaticconstexpr

Definition at line 53 of file U1.h.

◆ mod()

template<typename Kind , typename Scalar = double>
static constexpr std::array< int, Nq > Sym::U1< Kind, Scalar >::mod ( )
inlinestaticconstexpr

Definition at line 61 of file U1.h.

◆ name()

template<typename Kind , typename Scalar = double>
static std::string Sym::U1< Kind, Scalar >::name ( )
inlinestatic

Definition at line 59 of file U1.h.

◆ NO_CHARGE_SYM()

template<typename Kind , typename Scalar = double>
static constexpr bool Sym::U1< Kind, Scalar >::NO_CHARGE_SYM ( )
inlinestaticconstexpr

Definition at line 44 of file U1.h.

◆ NO_SPIN_SYM()

template<typename Kind , typename Scalar = double>
static constexpr bool Sym::U1< Kind, Scalar >::NO_SPIN_SYM ( )
inlinestaticconstexpr

Definition at line 43 of file U1.h.

◆ pair()

template<typename Kind , typename Scalar = double>
bool Sym::U1< Kind, Scalar >::pair ( const std::array< qType, 2 > &  qs)
static

Definition at line 485 of file U1.h.

◆ qvacuum()

template<typename Kind , typename Scalar = double>
static constexpr qType Sym::U1< Kind, Scalar >::qvacuum ( )
inlinestaticconstexpr

Definition at line 50 of file U1.h.

◆ reduceSilent() [1/4]

template<typename Kind , typename Scalar >
std::vector< typename U1< Kind, Scalar >::qType > Sym::U1< Kind, Scalar >::reduceSilent ( const qType ql,
const qType qm,
const qType qr 
)
static

Calculate the irreps of the tensor product of ql, qm and qr.

Note
This is independent of the order the quantumnumbers.

Definition at line 179 of file U1.h.

◆ reduceSilent() [2/4]

template<typename Kind , typename Scalar >
std::vector< typename U1< Kind, Scalar >::qType > Sym::U1< Kind, Scalar >::reduceSilent ( const qType ql,
const qType qr 
)
static

Calculate the irreps of the tensor product of ql and qr.

Definition at line 170 of file U1.h.

◆ reduceSilent() [3/4]

template<typename Kind , typename Scalar >
std::vector< typename U1< Kind, Scalar >::qType > Sym::U1< Kind, Scalar >::reduceSilent ( const std::vector< qType > &  ql,
const qType qr 
)
static

Calculate the irreps of the tensor product of all entries of ql and qr.

Definition at line 188 of file U1.h.

◆ reduceSilent() [4/4]

template<typename Kind , typename Scalar >
std::vector< typename U1< Kind, Scalar >::qType > Sym::U1< Kind, Scalar >::reduceSilent ( const std::vector< qType > &  ql,
const std::vector< qType > &  qr,
bool  UNIQUE = false 
)
static

Calculate the irreps of the tensor product of all entries of ql with all entries of qr.

Definition at line 200 of file U1.h.

◆ spinorFactor()

template<typename Kind , typename Scalar = double>
static int Sym::U1< Kind, Scalar >::spinorFactor ( )
inlinestatic

Definition at line 66 of file U1.h.

◆ tensorProd()

template<typename Kind , typename Scalar >
vector< tuple< qarray< 1 >, size_t, qarray< 1 >, size_t, qarray< 1 > > > Sym::U1< Kind, Scalar >::tensorProd ( const std::vector< qType > &  ql,
const std::vector< qType > &  qr 
)
static

Calculate the irreps of the tensor product of ql and qr.

Definition at line 229 of file U1.h.

◆ triangle()

template<typename Kind , typename Scalar = double>
bool Sym::U1< Kind, Scalar >::triangle ( const std::array< qType, 3 > &  qs)
static

Definition at line 476 of file U1.h.

◆ validate() [1/2]

template<typename Kind , typename Scalar = double>
template<std::size_t M>
static bool Sym::U1< Kind, Scalar >::validate ( const std::array< qType, M > &  qs)
static

This function checks if the array qs contains quantum-numbers which match together, with respect to the flow equations.

Cosmetic Todo:
Write multiple functions, for different sizes of the array and rename them, to have a more clear interface. Example: For 3-array: triangular(...) or something similar.

◆ validate() [2/2]

template<typename Kind , typename Scalar = double>
template<std::size_t M>
bool Sym::U1< Kind, Scalar >::validate ( const std::array< U1< Kind, Scalar >::qType, M > &  qs)

Definition at line 495 of file U1.h.

Member Data Documentation

◆ ABELIAN

template<typename Kind , typename Scalar = double>
constexpr bool Sym::U1< Kind, Scalar >::ABELIAN = true
staticconstexpr

Definition at line 33 of file U1.h.

◆ HAS_CGC

template<typename Kind , typename Scalar = double>
constexpr bool Sym::U1< Kind, Scalar >::HAS_CGC = false
staticconstexpr

Definition at line 31 of file U1.h.

◆ IS_MODULAR

template<typename Kind , typename Scalar = double>
constexpr bool Sym::U1< Kind, Scalar >::IS_MODULAR = false
staticconstexpr

Definition at line 35 of file U1.h.

◆ IS_TRIVIAL

template<typename Kind , typename Scalar = double>
constexpr bool Sym::U1< Kind, Scalar >::IS_TRIVIAL = false
staticconstexpr

Definition at line 34 of file U1.h.

◆ lowest_qs_size

template<typename Kind , typename Scalar = double>
constexpr size_t Sym::U1< Kind, Scalar >::lowest_qs_size = 2
inlinestaticconstexpr

Definition at line 52 of file U1.h.

◆ MOD_N

template<typename Kind , typename Scalar = double>
constexpr int Sym::U1< Kind, Scalar >::MOD_N = 1
staticconstexpr

Definition at line 36 of file U1.h.

◆ NON_ABELIAN

template<typename Kind , typename Scalar = double>
constexpr bool Sym::U1< Kind, Scalar >::NON_ABELIAN = false
staticconstexpr

Definition at line 32 of file U1.h.

◆ Nq

template<typename Kind , typename Scalar = double>
constexpr size_t Sym::U1< Kind, Scalar >::Nq =1
staticconstexpr

Definition at line 29 of file U1.h.


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