QUDA  v1.1.0
A library for QCD on GPUs
gauge_tools.h
Go to the documentation of this file.
1 #include <random_quda.h>
2 
3 namespace quda
4 {
5 
13  void gaugeObservables(GaugeField &u, QudaGaugeObservableParam &param, TimeProfile &profile);
14 
24  void projectSU3(GaugeField &U, double tol, int *fails);
25 
34  double3 plaquette(const GaugeField &U);
35 
51  void gaugeGauss(GaugeField &U, RNG &rngstate, double epsilon);
52 
68  void gaugeGauss(GaugeField &U, unsigned long long seed, double epsilon);
69 
77  void APEStep(GaugeField &dataDs, GaugeField &dataOr, double alpha);
78 
86  void STOUTStep(GaugeField &dataDs, GaugeField &dataOr, double rho);
87 
96  void OvrImpSTOUTStep(GaugeField &dataDs, GaugeField &dataOr, double rho, double epsilon);
97 
111 
125  void gaugeFixingOVR(GaugeField &data, const int gauge_dir, const int Nsteps, const int verbose_interval,
126  const double relax_boost, const double tolerance, const int reunit_interval, const int stopWtheta);
127 
141  void gaugeFixingFFT(GaugeField &data, const int gauge_dir, const int Nsteps, const int verbose_interval,
142  const double alpha, const int autotune, const double tolerance, const int stopWtheta);
143 
149  void computeFmunu(GaugeField &Fmunu, const GaugeField &gauge);
150 
158  void computeQCharge(double energy[3], double &qcharge, const GaugeField &Fmunu);
159 
169  void computeQChargeDensity(double energy[3], double &qcharge, void *qdensity, const GaugeField &Fmunu);
170 
171 } // namespace quda
Class declaration to initialize and hold CURAND RNG states.
Definition: random_quda.h:23
QudaWFlowType wflow_type
double tol
double epsilon
enum QudaWFlowType_s QudaWFlowType
void APEStep(GaugeField &dataDs, GaugeField &dataOr, double alpha)
Apply APE smearing to the gauge field.
void gaugeObservables(GaugeField &u, QudaGaugeObservableParam &param, TimeProfile &profile)
Calculates a variety of gauge-field observables.
double3 plaquette(const GaugeField &U)
Compute the plaquette of the gauge field.
void OvrImpSTOUTStep(GaugeField &dataDs, GaugeField &dataOr, double rho, double epsilon)
Apply Over Improved STOUT smearing to the gauge field.
void gaugeFixingFFT(GaugeField &data, const int gauge_dir, const int Nsteps, const int verbose_interval, const double alpha, const int autotune, const double tolerance, const int stopWtheta)
Gauge fixing with Steepest descent method with FFTs with support for single GPU only.
void WFlowStep(GaugeField &out, GaugeField &temp, GaugeField &in, double epsilon, QudaWFlowType wflow_type)
Apply Wilson Flow steps W1, W2, Vt to the gauge field. This routine assumes that the input and output...
void computeQCharge(double energy[3], double &qcharge, const GaugeField &Fmunu)
Compute the topological charge and field energy.
void gaugeGauss(GaugeField &U, RNG &rngstate, double epsilon)
Generate Gaussian distributed su(N) or SU(N) fields. If U is a momentum field, then we generate rando...
void gaugeFixingOVR(GaugeField &data, const int gauge_dir, const int Nsteps, const int verbose_interval, const double relax_boost, const double tolerance, const int reunit_interval, const int stopWtheta)
Gauge fixing with overrelaxation with support for single and multi GPU.
void computeFmunu(GaugeField &Fmunu, const GaugeField &gauge)
Compute the Fmunu tensor.
void STOUTStep(GaugeField &dataDs, GaugeField &dataOr, double rho)
Apply STOUT smearing to the gauge field.
void projectSU3(GaugeField &U, double tol, int *fails)
Project the input gauge field onto the SU(3) group. This is a destructive operation....
void computeQChargeDensity(double energy[3], double &qcharge, void *qdensity, const GaugeField &Fmunu)
Compute the topological charge, field energy and the topological charge density per lattice site.
QudaGaugeParam param
Definition: pack_test.cpp:18