#ifndef QCD_WILSON_GAUGE_ACTION_H #define QCD_WILSON_GAUGE_ACTION_H namespace Grid{ namespace QCD{ //////////////////////////////////////////////////////////////////////// // Wilson Gauge Action .. should I template the Nc etc.. //////////////////////////////////////////////////////////////////////// template class WilsonGaugeAction : public Action { private: RealD beta; public: WilsonGaugeAction(RealD b):beta(b){}; virtual void init(const GaugeField &U, GridParallelRNG& pRNG) {}; virtual RealD S(const GaugeField &U) { return WilsonLoops::sumPlaquette(U); }; virtual void deriv(const GaugeField &U,GaugeField & dSdU) { //FIXME loop on directions MatrixField dSdU_mu(U._grid); WilsonLoops::Staple(dSdU_mu,U,0); }; virtual void staple(const GaugeField &stap,GaugeField & U) { //FIXME loop on directions MatrixField stap_mu(U._grid); WilsonLoops::Staple(stap_mu,U,0); }; }; } } #endif