QUDA  v0.5.0
A library for QCD on GPUs
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Namespaces | Macros | Functions | Variables
unitarize_force_quda.cu File Reference
#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <iomanip>
#include <cuda.h>
#include <gauge_field.h>
#include <quda_matrix.h>
#include <svd_quda.h>

Go to the source code of this file.

Classes

class  quda::fermion_force::DerivativeCoefficients< Real >
 
class  quda::fermion_force::UnitarizeForceCuda
 

Namespaces

namespace  quda
 
namespace  quda::fermion_force
 

Macros

#define HISQ_UNITARIZE_PI   3.14159265358979323846
 
#define HISQ_UNITARIZE_PI23   HISQ_UNITARIZE_PI*2.0/3.0
 
#define REUNIT_SVD_ONLY   HOST_REUNIT_SVD_ONLY
 
#define HISQ_UNITARIZE_EPS   HOST_HISQ_UNITARIZE_EPS
 
#define REUNIT_ALLOW_SVD   HOST_REUNIT_ALLOW_SVD
 
#define REUNIT_SVD_REL_ERROR   HOST_REUNIT_SVD_REL_ERROR
 
#define REUNIT_SVD_ABS_ERROR   HOST_REUNIT_SVD_ABS_ERROR
 
#define MAX_DET_ERROR   HOST_MAX_DET_ERROR
 
#define HISQ_FORCE_FILTER   HOST_HISQ_FORCE_FILTER
 

Functions

void quda::fermion_force::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)
 
template<class Cmplx >
__device__ __host__ void quda::fermion_force::accumBothDerivatives (Matrix< Cmplx, 3 > *result, const Matrix< Cmplx, 3 > &left, const Matrix< Cmplx, 3 > &right, const Matrix< Cmplx, 3 > &outer_prod)
 
template<class Cmplx >
__device__ __host__ void quda::fermion_force::accumDerivatives (Matrix< Cmplx, 3 > *result, const Matrix< Cmplx, 3 > &left, const Matrix< Cmplx, 3 > &right, const Matrix< Cmplx, 3 > &outer_prod)
 
template<class T >
__device__ __host__ T quda::fermion_force::getAbsMin (const T *const array, int size)
 
template<class Real >
__device__ __host__ bool quda::fermion_force::checkAbsoluteError (Real a, Real b, Real epsilon)
 
template<class Real >
__device__ __host__ bool quda::fermion_force::checkRelativeError (Real a, Real b, Real epsilon)
 
template<class Cmplx >
__device__ __host__ void quda::fermion_force::reciprocalRoot (Matrix< Cmplx, 3 > *res, DerivativeCoefficients< typename RealTypeId< Cmplx >::Type > *deriv_coeffs, typename RealTypeId< Cmplx >::Type f[3], Matrix< Cmplx, 3 > &q, int *unitarization_failed)
 
template<class Cmplx >
__device__ __host__ void quda::fermion_force::getUnitarizeForceSite (const Matrix< Cmplx, 3 > &v, const Matrix< Cmplx, 3 > &outer_prod, Matrix< Cmplx, 3 > *result, int *unitarization_failed)
 
template<class Cmplx >
__global__ void quda::fermion_force::getUnitarizeForceField (const int threads, const Cmplx *link_even, const Cmplx *link_odd, const Cmplx *old_force_even, const Cmplx *old_force_odd, Cmplx *force_even, Cmplx *force_odd, int *unitarization_failed)
 
void quda::fermion_force::unitarizeForceCPU (const QudaGaugeParam &param, cpuGaugeField &cpuOldForce, cpuGaugeField &cpuGauge, cpuGaugeField *cpuNewForce)
 
void quda::fermion_force::unitarizeForceCuda (const QudaGaugeParam &param, cudaGaugeField &cudaOldForce, cudaGaugeField &cudaGauge, cudaGaugeField *cudaNewForce, int *unitarization_failed)
 

Variables

__constant__ double quda::DEV_HISQ_UNITARIZE_EPS
 
__constant__ double quda::DEV_HISQ_FORCE_FILTER
 
__constant__ double quda::DEV_MAX_DET_ERROR
 
__constant__ bool quda::DEV_REUNIT_ALLOW_SVD
 
__constant__ bool quda::DEV_REUNIT_SVD_ONLY
 
__constant__ double quda::DEV_REUNIT_SVD_REL_ERROR
 
__constant__ double quda::DEV_REUNIT_SVD_ABS_ERROR
 

Macro Definition Documentation

#define HISQ_FORCE_FILTER   HOST_HISQ_FORCE_FILTER
#define HISQ_UNITARIZE_EPS   HOST_HISQ_UNITARIZE_EPS
#define HISQ_UNITARIZE_PI   3.14159265358979323846

Definition at line 13 of file unitarize_force_quda.cu.

#define HISQ_UNITARIZE_PI23   HISQ_UNITARIZE_PI*2.0/3.0

Definition at line 14 of file unitarize_force_quda.cu.

#define MAX_DET_ERROR   HOST_MAX_DET_ERROR
#define REUNIT_ALLOW_SVD   HOST_REUNIT_ALLOW_SVD
#define REUNIT_SVD_ABS_ERROR   HOST_REUNIT_SVD_ABS_ERROR
#define REUNIT_SVD_ONLY   HOST_REUNIT_SVD_ONLY
#define REUNIT_SVD_REL_ERROR   HOST_REUNIT_SVD_REL_ERROR