Skip to content
nmrcardoso edited this page May 22, 2015 · 6 revisions

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
);

QUDA MILC interface:

Clone this wiki locally