QUDA  0.9.0
ks_improved_force.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <quda_internal.h>
4 #include <quda.h>
5 #include <gauge_field.h>
6 
7 namespace quda {
8  namespace fermion_force {
9 
18  void hisqStaplesForce(GaugeField &newOprod,
19  const GaugeField& oprod,
20  const GaugeField& link,
21  const double path_coeff[6],
22  long long* flops = nullptr);
23 
32  void hisqLongLinkForce(GaugeField &newOprod,
33  const GaugeField &oprod,
34  const GaugeField &link,
35  double coeff,
36  long long* flops = nullptr);
37 
46  void hisqCompleteForce(GaugeField &momentum,
47  const GaugeField &oprod,
48  const GaugeField &link,
49  long long* flops = nullptr);
50 
54  void setUnitarizeForceConstants(double unitarize_eps, double hisq_force_filter, double max_det_error,
55  bool allow_svd, bool svd_only,
56  double svd_rel_error,
57  double svd_abs_error);
58 
67  void unitarizeForce(cudaGaugeField &newForce,
68  const cudaGaugeField &oldForce,
69  const cudaGaugeField &gauge,
70  int* unitarization_failed,
71  long long* flops = NULL);
72 
79  void unitarizeForceCPU(cpuGaugeField &newForce,
80  const cpuGaugeField &oldForce,
81  const cpuGaugeField &gauge);
82 
83  } // namespace fermion_force
84 } // namespace quda
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)
Set the constant parameters for the force unitarization.
void unitarizeForceCPU(cpuGaugeField &newForce, const cpuGaugeField &oldForce, const cpuGaugeField &gauge)
Unitarize the fermion force on CPU.
void hisqLongLinkForce(GaugeField &newOprod, const GaugeField &oprod, const GaugeField &link, double coeff, long long *flops=nullptr)
Compute the long-link contribution to the fermion force.
void hisqStaplesForce(GaugeField &newOprod, const GaugeField &oprod, const GaugeField &link, const double path_coeff[6], long long *flops=nullptr)
Compute the fat-link contribution to the fermion force.
void unitarizeForce(cudaGaugeField &newForce, const cudaGaugeField &oldForce, const cudaGaugeField &gauge, int *unitarization_failed, long long *flops=NULL)
Unitarize the fermion force.
void hisqCompleteForce(GaugeField &momentum, const GaugeField &oprod, const GaugeField &link, long long *flops=nullptr)
Multiply the computed the force matrix by the gauge field and perform traceless anti-hermitian projec...
Main header file for the QUDA library.
unsigned long long flops
Definition: blas_quda.cu:42