mirror of
https://github.com/paboyle/Grid.git
synced 2025-06-12 20:27:06 +01:00
EO support, wip
This commit is contained in:
@ -91,7 +91,6 @@ void WilsonCloverFermion<Impl>::ImportGauge(const GaugeField &_Umu)
|
||||
{
|
||||
this->ImportGauge(_Umu);
|
||||
GridBase *grid = _Umu._grid;
|
||||
assert(Nd == 4); // only works in 4 dim
|
||||
typename Impl::GaugeLinkField Bx(grid), By(grid), Bz(grid), Ex(grid), Ey(grid), Ez(grid);
|
||||
|
||||
// Compute the field strength terms
|
||||
@ -140,6 +139,11 @@ void WilsonCloverFermion<Impl>::ImportGauge(const GaugeField &_Umu)
|
||||
Qxinv()(j, k)(a, b) = EigenInvCloverOp(a + j * DimRep, b + k * DimRep);
|
||||
|
||||
pokeLocalSite(Qxinv, CloverTermInv, lcoor);
|
||||
// Separate the even and odd parts.
|
||||
pickCheckerboard(Even, CloverTermEven, CloverTerm);
|
||||
pickCheckerboard( Odd, CloverTermOdd, CloverTerm);
|
||||
pickCheckerboard(Even, CloverTermInvEven, CloverTermInv);
|
||||
pickCheckerboard( Odd, CloverTermInvOdd, CloverTermInv);
|
||||
}
|
||||
}
|
||||
|
||||
@ -172,8 +176,15 @@ void WilsonCloverFermion<Impl>::MooeeInternal(const FermionField &in, FermionFie
|
||||
{
|
||||
out.checkerboard = in.checkerboard;
|
||||
CloverFieldType *Clover;
|
||||
if (in.checkerboard == Odd){
|
||||
std::cout << "Calling clover term Odd" << std::endl;
|
||||
Clover = (inv) ? &CloverTermInvOdd : &CloverTermOdd;
|
||||
}
|
||||
if (in.checkerboard == Even){
|
||||
std::cout << "Calling clover term Even" << std::endl;
|
||||
Clover = (inv) ? &CloverTermInvEven : &CloverTermEven;
|
||||
}
|
||||
|
||||
Clover = (inv) ? &CloverTermInv : &CloverTerm;
|
||||
if (dag){ out = adj(*Clover) * in;} else { out = *Clover * in;}
|
||||
} // MooeeInternal
|
||||
|
||||
|
@ -59,7 +59,11 @@ public:
|
||||
Hgrid,
|
||||
_mass, p),
|
||||
CloverTerm(&Fgrid),
|
||||
CloverTermInv(&Fgrid)
|
||||
CloverTermInv(&Fgrid),
|
||||
CloverTermEven(&Hgrid),
|
||||
CloverTermOdd(&Hgrid),
|
||||
CloverTermInvEven(&Hgrid),
|
||||
CloverTermInvOdd(&Hgrid)
|
||||
{
|
||||
csw = _csw;
|
||||
assert(Nd == 4); // require 4 dimensions
|
||||
@ -85,6 +89,8 @@ private:
|
||||
|
||||
RealD csw; // Clover coefficient
|
||||
CloverFieldType CloverTerm, CloverTermInv; // Clover term
|
||||
CloverFieldType CloverTermEven, CloverTermOdd;
|
||||
CloverFieldType CloverTermInvEven, CloverTermInvOdd; // Clover term
|
||||
// eventually these two can be compressed into 6x6 blocks instead of the 12x12
|
||||
// using the DeGrand-Rossi basis for the gamma matrices
|
||||
|
||||
|
Reference in New Issue
Block a user