CHROMA
Classes | Functions
Chroma::QDPCloverEnv Namespace Reference

TRIACNTR. More...

Classes

struct  QUDAPackArgs
 
struct  QDPCloverMakeClovArg
 
struct  LDagDLInvArgs
 
struct  TriaCntrArgs
 
struct  ApplyArgs
 

Functions

template<typename R , typename TD , typename TO >
void qudaPackSiteLoop (int lo, int hi, int myId, QUDAPackArgs< R, TD, TO > *a)
 
template<typename U >
void makeClovSiteLoop (int lo, int hi, int myId, QDPCloverMakeClovArg< U > *a)
 
template<typename U >
void LDagDLInvSiteLoop (int lo, int hi, int myId, LDagDLInvArgs< U > *a)
 
template<typename U >
void cholesSiteLoop (int lo, int hi, int myId, LDagDLInvArgs< U > *a)
 
template<typename U >
void triaCntrSiteLoop (int lo, int hi, int myId, TriaCntrArgs< U > *a)
 
template<typename T >
void applySiteLoop (int lo, int hi, int MyId, ApplyArgs< T > *arg)
 
template<typename R >
void qudaPackSiteLoop (int lo, int hi, int myId, QUDAPackArgs< R > *a)
 

Detailed Description

TRIACNTR.

CHLCLOVMS - Cholesky decompose the clover mass term and uses it to compute lower(A^-1) = lower((L.L^dag)^-1) Adapted from Golub and Van Loan, Matrix Computations, 2nd, Sec 4.2.4

Arguments:

Parameters
DetPflag whether to compute determinant (Read)
logdetlogarithm of the determinant (Write)
cbcheckerboard of work (Read)

Calculates Tr_D ( Gamma_mat L )

This routine is specific to Wilson fermions!

the trace over the Dirac indices for one of the 16 Gamma matrices and a hermitian color x spin matrix A, stored as a block diagonal complex lower triangular matrix L and a real diagonal diag_L.

Here 0 <= mat <= 15 and if mat = mat_1 + mat_2 * 2 + mat_3 * 4 + mat_4 * 8

Gamma(mat) = gamma(1)^(mat_1) * gamma(2)^(mat_2) * gamma(3)^(mat_3)

Further, in basis for the Gamma matrices used, A is of the form

| A_0 |  0  |

A = | ------— | | 0 | A_1 |

Arguments:

Parameters
Bthe resulting SU(N) color matrix (Write)
clovclover term (Read)
matlabel of the Gamma matrix (Read)

Function Documentation

◆ applySiteLoop()

template<typename T >
void Chroma::QDPCloverEnv::applySiteLoop ( int  lo,
int  hi,
int  MyId,
ApplyArgs< T > *  arg 
)

◆ cholesSiteLoop()

template<typename U >
void Chroma::QDPCloverEnv::cholesSiteLoop ( int  lo,
int  hi,
int  myId,
LDagDLInvArgs< U > *  a 
)
inline

◆ LDagDLInvSiteLoop()

template<typename U >
void Chroma::QDPCloverEnv::LDagDLInvSiteLoop ( int  lo,
int  hi,
int  myId,
LDagDLInvArgs< U > *  a 
)
inline

◆ makeClovSiteLoop()

template<typename U >
void Chroma::QDPCloverEnv::makeClovSiteLoop ( int  lo,
int  hi,
int  myId,
QDPCloverMakeClovArg< U > *  a 
)
inline

◆ qudaPackSiteLoop() [1/2]

template<typename R >
void Chroma::QDPCloverEnv::qudaPackSiteLoop ( int  lo,
int  hi,
int  myId,
QUDAPackArgs< R > *  a 
)

◆ qudaPackSiteLoop() [2/2]

template<typename R , typename TD , typename TO >
void Chroma::QDPCloverEnv::qudaPackSiteLoop ( int  lo,
int  hi,
int  myId,
QUDAPackArgs< R, TD, TO > *  a 
)

Definition at line 1743 of file clover_term_llvm_w.h.

References Chroma::a, Chroma::cb, and Chroma::i.

◆ triaCntrSiteLoop()

template<typename U >
void Chroma::QDPCloverEnv::triaCntrSiteLoop ( int  lo,
int  hi,
int  myId,
TriaCntrArgs< U > *  a 
)
inline