1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-06-12 20:27:06 +01:00

PartialFraction Hw with Zolo and Tanh approx converged under CG and passed EO breakdown

and hermiticity tests.
This commit is contained in:
Peter Boyle
2015-06-04 13:28:37 +01:00
parent 5b1ba66604
commit b9e9777912
21 changed files with 501 additions and 56 deletions

View File

@ -9,6 +9,13 @@ namespace Grid {
{
public:
const int part_frac_chroma_convention=1;
void Meooe_internal(const LatticeFermion &in, LatticeFermion &out,int dag);
void Mooee_internal(const LatticeFermion &in, LatticeFermion &out,int dag);
void MooeeInv_internal(const LatticeFermion &in, LatticeFermion &out,int dag);
void M_internal(const LatticeFermion &in, LatticeFermion &out,int dag);
// override multiply
virtual RealD M (const LatticeFermion &in, LatticeFermion &out);
virtual RealD Mdag (const LatticeFermion &in, LatticeFermion &out);
@ -21,16 +28,7 @@ namespace Grid {
virtual void MooeeInv (const LatticeFermion &in, LatticeFermion &out);
virtual void MooeeInvDag (const LatticeFermion &in, LatticeFermion &out);
private:
virtual void PartialFractionCoefficients(void);
Approx::zolotarev_data *zdata;
// Part frac
double R;
std::vector<double> p;
std::vector<double> q;
virtual void Instantiatable(void) =0; // ensure no make-eee
// Constructors
PartialFractionFermion5D(LatticeGaugeField &_Umu,
@ -40,6 +38,20 @@ namespace Grid {
GridRedBlackCartesian &FourDimRedBlackGrid,
RealD _mass,RealD M5);
protected:
virtual void SetCoefficientsTanh(Approx::zolotarev_data *zdata,RealD scale);
virtual void SetCoefficientsZolotarev(RealD zolo_hi,Approx::zolotarev_data *zdata);
// Part frac
RealD mass;
RealD dw_diag;
RealD R;
RealD amax;
RealD scale;
std::vector<double> p;
std::vector<double> q;
};