mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-04 11:15:55 +01:00
consequence of iSUnMatrix being no longer a member of the SU class
This commit is contained in:
parent
d6ff644aab
commit
371fd123fb
@ -51,14 +51,16 @@ public:
|
|||||||
typedef Lattice<iVector<iScalar<iMatrix<vComplexF, Dimension> >, Nd> > LatticeAdjFieldF;
|
typedef Lattice<iVector<iScalar<iMatrix<vComplexF, Dimension> >, Nd> > LatticeAdjFieldF;
|
||||||
typedef Lattice<iVector<iScalar<iMatrix<vComplexD, Dimension> >, Nd> > LatticeAdjFieldD;
|
typedef Lattice<iVector<iScalar<iMatrix<vComplexD, Dimension> >, Nd> > LatticeAdjFieldD;
|
||||||
|
|
||||||
|
template <typename vtype>
|
||||||
|
using iSUnMatrix = iScalar<iScalar<iMatrix<vtype, ncolour> > >;
|
||||||
|
|
||||||
template <class cplx>
|
template <class cplx>
|
||||||
static void generator(int Index, iSUnAdjointMatrix<cplx> &iAdjTa) {
|
static void generator(int Index, iSUnAdjointMatrix<cplx> &iAdjTa) {
|
||||||
// returns i(T_Adj)^index necessary for the projectors
|
// returns i(T_Adj)^index necessary for the projectors
|
||||||
// see definitions above
|
// see definitions above
|
||||||
iAdjTa = Zero();
|
iAdjTa = Zero();
|
||||||
Vector<typename SU<ncolour>::template iSUnMatrix<cplx> > ta(ncolour * ncolour - 1);
|
Vector<iSUnMatrix<cplx> > ta(ncolour * ncolour - 1);
|
||||||
typename SU<ncolour>::template iSUnMatrix<cplx> tmp;
|
iSUnMatrix<cplx> tmp;
|
||||||
|
|
||||||
// FIXME not very efficient to get all the generators everytime
|
// FIXME not very efficient to get all the generators everytime
|
||||||
for (int a = 0; a < Dimension; a++) SU<ncolour>::generator(a, ta[a]);
|
for (int a = 0; a < Dimension; a++) SU<ncolour>::generator(a, ta[a]);
|
||||||
@ -66,7 +68,7 @@ public:
|
|||||||
for (int a = 0; a < Dimension; a++) {
|
for (int a = 0; a < Dimension; a++) {
|
||||||
tmp = ta[a] * ta[Index] - ta[Index] * ta[a];
|
tmp = ta[a] * ta[Index] - ta[Index] * ta[a];
|
||||||
for (int b = 0; b < (ncolour * ncolour - 1); b++) {
|
for (int b = 0; b < (ncolour * ncolour - 1); b++) {
|
||||||
typename SU<ncolour>::template iSUnMatrix<cplx> tmp1 =
|
iSUnMatrix<cplx> tmp1 =
|
||||||
2.0 * tmp * ta[b]; // 2.0 from the normalization
|
2.0 * tmp * ta[b]; // 2.0 from the normalization
|
||||||
Complex iTr = TensorRemove(timesI(trace(tmp1)));
|
Complex iTr = TensorRemove(timesI(trace(tmp1)));
|
||||||
//iAdjTa()()(b, a) = iTr;
|
//iAdjTa()()(b, a) = iTr;
|
||||||
|
@ -126,10 +126,10 @@ public:
|
|||||||
|
|
||||||
template <class cplx>
|
template <class cplx>
|
||||||
static void generator(int Index, iSUnTwoIndexMatrix<cplx> &i2indTa) {
|
static void generator(int Index, iSUnTwoIndexMatrix<cplx> &i2indTa) {
|
||||||
Vector<typename SU<ncolour>::template iSUnMatrix<cplx> > ta(
|
Vector<iSUnMatrix<cplx> > ta(
|
||||||
ncolour * ncolour - 1);
|
ncolour * ncolour - 1);
|
||||||
Vector<typename SU<ncolour>::template iSUnMatrix<cplx> > eij(Dimension);
|
Vector<iSUnMatrix<cplx> > eij(Dimension);
|
||||||
typename SU<ncolour>::template iSUnMatrix<cplx> tmp;
|
iSUnMatrix<cplx> tmp;
|
||||||
i2indTa = Zero();
|
i2indTa = Zero();
|
||||||
|
|
||||||
for (int a = 0; a < ncolour * ncolour - 1; a++)
|
for (int a = 0; a < ncolour * ncolour - 1; a++)
|
||||||
@ -140,7 +140,7 @@ public:
|
|||||||
for (int a = 0; a < Dimension; a++) {
|
for (int a = 0; a < Dimension; a++) {
|
||||||
tmp = transpose(ta[Index]) * adj(eij[a]) + adj(eij[a]) * ta[Index];
|
tmp = transpose(ta[Index]) * adj(eij[a]) + adj(eij[a]) * ta[Index];
|
||||||
for (int b = 0; b < Dimension; b++) {
|
for (int b = 0; b < Dimension; b++) {
|
||||||
typename SU<ncolour>::template iSUnMatrix<cplx> tmp1 =
|
iSUnMatrix<cplx> tmp1 =
|
||||||
tmp * eij[b];
|
tmp * eij[b];
|
||||||
Complex iTr = TensorRemove(timesI(trace(tmp1)));
|
Complex iTr = TensorRemove(timesI(trace(tmp1)));
|
||||||
i2indTa()()(a, b) = iTr;
|
i2indTa()()(a, b) = iTr;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user