15 namespace ConstrainedPlaqGaugeActEnv
48 XMLReader paramtop(xml_in, path);
54 read(paramtop,
"q",
q);
57 QDPIO::cerr <<
"Error reading XML: " << e << std::endl;
67 multi2d<LatticeReal> plaq_site;
79 act_F +=
sum(plaq_site[
mu][
nu]);
108 site_act.resize(
Nd,
Nd);
113 const multi1d<LatticeColorMatrix>&
u =
state->getLinks();
116 Real third = Real(1) / Real(Nc);
129 site_act[
nu][
mu] = site_act[
mu][
nu];
142 int mu,
int cb)
const
144 QDPIO::cerr << __func__ <<
": staple not possible\n";
156 multi1d<LatticeColorMatrix> deriv_fun;
160 multi1d<LatticeColorMatrix> deriv_two;
183 LatticeColorMatrix tmp_0;
184 LatticeColorMatrix
tmp_1;
185 LatticeColorMatrix
tmp_2;
187 const multi1d<LatticeColorMatrix>&
u =
state->getLinks();
194 LatticeColorMatrix
G;
199 if (
mu ==
nu)
continue;
205 LatticeColorMatrix down_staple = adj(
tmp_1)*adj(
u[
mu])*
u[
nu];
218 ds_u[
mu] *= Real(1)/(Real(2*Nc));
236 multi2d<LatticeReal> plaq_site;
240 LatticeColorMatrix tmp_0;
241 LatticeColorMatrix
tmp_1;
242 LatticeColorMatrix
tmp_2;
244 const multi1d<LatticeColorMatrix>&
u =
state->getLinks();
251 LatticeColorMatrix
G;
256 if (
mu ==
nu)
continue;
258 const LatticeReal& plq = pow(plaq_site[
mu][
nu],
param.
q-1);
264 LatticeColorMatrix down_staple = adj(
tmp_1)*adj(
u[
mu])*
u[
nu];
266 G += up_staple * plq;
278 ds_u[
mu] *= Real(
param.
q) * Real(1)/(Real(2*Nc));
Primary include file for CHROMA library code.
void derivPlaqTwo(multi1d< LatticeColorMatrix > &ds_u, const Handle< GaugeState< P, Q > > &state) const
Compute dS/dU.
void staple(LatticeColorMatrix &result, const Handle< GaugeState< P, Q > > &state, int mu, int cb) const
Compute staple.
void derivPlaqFun(multi1d< LatticeColorMatrix > &ds_u, const Handle< GaugeState< P, Q > > &state) const
Compute dS/dU.
void siteAction(multi2d< LatticeReal > &site_act, const Handle< GaugeState< P, Q > > &state) const
Compute the site-level action.
void deriv(multi1d< LatticeColorMatrix > &result, const Handle< GaugeState< P, Q > > &state) const
Compute dS/dU.
Double S(const Handle< GaugeState< P, Q > > &state) const
Compute the actions.
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.
Constrained plaquette gauge action.
All gauge create-state method.
Gauge create state factory.
Fermion action factories.
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams ¶m)
Read parameters.
GaugeAction< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * createGaugeAct(XMLReader &xml, const std::string &path)
static bool registered
Local registration flag.
const std::string name
Name to be used.
bool registerAll()
Register all the factories.
Handle< CreateGaugeState< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > reader(XMLReader &xml_in, const std::string &path)
Helper function for the CreateGaugeState readers.
multi1d< LatticeColorMatrix > G
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
FloatingPoint< double > Double
Params()
Base Constructor.