16 namespace PlaqPlusSpatialTwoPlaqGaugeActEnv
50 XMLReader paramtop(xml_in, path);
54 if (paramtop.count(
"AnisoParam") != 0)
64 QDPIO::cerr <<
"Error reading XML: " << e << std::endl;
108 int mu,
int cb)
const
110 QDPIO::cerr <<
"Not implemented " << std::endl;
158 QDP::StopWatch swatch;
164 const multi1d<LatticeColorMatrix>&
u =
state->getLinks();
166 multi1d<LatticeColorMatrix> ds_tmp(
Nd);
180 if (
mu == t_dir )
continue;
183 if(
nu == t_dir )
continue;
211 LatticeColorMatrix u_mu_plus_nu = shift(
u[
mu],
FORWARD,
nu);
212 LatticeColorMatrix u_nu_plus_mu = shift(
u[
nu],
FORWARD,
mu);
214 tmp = adj(u_mu_plus_nu)*adj(
u[
nu]);
222 tmp2 = adj(u_nu_plus_mu)*adj(
u[
mu]);
229 LatticeReal P_munu = real(trace(adj(
tmp2)*
tmp));
233 LatticeReal P_sum = l_plaq_coeff_s +
234 factor*(shift(P_munu,
FORWARD, t_dir)+
252 ds_tmp[
mu] += u_nu_plus_mu*
tmp;
258 ds_tmp[
nu] += u_mu_plus_nu*
tmp2;
270 if(
nu == t_dir )
continue;
290 LatticeColorMatrix u_t_plus_nu = shift(
u[t_dir],
FORWARD,
nu);
291 LatticeColorMatrix u_nu_plus_t = shift(
u[
nu],
FORWARD, t_dir);
298 tmp = adj(u_t_plus_nu)*adj(
u[
nu]);
307 tmp2 = adj(u_nu_plus_t)*adj(
u[t_dir]);
313 ds_tmp[t_dir] += u_nu_plus_t*
tmp;
323 ds_u[
nu] = u_t_plus_nu*
tmp2;
338 ds_u[
mu] *= Real(-1)/Real(2*Nc);
375 const multi1d<LatticeColorMatrix>&
u =
state->getLinks();
382 if(
mu == t_dir)
continue;
386 if(
nu == t_dir)
continue;
394 S_pg +=
sum( other_term*P_munu );
403 if (
nu == t_dir )
continue;
Primary include file for CHROMA library code.
Abstract base class for gauge actions.
virtual const GaugeBC< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > & getGaugeBC() const
Return the gauge BC object for this action.
virtual void zero(P &ds_u) const =0
Zero some gauge-like field in place on the masked links.
Support class for fermion actions and linear operators.
Class for counted reference semantics.
bool anisoP() const
Is anisotropy used?
Double S(const Handle< GaugeState< P, Q > > &state) const
Compute the actions.
void init()
Hide assignment.
void deriv(multi1d< LatticeColorMatrix > &result, const Handle< GaugeState< P, Q > > &state) const
Compute dS/dU.
PlaqPlusSpatialTwoPlaqGaugeActParams param
void staple(LatticeColorMatrix &result, const Handle< GaugeState< P, Q > > &state, int mu, int cb) const
Compute staple.
int tDir() const
Anisotropic direction.
All gauge create-state method.
Gauge create state factory.
Fermion action factories.
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams ¶m)
Read parameters.
Handle< CreateGaugeState< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > reader(XMLReader &xml_in, const std::string &path)
Helper function for the CreateGaugeState readers.
GaugeAction< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * createGaugeAct(XMLReader &xml, const std::string &path)
static bool registered
Local registration flag.
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
FloatingPoint< double > Double
PlaqPlusSpatialTwoPlaqGaugeActParams()
Take the traceless antihermitian projection of a color matrix.