Grid 0.7.0
SUn.impl.h File Reference

Go to the source code of this file.

Functions

template<ONLY_IF_SU>
static int su2subgroups (GroupName::SU)
template<class cplx, ONLY_IF_SU>
static void generator (int lieIndex, iGroupMatrix< cplx > &ta, GroupName::SU)
template<class cplx, ONLY_IF_SU>
static void generatorSigmaY (int su2Index, iGroupMatrix< cplx > &ta)
template<class cplx, ONLY_IF_SU>
static void generatorSigmaX (int su2Index, iGroupMatrix< cplx > &ta)
template<class cplx, ONLY_IF_SU>
static void generatorDiagonal (int diagIndex, iGroupMatrix< cplx > &ta)
static accelerator_inline void su2SubGroupIndex (int &i1, int &i2, int su2_index, GroupName::SU)
template<class vcplx, ONLY_IF_SU>
static void su2Extract (Lattice< iSinglet< vcplx > > &Determinant, Lattice< iSU2Matrix< vcplx > > &subgroup, const Lattice< iGroupMatrix< vcplx > > &source, int su2_index)
template<class vcplx, ONLY_IF_SU>
static void su2Insert (const Lattice< iSU2Matrix< vcplx > > &subgroup, Lattice< iGroupMatrix< vcplx > > &dest, int su2_index)
template<ONLY_IF_SU>
static void SubGroupHeatBath (GridSerialRNG &sRNG, GridParallelRNG &pRNG, RealD beta, LatticeMatrix &link, const LatticeMatrix &barestaple, int su2_subgroup, int nheatbath, LatticeInteger &wheremask)
template<ONLY_IF_SU>
static void testGenerators (GroupName::SU)
template<int N, class vtype>
static Lattice< iScalar< iScalar< iMatrix< vtype, N > > > > ProjectOnGeneralGroup (const Lattice< iScalar< iScalar< iMatrix< vtype, N > > > > &Umu, GroupName::SU)
template<class vtype>
static accelerator_inline iScalar< vtype > ProjectOnGeneralGroup (const iScalar< vtype > &r, GroupName::SU)
template<class vtype, int N>
static accelerator_inline iVector< vtype, N > ProjectOnGeneralGroup (const iVector< vtype, N > &r, GroupName::SU)
template<class vtype, int N, typename std::enable_if< GridTypeMapper< vtype >::TensorLevel==0 >::type * = nullptr>
static accelerator_inline iMatrix< vtype, N > ProjectOnGeneralGroup (const iMatrix< vtype, N > &arg, GroupName::SU)
template<typename LatticeMatrixType>
static void taProj (const LatticeMatrixType &in, LatticeMatrixType &out, GroupName::SU)
template<typename Fundamental, typename GaugeMat>
static void GaugeTransformFundamental (Fundamental &ferm, GaugeMat &g)
template<typename Gimpl>
static void GaugeTransform (typename Gimpl::GaugeField &Umu, typename Gimpl::GaugeLinkField &g)
template<typename Gimpl>
static void GaugeTransform (std::vector< typename Gimpl::GaugeLinkField > &U, typename Gimpl::GaugeLinkField &g)
template<typename Gimpl>
static void RandomGaugeTransform (GridParallelRNG &pRNG, typename Gimpl::GaugeField &Umu, typename Gimpl::GaugeLinkField &g)

Function Documentation

◆ su2subgroups()

template<ONLY_IF_SU>
int su2subgroups ( GroupName::SU )
staticprivate

Definition at line 15 of file SUn.impl.h.

◆ generator()

template<class cplx, ONLY_IF_SU>
void generator ( int lieIndex,
iGroupMatrix< cplx > & ta,
GroupName::SU  )
staticprivate

Definition at line 65 of file SUn.impl.h.

References generatorDiagonal(), generatorSigmaX(), and generatorSigmaY().

Referenced by testGenerators().

◆ generatorSigmaY()

template<class cplx, ONLY_IF_SU>
void generatorSigmaY ( int su2Index,
iGroupMatrix< cplx > & ta )
staticprivate

Definition at line 85 of file SUn.impl.h.

References su2SubGroupIndex().

Referenced by generator().

◆ generatorSigmaX()

template<class cplx, ONLY_IF_SU>
void generatorSigmaX ( int su2Index,
iGroupMatrix< cplx > & ta )
staticprivate

Definition at line 95 of file SUn.impl.h.

References su2SubGroupIndex().

Referenced by generator().

◆ generatorDiagonal()

template<class cplx, ONLY_IF_SU>
void generatorDiagonal ( int diagIndex,
iGroupMatrix< cplx > & ta )
staticprivate

Definition at line 106 of file SUn.impl.h.

Referenced by generator().

◆ su2SubGroupIndex()

accelerator_inline void su2SubGroupIndex ( int & i1,
int & i2,
int su2_index,
GroupName::SU  )
staticprivate

Definition at line 121 of file SUn.impl.h.

References accelerator_inline.

Referenced by generatorSigmaX(), generatorSigmaY(), su2Extract(), and su2Insert().

◆ su2Extract()

template<class vcplx, ONLY_IF_SU>
void su2Extract ( Lattice< iSinglet< vcplx > > & Determinant,
Lattice< iSU2Matrix< vcplx > > & subgroup,
const Lattice< iGroupMatrix< vcplx > > & source,
int su2_index )
static

◆ su2Insert()

template<class vcplx, ONLY_IF_SU>
void su2Insert ( const Lattice< iSU2Matrix< vcplx > > & subgroup,
Lattice< iGroupMatrix< vcplx > > & dest,
int su2_index )
static

◆ SubGroupHeatBath()

template<ONLY_IF_SU>
void SubGroupHeatBath ( GridSerialRNG & sRNG,
GridParallelRNG & pRNG,
RealD beta,
LatticeMatrix & link,
const LatticeMatrix & barestaple,
int su2_subgroup,
int nheatbath,
LatticeInteger & wheremask )
static

◆ testGenerators()

template<ONLY_IF_SU>
void testGenerators ( GroupName::SU )
static

Definition at line 475 of file SUn.impl.h.

References abs(), adj(), generator(), GridLogMessage, norm2(), TensorRemove(), and trace().

◆ ProjectOnGeneralGroup() [1/4]

template<int N, class vtype>
Lattice< iScalar< iScalar< iMatrix< vtype, N > > > > ProjectOnGeneralGroup ( const Lattice< iScalar< iScalar< iMatrix< vtype, N > > > > & Umu,
GroupName::SU  )
static

Definition at line 516 of file SUn.impl.h.

References ProjectOnGroup().

◆ ProjectOnGeneralGroup() [2/4]

template<class vtype>
accelerator_inline iScalar< vtype > ProjectOnGeneralGroup ( const iScalar< vtype > & r,
GroupName::SU  )
static

Definition at line 521 of file SUn.impl.h.

References accelerator_inline, and ProjectOnGroup().

◆ ProjectOnGeneralGroup() [3/4]

template<class vtype, int N>
accelerator_inline iVector< vtype, N > ProjectOnGeneralGroup ( const iVector< vtype, N > & r,
GroupName::SU  )
static

Definition at line 526 of file SUn.impl.h.

References accelerator_inline, and ProjectOnGroup().

◆ ProjectOnGeneralGroup() [4/4]

template<class vtype, int N, typename std::enable_if< GridTypeMapper< vtype >::TensorLevel==0 >::type * = nullptr>
accelerator_inline iMatrix< vtype, N > ProjectOnGeneralGroup ( const iMatrix< vtype, N > & arg,
GroupName::SU  )
static

Definition at line 531 of file SUn.impl.h.

References accelerator_inline, and ProjectOnGroup().

◆ taProj()

template<typename LatticeMatrixType>
void taProj ( const LatticeMatrixType & in,
LatticeMatrixType & out,
GroupName::SU  )
static

Definition at line 536 of file SUn.impl.h.

References Ta().

◆ GaugeTransformFundamental()

template<typename Fundamental, typename GaugeMat>
void GaugeTransformFundamental ( Fundamental & ferm,
GaugeMat & g )
static

Definition at line 544 of file SUn.impl.h.

References conformable().

◆ GaugeTransform() [1/2]

template<typename Gimpl>
void GaugeTransform ( typename Gimpl::GaugeField & Umu,
typename Gimpl::GaugeLinkField & g )
static

Definition at line 554 of file SUn.impl.h.

References adj(), conformable(), Nd, PeekIndex(), PokeIndex(), and U.

Referenced by RandomGaugeTransform().

◆ GaugeTransform() [2/2]

template<typename Gimpl>
void GaugeTransform ( std::vector< typename Gimpl::GaugeLinkField > & U,
typename Gimpl::GaugeLinkField & g )
static

Definition at line 568 of file SUn.impl.h.

References adj(), Nd, and U.

◆ RandomGaugeTransform()

template<typename Gimpl>
void RandomGaugeTransform ( GridParallelRNG & pRNG,
typename Gimpl::GaugeField & Umu,
typename Gimpl::GaugeLinkField & g )
static

Definition at line 576 of file SUn.impl.h.

References GaugeTransform().