43 virtual void M (
const FermionField &in, FermionField &out);
44 virtual void Mdag (
const FermionField &in, FermionField &out);
47 virtual void Meooe (
const FermionField &in, FermionField &out);
48 virtual void MeooeDag (
const FermionField &in, FermionField &out);
49 virtual void Mooee (
const FermionField &in, FermionField &out);
50 virtual void MooeeDag (
const FermionField &in, FermionField &out);
51 virtual void MooeeInv (
const FermionField &in, FermionField &out);
52 virtual void MooeeInvDag (
const FermionField &in, FermionField &out);
53 virtual void Meo5D (
const FermionField &psi, FermionField &chi);
55 virtual void M5D (
const FermionField &psi, FermionField &chi);
56 virtual void M5Ddag(
const FermionField &psi, FermionField &chi);
61 virtual void Dminus(
const FermionField &psi, FermionField &chi);
62 virtual void DminusDag(
const FermionField &psi, FermionField &chi);
84 void P(
const FermionField &psi, FermionField &chi);
85 void Pdag(
const FermionField &psi, FermionField &chi);
90 void M5D(
const FermionField &psi,
91 const FermionField &phi,
93 std::vector<Coeff_t> &lower,
94 std::vector<Coeff_t> &diag,
95 std::vector<Coeff_t> &upper);
97 void M5Ddag(
const FermionField &psi,
98 const FermionField &phi,
100 std::vector<Coeff_t> &lower,
101 std::vector<Coeff_t> &diag,
102 std::vector<Coeff_t> &upper);
107 virtual void MDeriv (GaugeField &mat,
const FermionField &
U,
const FermionField &V,
int dag);
108 virtual void MoeDeriv(GaugeField &mat,
const FermionField &
U,
const FermionField &V,
int dag);
109 virtual void MeoDeriv(GaugeField &mat,
const FermionField &
U,
const FermionField &V,
int dag);
112 virtual void Mdir (
const FermionField &in, FermionField &out,
int dir,
int disp);
113 virtual void MdirAll(
const FermionField &in, std::vector<FermionField> &out);
115 void Meooe5D (
const FermionField &in, FermionField &out);
116 void MeooeDag5D (
const FermionField &in, FermionField &out);
128 std::vector<ComplexD>
qmu;
130 void addQmu(
const FermionField &in, FermionField &out,
int dag);
134 std::vector<Coeff_t>
bs;
135 std::vector<Coeff_t>
cs;
136 std::vector<Coeff_t>
as;
174 PropagatorField &q_in_2,
175 PropagatorField &q_out,
176 PropagatorField &phys_src,
181 PropagatorField &q_out,
182 PropagatorField &phys_src,
187 ComplexField &lattice_cmplx);
189 void ContractJ5q(PropagatorField &q_in,ComplexField &J5q);
190 void ContractJ5q(FermionField &q_in,ComplexField &J5q);
200 RealD _mass,
RealD _M5,
const ImplParams &p= ImplParams());
std::vector< T, devAllocator< T > > deviceVector
#define NAMESPACE_BEGIN(A)
static INTERNAL_PRECISION U
CayleyFermion5D(GaugeField &_Umu, GridCartesian &FiveDimGrid, GridRedBlackCartesian &FiveDimRedBlackGrid, GridCartesian &FourDimGrid, GridRedBlackCartesian &FourDimRedBlackGrid, RealD _mass, RealD _M5, const ImplParams &p=ImplParams())
void Meooe5D(const FermionField &in, FermionField &out)
virtual void SetCoefficientsInternal(RealD zolo_hi, std::vector< Coeff_t > &gamma, RealD b, RealD c)
std::vector< ComplexD > qmu
virtual void MooeeInvDag(const FermionField &in, FermionField &out)
std::vector< Coeff_t > leem
virtual void Mdir(const FermionField &in, FermionField &out, int dir, int disp)
std::vector< Coeff_t > as
virtual void MeoDeriv(GaugeField &mat, const FermionField &U, const FermionField &V, int dag)
std::vector< Coeff_t > lee
deviceVector< Coeff_t > d_upper
virtual void SetCoefficientsZolotarev(RealD zolohi, Approx::zolotarev_data *zdata, RealD b, RealD c)
deviceVector< Coeff_t > d_uee
virtual void MoeDeriv(GaugeField &mat, const FermionField &U, const FermionField &V, int dag)
deviceVector< Coeff_t > d_dee
std::vector< Coeff_t > bee
std::vector< Coeff_t > dee
virtual void MDeriv(GaugeField &mat, const FermionField &U, const FermionField &V, int dag)
deviceVector< Coeff_t > d_diag
void SetMass(RealD _mass_plus, RealD _mass_minus)
virtual void ExportPhysicalFermionSource(const FermionField &solution5d, FermionField &exported4d)
virtual void Mdag(const FermionField &in, FermionField &out)
std::vector< Coeff_t > cs
virtual void M5Ddag(const FermionField &psi, FermionField &chi)
virtual void Meo5D(const FermionField &psi, FermionField &chi)
virtual void ImportPhysicalFermionSource(const FermionField &input4d, FermionField &imported5d)
virtual void DminusDag(const FermionField &psi, FermionField &chi)
void addQmu(const FermionField &in, FermionField &out, int dag)
void ContractConservedCurrent(PropagatorField &q_in_1, PropagatorField &q_in_2, PropagatorField &q_out, PropagatorField &phys_src, Current curr_type, unsigned int mu)
virtual void MdirAll(const FermionField &in, std::vector< FermionField > &out)
virtual void Dminus(const FermionField &psi, FermionField &chi)
virtual void MeooeDag(const FermionField &in, FermionField &out)
std::vector< Coeff_t > beo
void P(const FermionField &psi, FermionField &chi)
std::vector< Coeff_t > bs
virtual void M(const FermionField &in, FermionField &out)
void MeooeDag5D(const FermionField &in, FermionField &out)
std::vector< Coeff_t > _gamma
std::vector< Coeff_t > aeo
void ContractJ5q(PropagatorField &q_in, ComplexField &J5q)
void SetMass(RealD _mass)
virtual void M5D(const FermionField &psi, FermionField &chi)
virtual void ExportPhysicalFermionSolution(const FermionField &solution5d, FermionField &exported4d)
deviceVector< Coeff_t > d_lower
virtual void MooeeInv(const FermionField &in, FermionField &out)
virtual void SetCoefficientsTanh(Approx::zolotarev_data *zdata, RealD b, RealD c)
std::vector< Coeff_t > ceo
void SeqConservedCurrent(PropagatorField &q_in, PropagatorField &q_out, PropagatorField &phys_src, Current curr_type, unsigned int mu, unsigned int tmin, unsigned int tmax, ComplexField &lattice_cmplx)
void set_qmu(std::vector< ComplexD > _qmu)
deviceVector< Coeff_t > d_leem
virtual void Meooe(const FermionField &in, FermionField &out)
deviceVector< Coeff_t > d_lee
virtual void MooeeDag(const FermionField &in, FermionField &out)
std::vector< Coeff_t > ueem
virtual void ImportUnphysicalFermion(const FermionField &solution5d, FermionField &exported4d)
std::vector< Coeff_t > cee
void Pdag(const FermionField &psi, FermionField &chi)
std::vector< Coeff_t > omega
virtual void Mooee(const FermionField &in, FermionField &out)
deviceVector< Coeff_t > d_ueem
virtual void Instantiatable(void)=0
std::vector< Coeff_t > aee
std::vector< Coeff_t > uee
WilsonFermion5D(GaugeField &_Umu, GridCartesian &FiveDimGrid, GridRedBlackCartesian &FiveDimRedBlackGrid, GridCartesian &FourDimGrid, GridRedBlackCartesian &FourDimRedBlackGrid, double _M5, const ImplParams &p=ImplParams())