QUDA
v1.1.0
A library for QCD on GPUs
quda
include
unitarization_links.h
Go to the documentation of this file.
1
#ifndef _UNITARIZATION_LINKS_QUDA_H
2
#define _UNITARIZATION_LINKS_QUDA_H
3
4
#include <
gauge_field.h
>
5
6
7
// ***************************************************
8
// Declarations for unitarization functions used
9
// in the construction of the hisq-fattened links
10
//
11
// There are many algorithms for unitarizing
12
// fat7-smeared link variables.
13
// In practice, we use the method employed by
14
// MILC and QOPQDP, namely a combination of
15
// "analytic", or Cayley-Hamilton, unitarization,
16
// and SVD.
17
// Analytic unitarization is first attempted.
18
// The eigenvalues of the matrix Q = V^{dagger}V
19
// (V being the fat7 link) are computed,
20
// if the determinant of Q is less than a user-defined
21
// value (svd_abs_error), or the relative error on the
22
// determinant, estimated by comparing the product
23
// of the eigenvalues of Q to the determinant obtained
24
// from the standard formula, is greater than a
25
// user-specified tolerance (svd_rel_error), then
26
// SVD is used to perform the unitarization.
27
// ***************************************************
28
29
30
namespace
quda
{
31
32
void
setUnitarizeLinksConstants
(
double
unitarize_eps,
double
max_error,
33
bool
allow_svd,
bool
svd_only,
34
double
svd_rel_error,
double
svd_abs_error);
35
36
void
unitarizeLinksCPU
(
GaugeField
&outfield,
const
GaugeField
&infield);
37
38
void
unitarizeLinks
(
GaugeField
&outfield,
const
GaugeField
&infield,
int
*fails);
39
void
unitarizeLinks
(
GaugeField
&outfield,
int
*fails);
40
41
bool
isUnitary
(
const
cpuGaugeField
& field,
double
max_error);
42
43
}
// namespace quda
44
45
46
#endif
// _UNITARIZATION_LINKS_H
quda::GaugeField
Definition:
gauge_field.h:200
quda::cpuGaugeField
Definition:
gauge_field.h:626
gauge_field.h
quda
Definition:
blas_lapack.h:24
quda::setUnitarizeLinksConstants
void setUnitarizeLinksConstants(double unitarize_eps, double max_error, bool allow_svd, bool svd_only, double svd_rel_error, double svd_abs_error)
quda::unitarizeLinksCPU
void unitarizeLinksCPU(GaugeField &outfield, const GaugeField &infield)
quda::unitarizeLinks
void unitarizeLinks(GaugeField &outfield, const GaugeField &infield, int *fails)
quda::isUnitary
bool isUnitary(const cpuGaugeField &field, double max_error)
Generated on Thu Oct 28 2021 16:10:26 for QUDA by
1.9.1