17 matpcType(
param.matpcType),
23 halo_precision(
param.halo_precision),
24 profile(
"Dirac", false)
33 matpcType(
dirac.matpcType),
39 halo_precision(
dirac.halo_precision),
40 profile(
"Dirac", false)
73 if (*
tmp)
return false;
90 #define flip(x) (x) = ((x) == QUDA_DAG_YES ? QUDA_DAG_NO : QUDA_DAG_YES)
112 errorQuda(
"CUDA Dirac operator requires UKQCD basis, out = %d, in = %d",
117 errorQuda(
"ColorSpinorFields are not single parity: in = %d, out = %d",
124 if (out.
Ndim() != 5) {
141 errorQuda(
"ColorSpinorFields are not full fields: in = %d, out = %d",
147 if (a.
V() == b.
V())
errorQuda(
"Aliasing pointers");
218 errorQuda(
"Cannot create DiracTwistedClover operator for %d flavors\n",
param.Ls);
225 errorQuda(
"Cannot create DiracTwistedCloverPC operator for %d flavors\n",
param.Ls);
233 printfQuda(
"Creating a DiracTwistedMassPC operator (%d flavor(s))\n",
param.Ls);
QudaSiteSubset SiteSubset() const
QudaGammaBasis GammaBasis() const
virtual void M(ColorSpinorField &out, const ColorSpinorField &in) const =0
Apply M for the dirac op. E.g. the Schur Complement operator.
bool newTmp(ColorSpinorField **, const ColorSpinorField &) const
void MMdag(ColorSpinorField &out, const ColorSpinorField &in) const
Apply Normal Operator.
virtual void MdagM(ColorSpinorField &out, const ColorSpinorField &in) const =0
Apply MdagM operator which may be optimized.
virtual void prefetch(QudaFieldLocation mem_space, qudaStream_t stream=0) const
If managed memory and prefetch is enabled, prefetch the gauge field and temporary spinors to the CPU ...
void deleteTmp(ColorSpinorField **, const bool &reset) const
Dirac(const DiracParam ¶m)
virtual void checkParitySpinor(const ColorSpinorField &, const ColorSpinorField &) const
Check parity spinors are usable (check geometry ?)
static Dirac * create(const DiracParam ¶m)
Creates a subclass from parameters.
void checkSpinorAlias(const ColorSpinorField &, const ColorSpinorField &) const
check spinors do not alias
Dirac & operator=(const Dirac &dirac)
virtual void checkFullSpinor(const ColorSpinorField &, const ColorSpinorField &) const
check full spinors are compatible (check geometry ?)
int getStencilSteps() const
I have no idea what this does.
int commDim[QUDA_MAX_DIM]
void Mdag(ColorSpinorField &out, const ColorSpinorField &in) const
Apply Mdag (daggered operator of M.
Full Covariant Derivative operator. Although not a Dirac operator per se, it's a linear operator so i...
Full Gauge Laplace operator. Although not a Dirac operator per se, it's a linear operator so it's con...
Even-odd preconditioned Gauge Laplace operator.
virtual void prefetch(QudaFieldLocation mem_space, qudaStream_t stream=0) const
If managed memory and prefetch is enabled, prefetch all relevant memory fields to the current device ...
void prefetch(QudaFieldLocation mem_space, qudaStream_t stream=0) const
If managed memory and prefetch is enabled, prefetch the gauge field and buffers to the CPU or the GPU...
cudaColorSpinorField * tmp
@ QUDA_TWISTED_MASSPC_DIRAC
@ QUDA_GAUGE_LAPLACE_DIRAC
@ QUDA_GAUGE_COVDEV_DIRAC
@ QUDA_TWISTED_CLOVERPC_DIRAC
@ QUDA_MOBIUS_DOMAIN_WALLPC_EOFA_DIRAC
@ QUDA_CLOVER_HASENBUSCH_TWIST_DIRAC
@ QUDA_TWISTED_MASS_DIRAC
@ QUDA_CLOVER_HASENBUSCH_TWISTPC_DIRAC
@ QUDA_DOMAIN_WALL_4D_DIRAC
@ QUDA_MOBIUS_DOMAIN_WALL_EOFA_DIRAC
@ QUDA_GAUGE_LAPLACEPC_DIRAC
@ QUDA_MOBIUS_DOMAIN_WALLPC_DIRAC
@ QUDA_TWISTED_CLOVER_DIRAC
@ QUDA_DOMAIN_WALL_4DPC_DIRAC
@ QUDA_MOBIUS_DOMAIN_WALL_DIRAC
@ QUDA_DOMAIN_WALLPC_DIRAC
@ QUDA_PARITY_SITE_SUBSET
enum QudaFieldLocation_s QudaFieldLocation
bool isNative(QudaCloverFieldOrder order, QudaPrecision precision)
cudaStream_t qudaStream_t
QudaVerbosity getVerbosity()