diff --git a/lib/qcd/action/fermion/FermionOperatorImpl.h b/lib/qcd/action/fermion/FermionOperatorImpl.h index 399c780b..2f8a2404 100644 --- a/lib/qcd/action/fermion/FermionOperatorImpl.h +++ b/lib/qcd/action/fermion/FermionOperatorImpl.h @@ -113,6 +113,8 @@ namespace Grid { class WilsonImpl : public PeriodicGaugeImpl< GaugeImplTypes< S,Nrepresentation> > { public: + const bool LsVectorised=false; + typedef PeriodicGaugeImpl< GaugeImplTypes< S,Nrepresentation> > Gimpl; INHERIT_GIMPL_TYPES(Gimpl); @@ -191,8 +193,10 @@ PARALLEL_FOR_LOOP // Single flavour four spinors with colour index, 5d redblack /////// template - class DomainWallRedBlack5dImpl : public PeriodicGaugeImpl< GaugeImplTypes< S,Nrepresentation> > { + class DomainWallVec5dImpl : public PeriodicGaugeImpl< GaugeImplTypes< S,Nrepresentation> > { public: + + const bool LsVectorised=true; typedef PeriodicGaugeImpl< GaugeImplTypes< S,Nrepresentation> > Gimpl; @@ -221,7 +225,7 @@ PARALLEL_FOR_LOOP ImplParams Params; - DomainWallRedBlack5dImpl(const ImplParams &p= ImplParams()) : Params(p) {}; + DomainWallVec5dImpl(const ImplParams &p= ImplParams()) : Params(p) {}; bool overlapCommsCompute(void) { return false; }; @@ -287,6 +291,8 @@ PARALLEL_FOR_LOOP class GparityWilsonImpl : public ConjugateGaugeImpl< GaugeImplTypes >{ public: + const bool LsVectorised=false; + typedef ConjugateGaugeImpl< GaugeImplTypes > Gimpl; INHERIT_GIMPL_TYPES(Gimpl); @@ -449,7 +455,7 @@ PARALLEL_FOR_LOOP auto tmp = TraceIndex(outerProduct(Btilde,A)); PARALLEL_FOR_LOOP for(auto ss=tmp.begin();ss(mat,link,mu); return; @@ -477,9 +483,9 @@ PARALLEL_FOR_LOOP typedef WilsonImpl WilsonImplF; // Float typedef WilsonImpl WilsonImplD; // Double - typedef DomainWallRedBlack5dImpl DomainWallRedBlack5dImplR; // Real.. whichever prec - typedef DomainWallRedBlack5dImpl DomainWallRedBlack5dImplF; // Float - typedef DomainWallRedBlack5dImpl DomainWallRedBlack5dImplD; // Double + typedef DomainWallVec5dImpl DomainWallVec5dImplR; // Real.. whichever prec + typedef DomainWallVec5dImpl DomainWallVec5dImplF; // Float + typedef DomainWallVec5dImpl DomainWallVec5dImplD; // Double typedef GparityWilsonImpl GparityWilsonImplR; // Real.. whichever prec typedef GparityWilsonImpl GparityWilsonImplF; // Float