Xped
|
Classes | |
struct | AltSpinSU2 |
struct | ChargeDn |
struct | ChargeSU2 |
struct | ChargeU1 |
struct | ChargeUp |
struct | ChargeZ2 |
struct | Combined |
struct | Combined< S1 > |
struct | Combined< S1, S2 > |
struct | FChargeSU2 |
struct | FChargeU1 |
class | S1xS2 |
struct | SpinSU2 |
struct | SpinU1 |
class | SU2 |
class | SUN |
struct | SymBase |
struct | SymTraits |
struct | SymTraits< S1xS2< S1, S2 > > |
struct | SymTraits< SU2< Kind_, Scalar__ > > |
struct | SymTraits< SUN< N, Kind_, Scalar__ > > |
struct | SymTraits< U0< Scalar__ > > |
struct | SymTraits< U1< Kind_, Scalar__ > > |
struct | SymTraits< ZN< Kind_, N_, Scalar__ > > |
class | U0 |
class | U1 |
class | ZN |
Enumerations | |
enum | KIND { S , Salt , T , FT , N , FN , M , Nup , Ndn , Z2 } |
Functions | |
template<typename Symmetry > | |
std::string | format (qarray< Symmetry::Nq > qnum) |
template<typename Scalar > | |
Scalar | phase (int q) |
template<typename Symmetry > | |
std::vector< std::pair< typename Symmetry::qType, typename Symmetry::qType > > | split (const typename Symmetry::qType Q, const std::vector< typename Symmetry::qType > &ql, const std::vector< typename Symmetry::qType > qr) |
template<typename Symmetry > | |
std::vector< std::pair< std::size_t, std::size_t > > | split (const typename Symmetry::qType Q, const std::vector< typename Symmetry::qType > &ql, const std::vector< typename Symmetry::qType > qr) |
void | initialize (int maxJ=1, std::string f_3j="", std::string f_6j="", std::string f_9j="") |
void | finalize (bool PRINT_STATS=false) |
enum Xped::Sym::KIND |
|
inline |
std::string Xped::Sym::format | ( | qarray< Symmetry::Nq > | qnum | ) |
Returns a formatted string for qnum
. \describe_Symmetry
qnum | : quantum number for formatting. |
|
inline |
This routine initializes the relevant objects for the calculation of \(3nj\)-symbols. The specific code varies from library to library:
maxJ
is the maximum angular momentum. It should be chosen high enough. The required memory for the prime factorization table is negligible.maxJ
). Additionaly the filenames to the precalculated symbols are required. f_3j
for \(3j\)-symbol, f_6j
for \(6j\)-symbol and f_9j
for \(9j\)-symbol. For the creation of the precomputed values see manual http://fy.chalmers.se/subatom/fastwigxj/README. The precomputed symbols (especially 9j) can be quite large in memory. Therefore, this library should only be used when performance gains are clearly present.Scalar Xped::Sym::phase | ( | int | q | ) |
std::vector< std::pair< typename Symmetry::qType, typename Symmetry::qType > > Xped::Sym::split | ( | const typename Symmetry::qType | Q, |
const std::vector< typename Symmetry::qType > & | ql, | ||
const std::vector< typename Symmetry::qType > | qr | ||
) |
Splits the quantum number Q
into pairs q1,q2 with \(Q \in q1 \otimes q2\). q1 and q2 can take all values from the given parameters ql
and qr
, respectively.
ql
and qr
, there exist infinity solutions. std::vector< std::pair< std::size_t, std::size_t > > Xped::Sym::split | ( | const typename Symmetry::qType | Q, |
const std::vector< typename Symmetry::qType > & | ql, | ||
const std::vector< typename Symmetry::qType > | qr | ||
) |