QUDA  v0.7.0
A library for QCD on GPUs
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ks_improved_force.h
Go to the documentation of this file.
1 #ifndef _KS_IMPROVED_FORCE_H
2 #define _KS_IMPROVED_FORCE_H
3 
4 #include <quda_internal.h>
5 #include <quda.h>
6 #include <gauge_field.h>
7 
8 namespace quda {
9  namespace fermion_force {
10 
11  void hisqStaplesForceCuda(const double path_coeff[6],
12  const QudaGaugeParam& param,
13  const cudaGaugeField& oprod,
14  const cudaGaugeField& link,
15  cudaGaugeField *newOprod,
16  long long* flops = NULL);
17 
18 
19  void hisqLongLinkForceCuda(double coeff,
20  const QudaGaugeParam& param,
21  const cudaGaugeField &oprod,
22  const cudaGaugeField &link,
23  cudaGaugeField *newOprod,
24  long long* flops = NULL);
25 
26 
27  void hisqCompleteForceCuda(const QudaGaugeParam &param,
28  const cudaGaugeField &oprod,
29  const cudaGaugeField &link,
30  cudaGaugeField *force,
31  long long* flops = NULL);
32 
33 
34 
35  void setUnitarizeForceConstants(double unitarize_eps, double hisq_force_filter, double max_det_error,
36  bool allow_svd, bool svd_only,
37  double svd_rel_error,
38  double svd_abs_error);
39 
40  void unitarizeForceCuda(cudaGaugeField &cudaOldForce,
42  cudaGaugeField *cudaNewForce,
43  int* unitarization_failed,
44  long long* flops = NULL);
45 
46  void unitarizeForceCPU( cpuGaugeField &cpuOldForce,
48  cpuGaugeField *cpuNewForce);
49 
50 
51  } // namespace fermion_force
52 } // namespace quda
53 
54 #endif // _KS_IMPROVED_FORCE_H
void setUnitarizeForceConstants(double unitarize_eps, double hisq_force_filter, double max_det_error, bool allow_svd, bool svd_only, double svd_rel_error, double svd_abs_error)
void unitarizeForceCuda(cudaGaugeField &cudaOldForce, cudaGaugeField &cudaGauge, cudaGaugeField *cudaNewForce, int *unitarization_failed, long long *flops=NULL)
void unitarizeForceCPU(cpuGaugeField &cpuOldForce, cpuGaugeField &cpuGauge, cpuGaugeField *cpuNewForce)
cudaGaugeField * cudaGauge
QudaGaugeParam param
Definition: pack_test.cpp:17
void hisqCompleteForceCuda(const QudaGaugeParam &param, const cudaGaugeField &oprod, const cudaGaugeField &link, cudaGaugeField *force, long long *flops=NULL)
__constant__ double coeff
cpuGaugeField * cpuGauge
void hisqLongLinkForceCuda(double coeff, const QudaGaugeParam &param, const cudaGaugeField &oprod, const cudaGaugeField &link, cudaGaugeField *newOprod, long long *flops=NULL)
void hisqStaplesForceCuda(const double path_coeff[6], const QudaGaugeParam &param, const cudaGaugeField &oprod, const cudaGaugeField &link, cudaGaugeField *newOprod, long long *flops=NULL)
Main header file for the QUDA library.