Skip to content

Commit 8115ac9

Browse files
authored
Merge pull request #37 from telos-collaboration/correct-action-documentation
correct and expand documentation of WilsonGaugeAction
2 parents b07a948 + e7b8ea4 commit 8115ac9

1 file changed

Lines changed: 13 additions & 8 deletions

File tree

Grid/qcd/action/gauge/WilsonGaugeAction.h

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ template <class Gimpl>
4747
class 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

Comments
 (0)