ape_link_smearing.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 // $Id: ape_link_smearing.h,v 3.3 2008/11/04 18:43:57 edwards Exp $
00003 /*! \file
00004  *  \brief APE link smearing
00005  */
00006 
00007 #ifndef __ape_link_smearing_h__
00008 #define __ape_link_smearing_h__
00009 
00010 #include "meas/smear/link_smearing.h"
00011 
00012 namespace Chroma
00013 {
00014 
00015   //! Name and registration
00016   namespace APELinkSmearingEnv
00017   {
00018     bool registerAll();
00019 
00020     //! Return the name
00021     std::string getName();
00022   
00023     //! Params for APE link smearing
00024     /*! @ingroup smear */
00025     struct Params
00026     {
00027       Params() {}
00028       Params(XMLReader& in, const std::string& path);
00029       void writeXML(XMLWriter& in, const std::string& path) const;
00030     
00031       int link_smear_num;               /*!< Smearing hits */
00032       Real link_smear_fact;             /*!< Smearing parameters */
00033       int no_smear_dir;                 /*!< Direction to not smear */
00034       int BlkMax;                       /*!< Max number of iterations */
00035       Real BlkAccu;                     /*!< Relative error to maximize trace */
00036     };
00037 
00038 
00039     //! APE link smearing
00040     /*! @ingroup smear
00041      *
00042      * APE link smearing object
00043      */
00044     class LinkSmear : public LinkSmearing
00045     {
00046     public:
00047       //! Full constructor
00048       LinkSmear(const Params& p) : params(p) {}
00049 
00050       //! Smear the links
00051       void operator()(multi1d<LatticeColorMatrix>& u) const;
00052 
00053     private:
00054       //! Hide partial constructor
00055       LinkSmear() {}
00056 
00057     private:
00058       Params  params;   /*!< smearing params */
00059     };
00060 
00061   }  // end namespace
00062 
00063 
00064   //! Reader
00065   /*! @ingroup smear */
00066   void read(XMLReader& xml, const string& path, APELinkSmearingEnv::Params& param);
00067 
00068   //! Writer
00069   /*! @ingroup smear */
00070   void write(XMLWriter& xml, const string& path, const APELinkSmearingEnv::Params& param);
00071 
00072 }  // end namespace Chroma
00073 
00074 
00075 #endif

Generated on Sun Nov 22 04:28:49 2009 for CHROMA by  doxygen 1.4.7