QUDA  v0.7.0
A library for QCD on GPUs
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ritz_quda.h
Go to the documentation of this file.
1 #ifndef _RITZ_QUDA_H
2 #define _RITZ_QUDA_H
3 
4 #include <quda_internal.h>
5 #include <color_spinor_field.h>
6 #include <gauge_field.h>
7 #include <clover_field.h>
8 #include <dslash_quda.h>
9 #include <face_quda.h>
10 #include <blas_quda.h>
11 #include <dirac_quda.h>
12 #include <typeinfo>
13 
14 namespace quda {
15 
20  class RitzMat {
21 
22  friend class DiracMatrix;
23 
24  protected:
26  int N_Poly; // Chebychev polynomial order
27  double shift; // eigen shift offset
28  double *cheby_param; // Chebychev polynomial coefficients values
29 
30  mutable cudaColorSpinorField *tmp1; // temporary hack
31  mutable cudaColorSpinorField *tmp2; // temporary hack
32 
33  bool newTmp(cudaColorSpinorField **tmp, const cudaColorSpinorField &a) const;
34  void deleteTmp(cudaColorSpinorField **a, const bool &reset) const;
35 
36  public:
38  : dirac_mat(d), N_Poly(param.NPoly), shift(param.eigen_shift),
39  cheby_param(param.MatPoly_param), tmp1(NULL), tmp2(NULL)
40  {;}
42  : dirac_mat(*d), N_Poly(param.NPoly), shift(param.eigen_shift),
43  cheby_param(param.MatPoly_param), tmp1(NULL), tmp2(NULL)
44  {;}
45  virtual ~RitzMat();
46 
48 
49  // unsigned long long flops() const { return (dirac_mat->dirac)->Flops(); }
50 
51  // std::string Type() const { return typeid(*(dirac_mat->dirac)).name(); }
52  };
53 
54 } // namespace quda
55 
56 #endif // _RITZ_QUDA_H
const DiracMatrix & dirac_mat
Definition: ritz_quda.h:25
double shift
Definition: ritz_quda.h:27
cudaColorSpinorField * tmp1
Definition: ritz_quda.h:30
void operator()(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
Definition: ritz_quda.cpp:18
double * cheby_param
Definition: ritz_quda.h:28
virtual ~RitzMat()
Definition: ritz_quda.cpp:54
QudaGaugeParam param
Definition: pack_test.cpp:17
cudaColorSpinorField * tmp
cpuColorSpinorField * in
cudaColorSpinorField * tmp2
Definition: ritz_quda.h:31
bool newTmp(cudaColorSpinorField **tmp, const cudaColorSpinorField &a) const
Definition: ritz_quda.cpp:55
cpuColorSpinorField * out
void deleteTmp(cudaColorSpinorField **a, const bool &reset) const
Definition: ritz_quda.cpp:63
RitzMat(DiracMatrix &d, const QudaEigParam &param)
Definition: ritz_quda.h:37
RitzMat(DiracMatrix *d, const QudaEigParam &param)
Definition: ritz_quda.h:41