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

Detailed Description

template<typename Kind, int N, typename Scalar = double>
class Sym::ZN< Kind, N, Scalar >

Class for handling a Z(N) symmetry of a Hamiltonian.

Template Parameters
Scalar: double or complex<double>

Definition at line 24 of file ZN.h.

#include <ZN.h>

Public Types

typedef Scalar Scalar_
 
typedef qarray< NqqType
 

Public Member Functions

 ZN ()
 
template<std::size_t M>
bool compare (const std::array< ZN< Kind, N, Scalar >::qType, M > &q1, const std::array< ZN< Kind, N, Scalar >::qType, M > &q2)
 
template<std::size_t M>
bool validate (const std::array< ZN< Kind, N, 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 Scalar coeff_swapPhase (const qType &q1, const qType &q2, const qType &q3)
 
static Scalar coeff_leftSweep2 (const qType &q1, const qType &q2, const qType &q3)
 
static Scalar coeff_leftSweep3 (const qType &q1, const qType &q2, const qType &q3)
 
static Scalar coeff_sign (const qType &q1, const qType &q2, const qType &q3)
 
static Scalar coeff_sign2 (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_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_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 Scalar coeff_Wpair (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, const qType &q10, const qType &q11, const qType &q12)
 
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_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_twoSiteGate (const qType &q1, const qType &q2, const qType &q3, const qType &q4, const qType &q5, const qType &q6)
 

Static Public Attributes

static constexpr int 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 = true
 
static constexpr int MOD_N = N
 
static constexpr size_t lowest_qs_size = 2
 

Member Typedef Documentation

◆ qType

template<typename Kind , int N, typename Scalar = double>
typedef qarray<Nq> Sym::ZN< Kind, N, Scalar >::qType

Definition at line 45 of file ZN.h.

◆ Scalar_

template<typename Kind , int N, typename Scalar = double>
typedef Scalar Sym::ZN< Kind, N, Scalar >::Scalar_

Definition at line 27 of file ZN.h.

Constructor & Destructor Documentation

◆ ZN()

template<typename Kind , int N, typename Scalar = double>
Sym::ZN< Kind, N, Scalar >::ZN ( )
inline

Definition at line 47 of file ZN.h.

Member Function Documentation

◆ coeff_3j()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 325 of file ZN.h.

◆ coeff_6j()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 341 of file ZN.h.

◆ coeff_9j()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 358 of file ZN.h.

◆ coeff_adjoint()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 317 of file ZN.h.

◆ coeff_Apair()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 349 of file ZN.h.

◆ coeff_AW()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 406 of file ZN.h.

◆ coeff_buildL()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 376 of file ZN.h.

◆ coeff_buildR()

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

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

Note
All coefficients are trivial for Z(N) 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 367 of file ZN.h.

◆ coeff_CGC()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 333 of file ZN.h.

◆ coeff_dot()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 261 of file ZN.h.

◆ coeff_HPsi()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 396 of file ZN.h.

◆ coeff_leftSweep()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 301 of file ZN.h.

◆ coeff_leftSweep2()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 285 of file ZN.h.

◆ coeff_leftSweep3()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 293 of file ZN.h.

◆ coeff_MPOprod6()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, Scalar >::coeff_MPOprod6 ( 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 Z(N) 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 436 of file ZN.h.

◆ coeff_MPOprod9()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 445 of file ZN.h.

◆ coeff_prod()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 427 of file ZN.h.

◆ coeff_rightOrtho()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 269 of file ZN.h.

◆ coeff_sign()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, Scalar >::coeff_sign ( 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 Z(N) 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 309 of file ZN.h.

◆ coeff_sign2()

template<typename Kind , int N, typename Scalar = double>
static Scalar Sym::ZN< Kind, N, Scalar >::coeff_sign2 ( 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 Z(N) 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 109 of file ZN.h.

◆ coeff_splitAA() [1/2]

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 455 of file ZN.h.

◆ coeff_splitAA() [2/2]

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 463 of file ZN.h.

◆ coeff_swapPhase()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 277 of file ZN.h.

◆ coeff_tensorProd()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 386 of file ZN.h.

◆ coeff_twoSiteGate()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, 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 Z(N) 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 472 of file ZN.h.

◆ coeff_unity()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, Scalar >::coeff_unity
inlinestatic

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

Note
All coefficients are trivial for Z(N) 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 253 of file ZN.h.

◆ coeff_Wpair()

template<typename Kind , int N, typename Scalar >
Scalar Sym::ZN< Kind, N, Scalar >::coeff_Wpair ( 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,
const qType q10,
const qType q11,
const qType q12 
)
inlinestatic

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

Note
All coefficients are trivial for Z(N) 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 416 of file ZN.h.

◆ compare() [1/2]

template<typename Kind , int N, typename Scalar = double>
template<std::size_t M>
static bool Sym::ZN< Kind, N, 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 , int N, typename Scalar = double>
template<std::size_t M>
bool Sym::ZN< Kind, N, Scalar >::compare ( const std::array< ZN< Kind, N, Scalar >::qType, M > &  q1,
const std::array< ZN< Kind, N, Scalar >::qType, M > &  q2 
)

Definition at line 482 of file ZN.h.

◆ degeneracy()

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

Definition at line 68 of file ZN.h.

◆ flip()

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

Definition at line 67 of file ZN.h.

◆ IS_CHARGE_SU2()

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

Definition at line 38 of file ZN.h.

◆ IS_SPIN_SU2()

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

Definition at line 39 of file ZN.h.

◆ IS_SPIN_U1()

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

Definition at line 40 of file ZN.h.

◆ kind()

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

Definition at line 64 of file ZN.h.

◆ lowest_qs()

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

Definition at line 52 of file ZN.h.

◆ mod()

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

Definition at line 65 of file ZN.h.

◆ name()

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

Definition at line 58 of file ZN.h.

◆ NO_CHARGE_SYM()

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

Definition at line 43 of file ZN.h.

◆ NO_SPIN_SYM()

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

Definition at line 42 of file ZN.h.

◆ pair()

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

Definition at line 503 of file ZN.h.

◆ qvacuum()

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

Definition at line 49 of file ZN.h.

◆ reduceSilent() [1/4]

template<typename Kind , int N, typename Scalar >
std::vector< typename ZN< Kind, N, Scalar >::qType > Sym::ZN< Kind, N, 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 190 of file ZN.h.

◆ reduceSilent() [2/4]

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

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

Definition at line 180 of file ZN.h.

◆ reduceSilent() [3/4]

template<typename Kind , int N, typename Scalar >
std::vector< typename ZN< Kind, N, Scalar >::qType > Sym::ZN< Kind, N, 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 199 of file ZN.h.

◆ reduceSilent() [4/4]

template<typename Kind , int N, typename Scalar >
std::vector< typename ZN< Kind, N, Scalar >::qType > Sym::ZN< Kind, N, 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 211 of file ZN.h.

◆ spinorFactor()

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

Definition at line 70 of file ZN.h.

◆ tensorProd()

template<typename Kind , int N, typename Scalar >
vector< tuple< qarray< 1 >, size_t, qarray< 1 >, size_t, qarray< 1 > > > Sym::ZN< Kind, N, 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 240 of file ZN.h.

◆ triangle()

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

Definition at line 494 of file ZN.h.

◆ validate() [1/2]

template<typename Kind , int N, typename Scalar = double>
template<std::size_t M>
static bool Sym::ZN< Kind, N, 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 , int N, typename Scalar = double>
template<std::size_t M>
bool Sym::ZN< Kind, N, Scalar >::validate ( const std::array< ZN< Kind, N, Scalar >::qType, M > &  qs)

Definition at line 513 of file ZN.h.

Member Data Documentation

◆ ABELIAN

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

Definition at line 33 of file ZN.h.

◆ HAS_CGC

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

Definition at line 31 of file ZN.h.

◆ IS_MODULAR

template<typename Kind , int N, typename Scalar = double>
constexpr bool Sym::ZN< Kind, N, Scalar >::IS_MODULAR = true
staticconstexpr

Definition at line 35 of file ZN.h.

◆ IS_TRIVIAL

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

Definition at line 34 of file ZN.h.

◆ lowest_qs_size

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

Definition at line 51 of file ZN.h.

◆ MOD_N

template<typename Kind , int N, typename Scalar = double>
constexpr int Sym::ZN< Kind, N, Scalar >::MOD_N = N
staticconstexpr

Definition at line 36 of file ZN.h.

◆ NON_ABELIAN

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

Definition at line 32 of file ZN.h.

◆ Nq

template<typename Kind , int N, typename Scalar = double>
constexpr int Sym::ZN< Kind, N, Scalar >::Nq =1
staticconstexpr

Definition at line 29 of file ZN.h.


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