QUDA  1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
gauge_covdev.cpp
Go to the documentation of this file.
1 #include <dirac_quda.h>
2 #include <blas_quda.h>
3 #include <iostream>
4 #include <multigrid.h>
5 #include <dslash_quda.h>
6 
7 namespace quda {
8 
10 
12 
14 
16  {
17  if (&covDev != this) Dirac::operator=(covDev);
18  return *this;
19  }
20 
22  {
23  checkSpinorAlias(in, out);
24 
25  int comm_dim[4] = {};
26  // only switch on comms needed for mu derivative (FIXME - only communicate in the given direction)
27  comm_dim[mu % 4] = comm_dim_partitioned(mu % 4);
28  ApplyCovDev(out, in, *gauge, mu, parity, dagger, comm_dim, profile);
29  flops += 1320ll*in.Volume(); // FIXME
30  }
31 
32  void GaugeCovDev::MCD(ColorSpinorField &out, const ColorSpinorField &in, const int mu) const
33  {
34  checkFullSpinor(out, in);
35  DslashCD(out, in, QUDA_INVALID_PARITY, mu);
36  }
37 
39  {
40  bool reset = newTmp(&tmp1, in);
41  checkFullSpinor(*tmp1, in);
42 
43  MCD(*tmp1, in, mu);
44  MCD(out, *tmp1, (mu+4)%8);
45 
46  deleteTmp(&tmp1, reset);
47  }
48 
50  {
51  //do nothing
52  }
53 
55  const ColorSpinorField &in,
56  const QudaParity parity,
57  const ColorSpinorField &x,
58  const double &k) const
59  {
60  //do nothing
61  }
62 
64  {
65  //do nothing
66  }
67 
69  {
70  //do nothing
71  }
72 
75  const QudaSolutionType solType) const
76  {
77  //do nothing
78  }
79 
81  const ColorSpinorField &b,
82  const QudaSolutionType solType) const
83  {
84  //do nothing
85  }
86 
87 } // namespace quda
virtual void MdagMCD(ColorSpinorField &out, const ColorSpinorField &in, const int mu) const
unsigned long long flops
Definition: dirac_quda.h:121
double mu
Definition: test_util.cpp:1648
cudaGaugeField * gauge
Definition: dirac_quda.h:115
virtual void checkFullSpinor(const ColorSpinorField &, const ColorSpinorField &) const
Definition: dirac.cpp:146
int comm_dim(int dim)
void deleteTmp(ColorSpinorField **, const bool &reset) const
Definition: dirac.cpp:81
TimeProfile profile
Definition: dirac_quda.h:132
GaugeCovDev(const DiracParam &param)
Definition: gauge_covdev.cpp:9
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.
Definition: covDev.cu:185
QudaGaugeParam param
Definition: pack_test.cpp:17
bool newTmp(ColorSpinorField **, const ColorSpinorField &) const
Definition: dirac.cpp:70
virtual void DslashXpay(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity, const ColorSpinorField &x, const double &k) const
__device__ __host__ void covDev(Arg &arg, int idx, int parity)
Definition: covDev.cuh:119
void checkSpinorAlias(const ColorSpinorField &, const ColorSpinorField &) const
Definition: dirac.cpp:154
cpuColorSpinorField * in
enum QudaSolutionType_s QudaSolutionType
QudaDagType dagger
Definition: dirac_quda.h:120
enum QudaParity_s QudaParity
GaugeCovDev & operator=(const GaugeCovDev &covDev)
virtual void M(ColorSpinorField &out, const ColorSpinorField &in) const
Dirac & operator=(const Dirac &dirac)
Definition: dirac.cpp:49
cpuColorSpinorField * out
virtual void MdagM(ColorSpinorField &out, const ColorSpinorField &in) const
virtual void prepare(ColorSpinorField *&src, ColorSpinorField *&sol, ColorSpinorField &x, ColorSpinorField &b, const QudaSolutionType) const
virtual ~GaugeCovDev()
virtual void Dslash(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity) const
virtual void DslashCD(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity, const int mu) const
QudaParity parity
Definition: covdev_test.cpp:54
Full Covariant Derivative operator. Although not a Dirac operator per se, it&#39;s a linear operator so i...
Definition: dirac_quda.h:1069
virtual void reconstruct(ColorSpinorField &x, const ColorSpinorField &b, const QudaSolutionType) const
int comm_dim_partitioned(int dim)
virtual void MCD(ColorSpinorField &out, const ColorSpinorField &in, const int mu) const
ColorSpinorField * tmp1
Definition: dirac_quda.h:122