Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

fermiqcd_fermi_smearing.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00024 class WupperthalSmearing {
00025  public:
00026   static void smear(fermi_field& psi, 
00027                     gauge_field& U,
00028                     coefficients& coeff) {
00029 
00030     if(coeff.has_key("factor")) 
00031       error("WupperthelSmearing::smear()\nCoefficient 'factor' undefined.");
00032     if(coeff.has_key("steps")) 
00033       error("WupperthelSmearing::smear()\nCoefficient 'steps' undefined.");
00034     mdp_real factor=coeff["factor"];
00035     int steps    =coeff["steps"];
00036 
00037     fermi_field chi(psi.lattice(),psi.nc, psi.nspin);
00038     site x(psi.lattice());
00039     int a,mu,i,j;
00040     for(i=0; i<steps; i++) {
00041       chi=psi;
00042       forallsites(x) 
00043         for(a=0; a<psi.nspin; a++)
00044          for(mu=1; mu<U.ndim; mu++) 
00045            psi(x,a)+=factor*(U(x,mu)*chi(x+mu,a)+U(x,-1,mu)*chi(x-mu,a));
00046    }
00047     psi.update();
00048   }
00049 };
00050 
00051 
00053 void smearSink(fermi_propagator &S, 
00054                gauge_field &U,
00055                void (*smf)(fermi_field&,
00056                            gauge_field&,
00057                            coefficients&),
00058                coefficients& coeff) {
00059   fermi_field psi(S.lattice(),S.nc, S.nspin);
00060   site x(psi.lattice());
00061   int a,b,i,j;
00062   for(b=0; b<S.nspin; b++)
00063     for(j=0; j<U.nc; j++) {
00064       forallsitesandcopies(x)
00065         for(a=0; a<S.nspin; a++)
00066           for(i=0; i<U.nc; i++)
00067             psi(x,a,i)=S(x,a,b,i,j);
00068       (*smf)(psi,U,coeff);
00069       forallsitesandcopies(x)
00070         for(a=0; a<S.nspin; a++)
00071           for(i=0; i<U.nc; i++)
00072             S(x,a,b,i,j)=psi(x,a,i);
00073     }
00074 }

Generated on Sun Feb 27 15:12:18 2005 by  doxygen 1.4.1