QUDA gauge fixing - lattice/quda GitHub Wiki
QUDA gauge fixing currently supports gauge fixing with:
- Overrelaxation method: supports single and multi GPU
- Steepest descent method with FFTs: only single GPU for now
Internal gauge fixing calls:
QUDA interface call:
- Gauge fixing with overrelaxation:
int computeGaugeFixingOVRQuda(
void* gauge, /* Quda gauge cointainer */
const unsigned int gauge_dir, /* 3 for Coulomb gauge fixing, other for Landau gauge fixing */
const unsigned int Nsteps, /* maximum number of steps to perform gauge fixing */
const unsigned int verbose_interval, /* number of interval steps to verbose gauge fixing status */
const double relax_boost, /* parameter of the overrelaxation, typical values are 1.5 and 1.7 */
const double tolerance, /* gauge fixing quality stop criterium, if zero then the gauge fixing performs the number of steps given by Nsteps */
const unsigned int reunit_interval, /* reunitarize gauge links if current step is multiple of this value */
const unsigned int stopWtheta, /* if 0 then uses MILC criterium for the tolerance, otherwise it uses theta value */
QudaGaugeParam* param,
double* timeinfo
);
- Gauge fixing with Steepest descent method with FFTs:
int computeGaugeFixingFFTQuda(
void* gauge,
const unsigned int gauge_dir,
const unsigned int Nsteps,
const unsigned int verbose_interval,
const double alpha,
const unsigned int autotune,
const double tolerance,
const unsigned int stopWtheta,
QudaGaugeParam* param ,
double* timeinfo
);