30#ifndef GRID_QCD_ABSTRACT_EOFA_FERMION_H
31#define GRID_QCD_ABSTRACT_EOFA_FERMION_H
67 virtual void Omega (
const FermionField& in, FermionField& out,
int sign,
int dag) = 0;
68 virtual void Dtilde (
const FermionField& in, FermionField& out) = 0;
69 virtual void DtildeInv(
const FermionField& in, FermionField& out) = 0;
73 virtual void MDeriv(GaugeField& mat,
const FermionField&
U,
const FermionField& V,
int dag){
76 virtual void MoeDeriv(GaugeField& mat,
const FermionField&
U,
const FermionField& V,
int dag){
79 virtual void MeoDeriv(GaugeField& mat,
const FermionField&
U,
const FermionField& V,
int dag){
92 :
CayleyFermion5D<Impl>(_Umu, FiveDimGrid, FiveDimRedBlackGrid, FourDimGrid, FourDimRedBlackGrid,
96 this->alpha =
_b +
_c;
97 this->k = this->alpha * (_mq3-_mq2) * std::pow(this->alpha+1.0,2*
Ls) /
98 ( std::pow(this->alpha+1.0,
Ls) + _mq2*std::pow(this->alpha-1.0,
Ls) ) /
99 ( std::pow(this->alpha+1.0,
Ls) + _mq3*std::pow(this->alpha-1.0,
Ls) );
std::vector< T, devAllocator< T > > deviceVector
#define NAMESPACE_BEGIN(A)
static INTERNAL_PRECISION U
deviceVector< Coeff_t > d_MooeeInv_shift_lc
virtual void Omega(const FermionField &in, FermionField &out, int sign, int dag)=0
deviceVector< Coeff_t > d_shift_coefficients
virtual void DtildeInv(const FermionField &in, FermionField &out)=0
virtual void MDeriv(GaugeField &mat, const FermionField &U, const FermionField &V, int dag)
virtual void Instantiatable(void)=0
virtual void MoeDeriv(GaugeField &mat, const FermionField &U, const FermionField &V, int dag)
virtual void MeoDeriv(GaugeField &mat, const FermionField &U, const FermionField &V, int dag)
virtual void Dtilde(const FermionField &in, FermionField &out)=0
AbstractEOFAFermion(GaugeField &_Umu, GridCartesian &FiveDimGrid, GridRedBlackCartesian &FiveDimRedBlackGrid, GridCartesian &FourDimGrid, GridRedBlackCartesian &FourDimRedBlackGrid, RealD _mq1, RealD _mq2, RealD _mq3, RealD _shift, int _pm, RealD _M5, RealD _b, RealD _c, const ImplParams &p=ImplParams())
virtual void RefreshShiftCoefficients(RealD new_shift)=0
deviceVector< Coeff_t > d_MooeeInv_shift_norm
CayleyFermion5D(GaugeField &_Umu, GridCartesian &FiveDimGrid, GridRedBlackCartesian &FiveDimRedBlackGrid, GridCartesian &FourDimGrid, GridRedBlackCartesian &FourDimRedBlackGrid, RealD _mass, RealD _M5, const ImplParams &p=ImplParams())
virtual void DhopDerivEO(GaugeField &mat, const FermionField &U, const FermionField &V, int dag)
virtual void DhopDeriv(GaugeField &mat, const FermionField &U, const FermionField &V, int dag)
virtual void DhopDerivOE(GaugeField &mat, const FermionField &U, const FermionField &V, int dag)