@@ -47,7 +47,7 @@ template <class Gimpl>
4747class WilsonGaugeAction : public Action <typename Gimpl::GaugeField>
4848/* ! @brief The Wilson gauge action,
4949 * as introduced in Wilson, Phys. Rev. D 10, 2445.
50- * See for example Gattringer and Lang, Eq. (3.4 ).
50+ * See for example Gattringer and Lang, Eq. (3.93 ).
5151 *
5252 * Expects a single parameter encoding the gauge coupling.
5353 * @param Gimpl: The gauge implementation.
@@ -65,9 +65,7 @@ class WilsonGaugeAction : public Action<typename Gimpl::GaugeField>
6565 using Action<GaugeField>::refresh;
6666
6767 /* ! @brief Construct a Wilson gauge action.
68- * @param[in] beta_: The inverse coupling \f$\beta\f$,
69- * Note that this is defined as \f$6 / g^2\f$ for all ``Nc``,
70- * **not** \f$2N_c / g^2\f$ as in Gattringer and Lang Eg. (3.93).
68+ * @param[in] beta_: The inverse coupling \f$\beta\f = 2N_c/g^2$.
7169 */
7270 explicit WilsonGaugeAction (RealD beta_):beta(beta_){};
7371
@@ -82,25 +80,32 @@ class WilsonGaugeAction : public Action<typename Gimpl::GaugeField>
8280 /* ! @brief Gauge fields do not have pseudofermions, so this is a no-op */
8381 virtual void refresh (const GaugeField &U, GridSerialRNG &sRNG , GridParallelRNG &pRNG){};
8482
85- /* ! @brief The Wilson gauge action itself; see Gattringer and Lang Eq. (3.4 )
83+ /* ! @brief The Wilson gauge action itself; see Gattringer and Lang Eq. (3.93 )
8684 * @param[in] U: The gauge field on which to compute the action.
8785 * @returns The value of the action \f$S[U]\f$
8886 */
8987 virtual RealD S (const GaugeField &U) {
9088 RealD plaq = WilsonLoops<Gimpl>::avgPlaquette (U);
9189 RealD vol = U.Grid ()->gSites ();
90+
91+ // Comparing with Gattringer and Lang Eq. (3.93),
92+ // taking the _average_ plaquette here means that
93+ // multiplying explicitly by the volume and dimensionality factors is needed,
94+ // but the factor of \f$1 / N_c\f$ divides out.
9295 RealD action = beta * (1.0 - plaq) * (Nd * (Nd - 1.0 )) * vol * 0.5 ;
9396 return action;
9497 };
9598
9699 /* ! @brief The derivative of the Wilson gauge action
97100 * @param[in] U: The gauge field on which to compute the derivative
98101 * @param[out] dSdU: Output field into which to write the derivative
102+ *
103+ * !todo The deriv method of WilsonGaugeAction
104+ * does not currently use an optimal implementation;
105+ * by extending the function Ta to include Lorentz indices,
106+ * this could be improved.
99107 */
100108 virtual void deriv (const GaugeField &U, GaugeField &dSdU) {
101- // not optimal implementation FIXME
102- // extend Ta to include Lorentz indexes
103-
104109 RealD factor = 0.5 * beta / RealD (Nc);
105110 GridBase *grid = U.Grid ();
106111
0 commit comments