mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-05 03:35:55 +01:00
EO support, wip
This commit is contained in:
parent
99a73f4287
commit
62a64d9108
38
.vscode/settings.json
vendored
38
.vscode/settings.json
vendored
@ -1,3 +1,41 @@
|
||||
// Place your settings in this file to overwrite default and user settings.
|
||||
{
|
||||
"files.associations": {
|
||||
"cctype": "cpp",
|
||||
"clocale": "cpp",
|
||||
"cmath": "cpp",
|
||||
"csignal": "cpp",
|
||||
"cstdarg": "cpp",
|
||||
"cstddef": "cpp",
|
||||
"cstdio": "cpp",
|
||||
"cstdlib": "cpp",
|
||||
"cstring": "cpp",
|
||||
"ctime": "cpp",
|
||||
"cwchar": "cpp",
|
||||
"cwctype": "cpp",
|
||||
"array": "cpp",
|
||||
"atomic": "cpp",
|
||||
"*.tcc": "cpp",
|
||||
"chrono": "cpp",
|
||||
"codecvt": "cpp",
|
||||
"condition_variable": "cpp",
|
||||
"cstdint": "cpp",
|
||||
"exception": "cpp",
|
||||
"slist": "cpp",
|
||||
"functional": "cpp",
|
||||
"initializer_list": "cpp",
|
||||
"iosfwd": "cpp",
|
||||
"limits": "cpp",
|
||||
"memory": "cpp",
|
||||
"mutex": "cpp",
|
||||
"new": "cpp",
|
||||
"ratio": "cpp",
|
||||
"stdexcept": "cpp",
|
||||
"system_error": "cpp",
|
||||
"thread": "cpp",
|
||||
"tuple": "cpp",
|
||||
"type_traits": "cpp",
|
||||
"typeinfo": "cpp",
|
||||
"utility": "cpp"
|
||||
}
|
||||
}
|
@ -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
|
||||
|
||||
|
@ -191,8 +191,9 @@ int main (int argc, char ** argv)
|
||||
Dwc.MooeeInv(src_e,phi_e);
|
||||
|
||||
Dwc.Mooee(chi_o,src_o);
|
||||
exit(1);
|
||||
Dwc.MooeeInv(src_o,phi_o);
|
||||
|
||||
|
||||
setCheckerboard(phi,phi_e);
|
||||
setCheckerboard(phi,phi_o);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user