30#ifndef GRID_QCD_WILSON_FERMION_5D_H
31#define GRID_QCD_WILSON_FERMION_5D_H
90 virtual void M (
const FermionField &in, FermionField &out){assert(0);};
91 virtual void Mdag (
const FermionField &in, FermionField &out){assert(0);};
94 virtual void Meooe (
const FermionField &in, FermionField &out);
95 virtual void Mooee (
const FermionField &in, FermionField &out);
96 virtual void MooeeInv (
const FermionField &in, FermionField &out);
98 virtual void MeooeDag (
const FermionField &in, FermionField &out);
99 virtual void MooeeDag (
const FermionField &in, FermionField &out);
100 virtual void MooeeInvDag (
const FermionField &in, FermionField &out);
101 virtual void Mdir (
const FermionField &in, FermionField &out,
int dir,
int disp){assert(0);};
102 virtual void MdirAll(
const FermionField &in, std::vector<FermionField> &out){assert(0);};
105 virtual void DhopDeriv (GaugeField &mat,
const FermionField &
U,
const FermionField &V,
int dag);
106 virtual void DhopDerivEO(GaugeField &mat,
const FermionField &
U,
const FermionField &V,
int dag);
107 virtual void DhopDerivOE(GaugeField &mat,
const FermionField &
U,
const FermionField &V,
int dag);
113 std::vector<double> qmu) ;
117 void DW (
const FermionField &in, FermionField &out,
int dag);
118 void Dhop (
const FermionField &in, FermionField &out,
int dag);
119 void DhopOE(
const FermionField &in, FermionField &out,
int dag);
120 void DhopEO(
const FermionField &in, FermionField &out,
int dag);
122 void DhopComms (
const FermionField &in, FermionField &out);
123 void DhopCalc (
const FermionField &in, FermionField &out,uint64_t *ids);
127 void DhopDir(
const FermionField &in, FermionField &out,
int dir,
int disp);
128 void DhopDirAll(
const FermionField &in,std::vector<FermionField> &out);
130 void DhopDirCalc(
const FermionField &in, FermionField &out,
int point);
136 DoubledGaugeField &
U,
138 const FermionField &A,
139 const FermionField &
B,
143 DoubledGaugeField &
U,
144 const FermionField &in,
149 DoubledGaugeField &
U,
150 const FermionField &in,
155 DoubledGaugeField &
U,
156 const FermionField &in,
166 double _M5,
const ImplParams &p= ImplParams());
211 Stencil.SetSloppyComms(sloppy);
AcceleratorVector< int, MaxDims > Coordinate
#define NAMESPACE_BEGIN(A)
static INTERNAL_PRECISION U
static const std::vector< int > displacements
static constexpr int npoint
static const std::vector< int > directions
void DhopDirCalc(const FermionField &in, FermionField &out, int point)
void ImportGauge(const GaugeField &_Umu)
virtual void M(const FermionField &in, FermionField &out)
void DhopInternalOverlappedComms(StencilImpl &st, DoubledGaugeField &U, const FermionField &in, FermionField &out, int dag)
virtual void MooeeInvDag(const FermionField &in, FermionField &out)
GridBase * GaugeGrid(void)
virtual void MooeeDag(const FermionField &in, FermionField &out)
void DhopComms(const FermionField &in, FermionField &out)
virtual void MdirAll(const FermionField &in, std::vector< FermionField > &out)
DoubledGaugeField UmuEven
GridBase * _FiveDimRedBlackGrid
void MomentumSpacePropagatorHwQ(FermionField &out, const FermionField &in, RealD mass, std::vector< double > twist, std::vector< double > qmu)
WilsonKernels< Impl > Kernels
void DhopCalc(const FermionField &in, FermionField &out, uint64_t *ids)
virtual void MooeeInv(const FermionField &in, FermionField &out)
void DhopInternal(StencilImpl &st, DoubledGaugeField &U, const FermionField &in, FermionField &out, int dag)
virtual void Meooe(const FermionField &in, FermionField &out)
void DhopDirComms(const FermionField &in)
void DhopInternalSerialComms(StencilImpl &st, DoubledGaugeField &U, const FermionField &in, FermionField &out, int dag)
virtual void Mdir(const FermionField &in, FermionField &out, int dir, int disp)
void MomentumSpacePropagatorHt(FermionField &out, const FermionField &in, RealD mass, std::vector< double > twist)
GridBase * FermionGrid(void)
virtual void DhopDerivEO(GaugeField &mat, const FermionField &U, const FermionField &V, int dag)
void DW(const FermionField &in, FermionField &out, int dag)
virtual void Mdag(const FermionField &in, FermionField &out)
void DhopDir(const FermionField &in, FermionField &out, int dir, int disp)
void DhopDirAll(const FermionField &in, std::vector< FermionField > &out)
void MomentumSpacePropagatorHw(FermionField &out, const FermionField &in, RealD mass, std::vector< double > twist)
virtual void MeooeDag(const FermionField &in, FermionField &out)
WilsonFermion5D(GaugeField &_Umu, GridCartesian &FiveDimGrid, GridRedBlackCartesian &FiveDimRedBlackGrid, GridCartesian &FourDimGrid, GridRedBlackCartesian &FourDimRedBlackGrid, double _M5, const ImplParams &p=ImplParams())
virtual void DhopDeriv(GaugeField &mat, const FermionField &U, const FermionField &V, int dag)
GridBase * GaugeRedBlackGrid(void)
void DhopEO(const FermionField &in, FermionField &out, int dag)
GridBase * _FourDimRedBlackGrid
GridBase * FermionRedBlackGrid(void)
void SloppyComms(int sloppy)
virtual void DhopDerivOE(GaugeField &mat, const FermionField &U, const FermionField &V, int dag)
virtual void Mooee(const FermionField &in, FermionField &out)
void Dhop(const FermionField &in, FermionField &out, int dag)
virtual void DirichletBlock(const Coordinate &block)
void DerivInternal(StencilImpl &st, DoubledGaugeField &U, GaugeField &mat, const FermionField &A, const FermionField &B, int dag)
void DhopOE(const FermionField &in, FermionField &out, int dag)
void MomentumSpacePropagatorHt_5d(FermionField &out, const FermionField &in, RealD mass, std::vector< double > twist)
WilsonKernels(const ImplParams &p=ImplParams())