QUDA v0.4.0
A library for QCD on GPUs
quda/include/hisq_force_quda.h
Go to the documentation of this file.
00001 #ifndef _HISQ_FORCE_QUDA_H
00002 #define _HISQ_FORCE_QUDA_H
00003 
00004 #include "hisq_force_utils.h"
00005 
00006 #include <gauge_field.h>
00007 
00008 namespace hisq {
00009   namespace fermion_force {
00010 
00011   void hisqForceInitCuda(QudaGaugeParam* param);
00012 
00013   void hisqStaplesForceCuda(const double path_coeff[6], 
00014                               const QudaGaugeParam& param,
00015                               const cudaGaugeField& oprod, 
00016                               const cudaGaugeField& link, 
00017                               cudaGaugeField *newOprod);
00018 
00019 
00020    void hisqLongLinkForceCuda(double coeff,
00021                              const QudaGaugeParam& param,
00022                              const cudaGaugeField &oprod,
00023                              const cudaGaugeField &link,
00024                              cudaGaugeField *newOprod);
00025 
00026 
00027    void hisqCompleteForceCuda(const QudaGaugeParam &param,
00028                                  const cudaGaugeField &oprod,
00029                                  const cudaGaugeField &link,
00030                                  cudaGaugeField *force);
00031 
00032 
00033 
00034   void setUnitarizeForceConstants(double unitarize_eps, double hisq_force_filter, double max_det_error,
00035                                      bool allow_svd, bool svd_only,
00036                                      double svd_rel_error,
00037                                      double svd_abs_error);
00038 
00039   void unitarizeForceCuda(const QudaGaugeParam &param,
00040                             cudaGaugeField &cudaOldForce,
00041                             cudaGaugeField &cudaGauge,
00042                             cudaGaugeField *cudaNewForce,
00043                             int* unitarization_failed);
00044 
00045   void unitarizeForceCPU( const QudaGaugeParam &param,
00046                             cpuGaugeField &cpuOldForce,
00047                             cpuGaugeField &cpuGauge,
00048                             cpuGaugeField *cpuNewForce);
00049 
00050 
00051  } // namespace fermion_force
00052 }  // namespace hisq
00053 
00054 #endif // _HISQ_FORCE_QUDA_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines