mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-03 21:44:33 +00:00 
			
		
		
		
	New automatic implementation of gamma matrices, Meson and SeqGamma are broken
This commit is contained in:
		@@ -36,11 +36,11 @@ struct scal {
 | 
			
		||||
  d internal;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  Gamma::GammaMatrix Gmu [] = {
 | 
			
		||||
    Gamma::GammaX,
 | 
			
		||||
    Gamma::GammaY,
 | 
			
		||||
    Gamma::GammaZ,
 | 
			
		||||
    Gamma::GammaT
 | 
			
		||||
  Gamma::Algebra Gmu [] = {
 | 
			
		||||
    Gamma::Algebra::GammaX,
 | 
			
		||||
    Gamma::Algebra::GammaY,
 | 
			
		||||
    Gamma::Algebra::GammaZ,
 | 
			
		||||
    Gamma::Algebra::GammaT
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
int main (int argc, char ** argv)
 | 
			
		||||
 
 | 
			
		||||
@@ -37,11 +37,11 @@ struct scal {
 | 
			
		||||
  d internal;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  Gamma::GammaMatrix Gmu [] = {
 | 
			
		||||
    Gamma::GammaX,
 | 
			
		||||
    Gamma::GammaY,
 | 
			
		||||
    Gamma::GammaZ,
 | 
			
		||||
    Gamma::GammaT
 | 
			
		||||
  Gamma::Algebra Gmu [] = {
 | 
			
		||||
    Gamma::Algebra::GammaX,
 | 
			
		||||
    Gamma::Algebra::GammaY,
 | 
			
		||||
    Gamma::Algebra::GammaZ,
 | 
			
		||||
    Gamma::Algebra::GammaT
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
int toint(const char* str){
 | 
			
		||||
 
 | 
			
		||||
@@ -36,11 +36,11 @@ struct scal {
 | 
			
		||||
  d internal;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  Gamma::GammaMatrix Gmu [] = {
 | 
			
		||||
    Gamma::GammaX,
 | 
			
		||||
    Gamma::GammaY,
 | 
			
		||||
    Gamma::GammaZ,
 | 
			
		||||
    Gamma::GammaT
 | 
			
		||||
  Gamma::Algebra Gmu [] = {
 | 
			
		||||
    Gamma::Algebra::GammaX,
 | 
			
		||||
    Gamma::Algebra::GammaY,
 | 
			
		||||
    Gamma::Algebra::GammaZ,
 | 
			
		||||
    Gamma::Algebra::GammaT
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -37,11 +37,11 @@ struct scal {
 | 
			
		||||
  d internal;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  Gamma::GammaMatrix Gmu [] = {
 | 
			
		||||
    Gamma::GammaX,
 | 
			
		||||
    Gamma::GammaY,
 | 
			
		||||
    Gamma::GammaZ,
 | 
			
		||||
    Gamma::GammaT
 | 
			
		||||
  Gamma::Algebra Gmu [] = {
 | 
			
		||||
    Gamma::Algebra::GammaX,
 | 
			
		||||
    Gamma::Algebra::GammaY,
 | 
			
		||||
    Gamma::Algebra::GammaZ,
 | 
			
		||||
    Gamma::Algebra::GammaT
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -37,11 +37,11 @@ struct scal {
 | 
			
		||||
  d internal;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  Gamma::GammaMatrix Gmu [] = {
 | 
			
		||||
    Gamma::GammaX,
 | 
			
		||||
    Gamma::GammaY,
 | 
			
		||||
    Gamma::GammaZ,
 | 
			
		||||
    Gamma::GammaT
 | 
			
		||||
  Gamma::Algebra Gmu [] = {
 | 
			
		||||
    Gamma::Algebra::GammaX,
 | 
			
		||||
    Gamma::Algebra::GammaY,
 | 
			
		||||
    Gamma::Algebra::GammaZ,
 | 
			
		||||
    Gamma::Algebra::GammaT
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
typedef WilsonFermion5D<DomainWallVec5dImplR> WilsonFermion5DR;
 | 
			
		||||
 
 | 
			
		||||
@@ -177,7 +177,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
    const int sdir=0;
 | 
			
		||||
    RealD mass=0.01;
 | 
			
		||||
    RealD M5  =1.0;
 | 
			
		||||
    Gamma G5(Gamma::Gamma5);
 | 
			
		||||
    Gamma G5(Gamma::Algebra::Gamma5);
 | 
			
		||||
 | 
			
		||||
    GridCartesian         * FGrid   = SpaceTimeGrid::makeFiveDimGrid(Ls,&GRID);
 | 
			
		||||
    GridRedBlackCartesian * FrbGrid = SpaceTimeGrid::makeFiveDimRedBlackGrid(Ls,&GRID);
 | 
			
		||||
@@ -218,12 +218,12 @@ int main (int argc, char ** argv)
 | 
			
		||||
    /////////////////////////////////////////////////////////////////
 | 
			
		||||
    // work out the predicted from Fourier
 | 
			
		||||
    /////////////////////////////////////////////////////////////////
 | 
			
		||||
    Gamma::GammaMatrix Gmu [] = {
 | 
			
		||||
      Gamma::GammaX,
 | 
			
		||||
      Gamma::GammaY,
 | 
			
		||||
      Gamma::GammaZ,
 | 
			
		||||
      Gamma::GammaT,
 | 
			
		||||
      Gamma::Gamma5
 | 
			
		||||
    Gamma::Algebra Gmu [] = {
 | 
			
		||||
      Gamma::Algebra::GammaX,
 | 
			
		||||
      Gamma::Algebra::GammaY,
 | 
			
		||||
      Gamma::Algebra::GammaZ,
 | 
			
		||||
      Gamma::Algebra::GammaT,
 | 
			
		||||
      Gamma::Algebra::Gamma5
 | 
			
		||||
    };
 | 
			
		||||
    LatticeFermionD    Kinetic(FGrid); Kinetic = zero;
 | 
			
		||||
    LatticeComplexD    kmu(FGrid); 
 | 
			
		||||
@@ -311,7 +311,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
    std::cout << " Solving by FFT and Feynman rules" <<std::endl;
 | 
			
		||||
    Ddwf.FreePropagator(src,ref,mass) ;
 | 
			
		||||
 | 
			
		||||
    Gamma G5(Gamma::Gamma5);
 | 
			
		||||
    Gamma G5(Gamma::Algebra::Gamma5);
 | 
			
		||||
 | 
			
		||||
    LatticeFermionD    src5(FGrid); src5=zero;
 | 
			
		||||
    LatticeFermionD    tmp5(FGrid); 
 | 
			
		||||
@@ -391,7 +391,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
    std::cout << " Solving by FFT and Feynman rules" <<std::endl;
 | 
			
		||||
    Dov.FreePropagator(src,ref,mass) ;
 | 
			
		||||
 | 
			
		||||
    Gamma G5(Gamma::Gamma5);
 | 
			
		||||
    Gamma G5(Gamma::Algebra::Gamma5);
 | 
			
		||||
 | 
			
		||||
    LatticeFermionD    src5(FGrid); src5=zero;
 | 
			
		||||
    LatticeFermionD    tmp5(FGrid); 
 | 
			
		||||
 
 | 
			
		||||
@@ -81,7 +81,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
    ident()(a,a) = ComplexF(1.0);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const Gamma::GammaMatrix *g = Gamma::GammaMatrices;
 | 
			
		||||
  const Gamma::Algebra *g = Gamma::GammaMatrices;
 | 
			
		||||
  const char **list           = Gamma::GammaMatrixNames;
 | 
			
		||||
 | 
			
		||||
  result =ll*Gamma(g[0])*rr;
 | 
			
		||||
@@ -152,70 +152,70 @@ int main (int argc, char ** argv)
 | 
			
		||||
  double mag;
 | 
			
		||||
  spProjXp(hsm,rv);
 | 
			
		||||
  spReconXp(recon,hsm);
 | 
			
		||||
  full = rv + Gamma(Gamma::GammaX) *rv;
 | 
			
		||||
  full = rv + Gamma(Gamma::Algebra::GammaX) *rv;
 | 
			
		||||
  mag = TensorRemove(norm2(full-recon));
 | 
			
		||||
  std::cout << "Xp "<< mag<<std::endl;
 | 
			
		||||
 | 
			
		||||
  // Xm
 | 
			
		||||
  spProjXm(hsm,rv);
 | 
			
		||||
  spReconXm(recon,hsm);
 | 
			
		||||
  full = rv - Gamma(Gamma::GammaX) *rv;
 | 
			
		||||
  full = rv - Gamma(Gamma::Algebra::GammaX) *rv;
 | 
			
		||||
  mag = TensorRemove(norm2(full-recon));
 | 
			
		||||
  std::cout << "Xm "<< mag<<std::endl;
 | 
			
		||||
 | 
			
		||||
  // Yp
 | 
			
		||||
  spProjYp(hsm,rv);
 | 
			
		||||
  spReconYp(recon,hsm);
 | 
			
		||||
  full = rv + Gamma(Gamma::GammaY) *rv;
 | 
			
		||||
  full = rv + Gamma(Gamma::Algebra::GammaY) *rv;
 | 
			
		||||
  mag = TensorRemove(norm2(full-recon));
 | 
			
		||||
  std::cout << "Yp "<< mag<<std::endl;
 | 
			
		||||
 | 
			
		||||
  // Ym
 | 
			
		||||
  spProjYm(hsm,rv);
 | 
			
		||||
  spReconYm(recon,hsm);
 | 
			
		||||
  full = rv - Gamma(Gamma::GammaY) *rv;
 | 
			
		||||
  full = rv - Gamma(Gamma::Algebra::GammaY) *rv;
 | 
			
		||||
  mag = TensorRemove(norm2(full-recon));
 | 
			
		||||
  std::cout << "Ym "<< mag<<std::endl;
 | 
			
		||||
 | 
			
		||||
  // Zp
 | 
			
		||||
  spProjZp(hsm,rv);
 | 
			
		||||
  spReconZp(recon,hsm);
 | 
			
		||||
  full = rv + Gamma(Gamma::GammaZ) *rv;
 | 
			
		||||
  full = rv + Gamma(Gamma::Algebra::GammaZ) *rv;
 | 
			
		||||
  mag = TensorRemove(norm2(full-recon));
 | 
			
		||||
  std::cout << "Zp "<< mag<<std::endl;
 | 
			
		||||
 | 
			
		||||
  // Zm
 | 
			
		||||
  spProjZm(hsm,rv);
 | 
			
		||||
  spReconZm(recon,hsm);
 | 
			
		||||
  full = rv - Gamma(Gamma::GammaZ) *rv;
 | 
			
		||||
  full = rv - Gamma(Gamma::Algebra::GammaZ) *rv;
 | 
			
		||||
  mag = TensorRemove(norm2(full-recon));
 | 
			
		||||
  std::cout << "Zm "<< mag<<std::endl;
 | 
			
		||||
 | 
			
		||||
  // Tp
 | 
			
		||||
  spProjTp(hsm,rv);
 | 
			
		||||
  spReconTp(recon,hsm);
 | 
			
		||||
  full = rv + Gamma(Gamma::GammaT) *rv;
 | 
			
		||||
  full = rv + Gamma(Gamma::Algebra::GammaT) *rv;
 | 
			
		||||
  mag = TensorRemove(norm2(full-recon));
 | 
			
		||||
  std::cout << "Tp "<< mag<<std::endl;
 | 
			
		||||
 | 
			
		||||
  // Tm
 | 
			
		||||
  spProjTm(hsm,rv);
 | 
			
		||||
  spReconTm(recon,hsm);
 | 
			
		||||
  full = rv - Gamma(Gamma::GammaT) *rv;
 | 
			
		||||
  full = rv - Gamma(Gamma::Algebra::GammaT) *rv;
 | 
			
		||||
  mag = TensorRemove(norm2(full-recon));
 | 
			
		||||
  std::cout << "Tm "<< mag<<std::endl;
 | 
			
		||||
 | 
			
		||||
  // 5p
 | 
			
		||||
  spProj5p(hsm,rv);
 | 
			
		||||
  spRecon5p(recon,hsm);
 | 
			
		||||
  full = rv + Gamma(Gamma::Gamma5) *rv;
 | 
			
		||||
  full = rv + Gamma(Gamma::Algebra::Gamma5) *rv;
 | 
			
		||||
  mag = TensorRemove(norm2(full-recon));
 | 
			
		||||
  std::cout << "5p "<< mag<<std::endl;
 | 
			
		||||
 | 
			
		||||
  // 5m
 | 
			
		||||
  spProj5m(hsm,rv);
 | 
			
		||||
  spRecon5m(recon,hsm);
 | 
			
		||||
  full = rv - Gamma(Gamma::Gamma5) *rv;
 | 
			
		||||
  full = rv - Gamma(Gamma::Algebra::Gamma5) *rv;
 | 
			
		||||
  mag = TensorRemove(norm2(full-recon));
 | 
			
		||||
  std::cout << "5m "<< mag<<std::endl;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -37,11 +37,11 @@ struct scal {
 | 
			
		||||
  d internal;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  Gamma::GammaMatrix Gmu [] = {
 | 
			
		||||
    Gamma::GammaX,
 | 
			
		||||
    Gamma::GammaY,
 | 
			
		||||
    Gamma::GammaZ,
 | 
			
		||||
    Gamma::GammaT
 | 
			
		||||
  Gamma::Algebra Gmu [] = {
 | 
			
		||||
    Gamma::Algebra::GammaX,
 | 
			
		||||
    Gamma::Algebra::GammaY,
 | 
			
		||||
    Gamma::Algebra::GammaZ,
 | 
			
		||||
    Gamma::Algebra::GammaT
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
int main (int argc, char ** argv)
 | 
			
		||||
 
 | 
			
		||||
@@ -36,11 +36,11 @@ struct scal {
 | 
			
		||||
  d internal;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  Gamma::GammaMatrix Gmu [] = {
 | 
			
		||||
    Gamma::GammaX,
 | 
			
		||||
    Gamma::GammaY,
 | 
			
		||||
    Gamma::GammaZ,
 | 
			
		||||
    Gamma::GammaT
 | 
			
		||||
  Gamma::Algebra Gmu [] = {
 | 
			
		||||
    Gamma::Algebra::GammaX,
 | 
			
		||||
    Gamma::Algebra::GammaY,
 | 
			
		||||
    Gamma::Algebra::GammaZ,
 | 
			
		||||
    Gamma::Algebra::GammaT
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
int main (int argc, char ** argv)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user