43 const double &k)
const 111 errorQuda(
"Preconditioned solution requires a preconditioned solve_type");
140 CoarseOp(Y,
X, Xinv, Yhat, T, *
gauge,
c,
kappa,
a,
mu_factor,
QUDA_WILSON_DIRAC,
QUDA_MATPC_INVALID);
162 if (&
dirac !=
this) {
DiracWilson(const DiracParam ¶m)
DiracWilsonPC & operator=(const DiracWilsonPC &dirac)
DiracWilsonPC(const DiracParam ¶m)
double mu_factor[QUDA_MAX_MG_LEVEL]
virtual void checkFullSpinor(const ColorSpinorField &, const ColorSpinorField &) const
void prepare(ColorSpinorField *&src, ColorSpinorField *&sol, ColorSpinorField &x, ColorSpinorField &b, const QudaSolutionType) const
void wilsonDslashCuda(cudaColorSpinorField *out, const cudaGaugeField &gauge, const cudaColorSpinorField *in, const int oddBit, const int daggerBit, const cudaColorSpinorField *x, const double &k, const int *commDim, TimeProfile &profile)
virtual void M(ColorSpinorField &out, const ColorSpinorField &in) const
const ColorSpinorField & Even() const
void deleteTmp(ColorSpinorField **, const bool &reset) const
const ColorSpinorField & Odd() const
static ColorSpinorField * Create(const ColorSpinorParam ¶m)
DiracWilson & operator=(const DiracWilson &dirac)
void MdagM(ColorSpinorField &out, const ColorSpinorField &in) const
virtual void prepare(ColorSpinorField *&src, ColorSpinorField *&sol, ColorSpinorField &x, ColorSpinorField &b, const QudaSolutionType) const
bool newTmp(ColorSpinorField **, const ColorSpinorField &) const
int commDim[QUDA_MAX_DIM]
void M(ColorSpinorField &out, const ColorSpinorField &in) const
const ColorSpinorField & Vectors(QudaFieldLocation location=QUDA_CPU_FIELD_LOCATION) const
VOLATILE spinorFloat kappa
void checkSpinorAlias(const ColorSpinorField &, const ColorSpinorField &) const
virtual void DslashXpay(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity, const ColorSpinorField &x, const double &k) const
virtual void MdagM(ColorSpinorField &out, const ColorSpinorField &in) const
#define checkLocation(...)
enum QudaSolutionType_s QudaSolutionType
virtual void createCoarseOp(GaugeField &Y, GaugeField &X, GaugeField &Xinv, GaugeField &Yhat, const Transfer &T, double kappa, double mu=0., double mu_factor=0.) const
Create the coarse Wilson operator.
enum QudaParity_s QudaParity
void Mdag(ColorSpinorField &out, const ColorSpinorField &in) const
Dirac & operator=(const Dirac &dirac)
QudaFieldLocation location
void reconstruct(ColorSpinorField &x, const ColorSpinorField &b, const QudaSolutionType) const
cpuColorSpinorField * out
QudaTwistFlavorType TwistFlavor() const
void CoarseOp(GaugeField &Y, GaugeField &X, GaugeField &Xinv, GaugeField &Yhat, const Transfer &T, const cudaGaugeField &gauge, const cudaCloverField *clover, double kappa, double mu, double mu_factor, QudaDiracType dirac, QudaMatPCType matpc)
Coarse operator construction from a fine-grid operator (Wilson / Clover)
virtual void Dslash(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity) const
virtual void checkParitySpinor(const ColorSpinorField &, const ColorSpinorField &) const
virtual void reconstruct(ColorSpinorField &x, const ColorSpinorField &b, const QudaSolutionType) const