60 void ApplyWilson(ColorSpinorField &
out,
const ColorSpinorField &
in,
const GaugeField &U,
double kappa,
61 const ColorSpinorField &x,
int parity,
bool dagger,
const int *comm_override, TimeProfile &profile);
85 void ApplyWilsonClover(ColorSpinorField &
out,
const ColorSpinorField &
in,
const GaugeField &U,
const CloverField &A,
86 double kappa,
const ColorSpinorField &x,
int parity,
bool dagger,
const int *comm_override, TimeProfile &profile);
126 const CloverField &A,
double kappa,
const ColorSpinorField &x,
int parity,
bool dagger,
const int *comm_override,
127 TimeProfile &profile);
150 void ApplyTwistedMass(ColorSpinorField &
out,
const ColorSpinorField &
in,
const GaugeField &U,
double a,
double b,
151 const ColorSpinorField &x,
int parity,
bool dagger,
const int *comm_override, TimeProfile &profile);
190 double b,
bool xpay,
const ColorSpinorField &x,
int parity,
bool dagger,
bool asymmetric,
191 const int *comm_override, TimeProfile &profile);
221 double c,
const ColorSpinorField &x,
int parity,
bool dagger,
const int *comm_override, TimeProfile &profile);
269 double a,
double b,
double c,
bool xpay,
const ColorSpinorField &x,
int parity,
bool dagger,
bool asymmetric,
270 const int *comm_override, TimeProfile &profile);
295 void ApplyTwistedClover(ColorSpinorField &
out,
const ColorSpinorField &
in,
const GaugeField &U,
const CloverField &C,
296 double a,
double b,
const ColorSpinorField &x,
int parity,
bool dagger,
const int *comm_override,
297 TimeProfile &profile);
337 const CloverField &C,
double a,
double b,
bool xpay,
const ColorSpinorField &x,
int parity,
bool dagger,
338 const int *comm_override, TimeProfile &profile);
364 void ApplyDomainWall5D(ColorSpinorField &
out,
const ColorSpinorField &
in,
const GaugeField &U,
double a,
double m_f,
365 const ColorSpinorField &x,
int parity,
bool dagger,
const int *comm_override, TimeProfile &profile);
392 void ApplyDomainWall4D(ColorSpinorField &
out,
const ColorSpinorField &
in,
const GaugeField &U,
double a,
double m_5,
394 const int *comm_override, TimeProfile &profile);
457 bool dagger,
const int *comm_override,
TimeProfile &profile);
529 double kappa,
double mu,
double epsilon,
int parity,
int dagger,
QudaTwistGamma5Type twist);
546 bool dagger,
int parity,
bool spin_project,
double a,
double b,
double c,
const cudaStream_t &
stream);
557 #endif // _DSLASH_QUDA_H
void ApplyWilsonCloverPreconditioned(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, const CloverField &A, double kappa, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
Driver for applying the preconditioned Wilson-clover stencil.
void ApplyTwistedClover(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, const CloverField &C, double a, double b, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
Driver for applying the twisted-clover stencil.
void ApplyLaplace(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, int dir, double kappa, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
Driver for applying the Laplace stencil.
void ApplyDomainWall5D(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double a, double m_f, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
Driver for applying the Domain-wall 5-d stencil to a 5-d vector with 5-d preconditioned data order...
void ApplyDslash5(ColorSpinorField &out, const ColorSpinorField &in, const ColorSpinorField &x, double m_f, double m_5, const Complex *b_5, const Complex *c_5, double a, bool dagger, Dslash5Type type)
Apply either the domain-wall / mobius Dslash5 operator or the M5 inverse operator. In the current implementation, it is expected that the color-spinor fields are 4-d preconditioned.
void ApplyCovDev(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, int mu, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
Driver for applying the covariant derivative.
void xpay(ColorSpinorField &x, double a, ColorSpinorField &y)
void ApplyNdegTwistedMass(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double a, double b, double c, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
Driver for applying the non-degenerate twisted-mass stencil.
void ApplyTwistGamma(ColorSpinorField &out, const ColorSpinorField &in, int d, double kappa, double mu, double epsilon, int dagger, QudaTwistGamma5Type type)
Apply the twisted-mass gamma operator to a color-spinor field.
void createDslashEvents()
std::complex< double > Complex
void ApplyDomainWall4D(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double a, double m_5, const Complex *b_5, const Complex *c_5, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
Driver for applying the batched Wilson 4-d stencil to a 5-d vector with 4-d preconditioned data order...
void PackGhost(void *ghost[2 *QUDA_MAX_DIM], const ColorSpinorField &field, MemoryLocation location, int nFace, bool dagger, int parity, bool spin_project, double a, double b, double c, const cudaStream_t &stream)
Dslash face packing routine.
__device__ __host__ Matrix< T, 3 > inverse(const Matrix< T, 3 > &u)
cpuColorSpinorField * out
void ApplyTwistedCloverPreconditioned(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, const CloverField &C, double a, double b, bool xpay, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
Driver for applying the preconditioned twisted-clover stencil.
__device__ __host__ void pack(Arg &arg, int ghost_idx, int s, int parity)
void ApplyClover(ColorSpinorField &out, const ColorSpinorField &in, const CloverField &clover, bool inverse, int parity)
Apply clover-matrix field to a color-spinor field.
void ApplyTwistedMass(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double a, double b, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
Driver for applying the twisted-mass stencil.
void ApplyWilsonClover(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, const CloverField &A, double kappa, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
Driver for applying the Wilson-clover stencil.
void ApplyWilson(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double kappa, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
Driver for applying the Wilson stencil.
void ApplyStaggered(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double a, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
Apply the staggered dslash operator to a color-spinor field.
void ApplyImprovedStaggered(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, const GaugeField &L, double a, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
Apply the improved staggered dslash operator to a color-spinor field.
void setKernelPackT(bool pack)
void gamma5(ColorSpinorField &out, const ColorSpinorField &in)
Applies a gamma5 matrix to a spinor (wrapper to ApplyGamma)
void ApplyTwistedMassPreconditioned(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double a, double b, bool xpay, const ColorSpinorField &x, int parity, bool dagger, bool asymmetric, const int *comm_override, TimeProfile &profile)
Driver for applying the preconditioned twisted-mass stencil.
enum QudaTwistGamma5Type_s QudaTwistGamma5Type
void pushKernelPackT(bool pack)
#define QUDA_MAX_DIM
Maximum number of dimensions supported by QUDA. In practice, no routines make use of more than 5...
void ApplyNdegTwistedMassPreconditioned(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double a, double b, double c, bool xpay, const ColorSpinorField &x, int parity, bool dagger, bool asymmetric, const int *comm_override, TimeProfile &profile)
Driver for applying the preconditioned non-degenerate twisted-mass stencil.
void destroyDslashEvents()
void setPackComms(const int *dim_pack)
Helper function that sets which dimensions the packing kernel should be packing for.
void ApplyTwistClover(ColorSpinorField &out, const ColorSpinorField &in, const CloverField &clover, double kappa, double mu, double epsilon, int parity, int dagger, QudaTwistGamma5Type twist)
Apply twisted clover-matrix field to a color-spinor field.