2016-07-13 17:51:18 +01:00
|
|
|
/*
|
|
|
|
* Policy classes for the HMC
|
|
|
|
* Author: Guido Cossu
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef FUNDAMENTAL_H
|
|
|
|
#define FUNDAMENTAL_H
|
|
|
|
|
|
|
|
|
|
|
|
namespace Grid {
|
|
|
|
namespace QCD {
|
|
|
|
|
|
|
|
/*
|
|
|
|
* This is an helper class for the HMC
|
|
|
|
* Empty since HMC updates already the fundamental representation
|
|
|
|
*/
|
|
|
|
|
|
|
|
template <int ncolour>
|
|
|
|
class FundamentalRep {
|
|
|
|
public:
|
2016-07-18 12:05:23 +01:00
|
|
|
static const int Dimension = ncolour;
|
2018-01-17 13:46:12 +00:00
|
|
|
static const bool isFundamental = true;
|
2016-07-13 17:51:18 +01:00
|
|
|
|
|
|
|
// typdef to be used by the Representations class in HMC to get the
|
|
|
|
// types for the higher representation fields
|
2016-07-15 13:39:47 +01:00
|
|
|
typedef typename SU<ncolour>::LatticeMatrix LatticeMatrix;
|
|
|
|
typedef LatticeGaugeField LatticeField;
|
2016-07-13 17:51:18 +01:00
|
|
|
|
|
|
|
explicit FundamentalRep(GridBase* grid) {} //do nothing
|
|
|
|
void update_representation(const LatticeGaugeField& Uin) {} // do nothing
|
2016-07-18 12:05:23 +01:00
|
|
|
|
|
|
|
LatticeField RtoFundamentalProject(const LatticeField& in, Real scale = 1.0) const{
|
|
|
|
return (scale * in);
|
|
|
|
}
|
|
|
|
|
2016-07-13 17:51:18 +01:00
|
|
|
};
|
|
|
|
|
2016-10-07 17:28:46 +01:00
|
|
|
template<class Field>
|
|
|
|
class EmptyRep {
|
|
|
|
public:
|
|
|
|
typedef Field LatticeField;
|
|
|
|
|
|
|
|
explicit EmptyRep(GridBase* grid) {} //do nothing
|
|
|
|
void update_representation(const LatticeField& Uin) {} // do nothing
|
|
|
|
LatticeField RtoFundamentalProject(const LatticeField& in, Real scale = 1.0) const{}// do nothing
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-13 17:51:18 +01:00
|
|
|
typedef FundamentalRep<Nc> FundamentalRepresentation;
|
|
|
|
|
2016-10-07 17:28:46 +01:00
|
|
|
|
2016-07-13 17:51:18 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|