lattice / quda

QUDA is a library for performing calculations in lattice QCD on GPUs.
https://lattice.github.io/quda
Other
287 stars 94 forks source link

Clover construction does not support anisotropy #209

Open maddyscientist opened 9 years ago

maddyscientist commented 9 years ago

The clover construction in lib/clover_quda.cpp does not presently support anisotropic clover construction. To do this Fmunu should be constructed with an isotropic gauge field, and the anisotropy taken care of explicitly when multiplying in the clover coefficient. Presently there is a single clover coefficient, this needs to be make an array of coefficients, allowing us to include the anisotropy in explicitly as a linear factor.

The Chroma reference code is here: https://github.com/JeffersonLab/chroma/blob/master/lib/actions/ferm/linop/clover_term_qdp_w.h https://github.com/JeffersonLab/chroma/blob/master/lib/meas/glue/mesfield.cc (construction of Fmunu)

template<typename T, typename U>
  Real
  QDPCloverTermT<T,U>::getCloverCoeff(int mu, int nu) const 
  { 
    START_CODE();

    if( param.anisoParam.anisoP )  {
      if (mu==param.anisoParam.t_dir || nu == param.anisoParam.t_dir) { 
    return param.clovCoeffT;
      }
      else { 
    // Otherwise return the spatial coeff
    return param.clovCoeffR;
      }
    }
    else { 
      // If there is no anisotropy just return the spatial one, it will
      // be the same as the temporal one
      return param.clovCoeffR; 
    } 

    END_CODE();
  }
maddyscientist commented 5 years ago

Assigning this task to @weinbe2.