Grid 0.7.0
IwasakiGaugeAction< Gimpl > Class Template Reference

The Iwasaki gauge action, model IM11 in arXiv:1111.7054. More...

#include <PlaqPlusRectangleAction.h>

Inheritance diagram for IwasakiGaugeAction< Gimpl >:
RBCGaugeAction< Gimpl > PlaqPlusRectangleAction< Gimpl > Action< Gimpl::GaugeField >

Public Member Functions

 INHERIT_GIMPL_TYPES (Gimpl)
 IwasakiGaugeAction (RealD beta)
virtual std::string action_name ()
 Report the name of the action.
virtual void refresh (const GaugeField &U, GridSerialRNG &sRNG, GridParallelRNG &pRNG)
 Gauge fields do not have pseudofermions, so this is a no-op.
virtual std::string LogParameters ()
 Print the parameters of the action.
virtual RealD S (const GaugeField &U)
 The plaquette plus rectangle gauge action itself.
virtual void deriv (const GaugeField &U, GaugeField &dSdU)
 The derivative of any PlaqPlusRectangleGaugeAction subclass.
Timing methods
void reset_timer (void)
 Zero timers associated with this action.
void deriv_log (RealD nrm, RealD max, RealD Fdt_nrm, RealD Fdt_max)
 Record statistics on the action and derivative.
RealD deriv_max_average (void)
 Mean maximum derivative for a trajectory.
RealD deriv_norm_average (void)
 Mean (absolute value of) derivative for a trajectory.
RealD Fdt_max_average (void)
 Mean maximum value of impulse (force integrated over a time step) for a trajectory.
RealD Fdt_norm_average (void)
 Mean (absolute value of) impulse (force integrated over a time step) for a trajectory.
RealD deriv_timer (void)
 Time spent computing the derivative in microseconds.
RealD S_timer (void)
 Time spent computing the action in microseconds.
RealD refresh_timer (void)
 Time spent refreshing pseudofermion fields in microseconds.
void deriv_timer_start (void)
 Start timing derivative computation.
void deriv_timer_stop (void)
 Stop timing derivative computation.
void refresh_timer_start (void)
 Start timing pseudofermion field refresh.
void refresh_timer_stop (void)
 Stop timing pseudofermion field refresh.
void S_timer_start (void)
 Start timing action computation.
void S_timer_stop (void)
 Stop timing action computation.
Methods working on plain gauge fields
virtual RealD Sinitial (const GaugeField &U)
 Get the action at the start of the trajectory.

Data Fields

bool is_smeared
 Is the action computed on a smeared gauge field.
RealD deriv_norm_sum
 Accumulator for absolute value of derivative of action.
RealD deriv_max_sum
 Accumulator for maximum value of derivative of action.
RealD Fdt_norm_sum
 Accumulator for absolute value of impulse (force integrated over time step).
RealD Fdt_max_sum
 Accumulator for maximum impulse (force integrated over time step).
int deriv_num
 Number of times deriv_log() has been called.
RealD deriv_us
 Time spent computing the derivative in microseconds.
RealD S_us
 Time spent computing the action in microseconds.
RealD refresh_us
 Time spent refreshing pseudofermion fields in microseconds.

Private Attributes

RealD c_plaq
 The coefficient $b=c_0$ of the plaquette contribution.
RealD c_rect
 The coefficient $c=c_1$ of the rectangle contribution.
WilsonLoops< Gimpl >::StapleAndRectStapleAllWorkspace workspace

Detailed Description

template<class Gimpl>
class IwasakiGaugeAction< Gimpl >

The Iwasaki gauge action, model IM11 in arXiv:1111.7054.

Iwasaki introduced this action as one of a number of candidates in a 1983 report, later uploaded to arXiv as https://arxiv.org/abs/1111.7054

Definition at line 174 of file PlaqPlusRectangleAction.h.

Constructor & Destructor Documentation

◆ IwasakiGaugeAction()

template<class Gimpl>
IwasakiGaugeAction< Gimpl >::IwasakiGaugeAction ( RealD beta)
inline

Definition at line 184 of file PlaqPlusRectangleAction.h.

Member Function Documentation

◆ INHERIT_GIMPL_TYPES()

template<class Gimpl>
IwasakiGaugeAction< Gimpl >::INHERIT_GIMPL_TYPES ( Gimpl )

◆ action_name()

template<class Gimpl>
virtual std::string IwasakiGaugeAction< Gimpl >::action_name ( )
inlinevirtual

Report the name of the action.

Reimplemented from RBCGaugeAction< Gimpl >.

Definition at line 185 of file PlaqPlusRectangleAction.h.

◆ refresh()

template<class Gimpl>
virtual void PlaqPlusRectangleAction< Gimpl >::refresh ( const GaugeField & U,
GridSerialRNG & sRNG,
GridParallelRNG & pRNG )
inlinevirtualinherited

Gauge fields do not have pseudofermions, so this is a no-op.

Implements Action< Gimpl::GaugeField >.

Definition at line 88 of file PlaqPlusRectangleAction.h.

◆ LogParameters()

template<class Gimpl>
virtual std::string PlaqPlusRectangleAction< Gimpl >::LogParameters ( )
inlinevirtualinherited

Print the parameters of the action.

Implements Action< Gimpl::GaugeField >.

Definition at line 90 of file PlaqPlusRectangleAction.h.

◆ S()

template<class Gimpl>
virtual RealD PlaqPlusRectangleAction< Gimpl >::S ( const GaugeField & U)
inlinevirtualinherited

The plaquette plus rectangle gauge action itself.

\‍[S_g = - \frac{\beta}{3} \left[b \sum_{x;\mu<\nu} P[U]_{x,\mu\nu} + c \sum_{x;\mu\ne\nu} R[U]_{x,\mu\nu}\right]\‍]

where $P[U]$ is the mean of the real part of the trace of the path ordered product of links around the $1\times1$ plaquette, and $R[U]$ is the equivalent quantity for the $1\times2$ rectangle.

Parameters
[in]UThe gauge field on which to compute the action.
Returns
The value of the action $S[U]$

Implements Action< Gimpl::GaugeField >.

Definition at line 107 of file PlaqPlusRectangleAction.h.

◆ deriv()

template<class Gimpl>
virtual void PlaqPlusRectangleAction< Gimpl >::deriv ( const GaugeField & U,
GaugeField & dSdU )
inlinevirtualinherited

The derivative of any PlaqPlusRectangleGaugeAction subclass.

Parameters
[in]UThe gauge field on which to compute the derivative
[out]dSdUOutput field into which to write the derivative

Implements Action< Gimpl::GaugeField >.

Definition at line 124 of file PlaqPlusRectangleAction.h.

◆ reset_timer()

void Action< GaugeField >::reset_timer ( void )
inlineinherited

Zero timers associated with this action.

Definition at line 79 of file ActionBase.h.

◆ deriv_log()

void Action< GaugeField >::deriv_log ( RealD nrm,
RealD max,
RealD Fdt_nrm,
RealD Fdt_max )
inlineinherited

Record statistics on the action and derivative.

Parameters
[in]nrmAbsolute value of the action.
[in]maxMaximum value of the action.
[in]Fdt_nrmAbsolute value of the force integrated across this time step.
[in]Fdt_maxMaximum value of the force integrated across this time step.

Definition at line 91 of file ActionBase.h.

◆ deriv_max_average()

RealD Action< GaugeField >::deriv_max_average ( void )
inlineinherited

Mean maximum derivative for a trajectory.

Definition at line 102 of file ActionBase.h.

◆ deriv_norm_average()

RealD Action< GaugeField >::deriv_norm_average ( void )
inlineinherited

Mean (absolute value of) derivative for a trajectory.

Definition at line 104 of file ActionBase.h.

◆ Fdt_max_average()

RealD Action< GaugeField >::Fdt_max_average ( void )
inlineinherited

Mean maximum value of impulse (force integrated over a time step) for a trajectory.

Definition at line 106 of file ActionBase.h.

◆ Fdt_norm_average()

RealD Action< GaugeField >::Fdt_norm_average ( void )
inlineinherited

Mean (absolute value of) impulse (force integrated over a time step) for a trajectory.

Definition at line 108 of file ActionBase.h.

◆ deriv_timer()

RealD Action< GaugeField >::deriv_timer ( void )
inlineinherited

Time spent computing the derivative in microseconds.

Definition at line 110 of file ActionBase.h.

◆ S_timer()

RealD Action< GaugeField >::S_timer ( void )
inlineinherited

Time spent computing the action in microseconds.

Definition at line 112 of file ActionBase.h.

◆ refresh_timer()

RealD Action< GaugeField >::refresh_timer ( void )
inlineinherited

Time spent refreshing pseudofermion fields in microseconds.

Definition at line 114 of file ActionBase.h.

◆ deriv_timer_start()

void Action< GaugeField >::deriv_timer_start ( void )
inlineinherited

Start timing derivative computation.

Definition at line 116 of file ActionBase.h.

◆ deriv_timer_stop()

void Action< GaugeField >::deriv_timer_stop ( void )
inlineinherited

Stop timing derivative computation.

Definition at line 118 of file ActionBase.h.

◆ refresh_timer_start()

void Action< GaugeField >::refresh_timer_start ( void )
inlineinherited

Start timing pseudofermion field refresh.

Definition at line 120 of file ActionBase.h.

◆ refresh_timer_stop()

void Action< GaugeField >::refresh_timer_stop ( void )
inlineinherited

Stop timing pseudofermion field refresh.

Definition at line 122 of file ActionBase.h.

◆ S_timer_start()

void Action< GaugeField >::S_timer_start ( void )
inlineinherited

Start timing action computation.

Definition at line 124 of file ActionBase.h.

◆ S_timer_stop()

void Action< GaugeField >::S_timer_stop ( void )
inlineinherited

Stop timing action computation.

Definition at line 126 of file ActionBase.h.

◆ Sinitial()

virtual RealD Action< GaugeField >::Sinitial ( const GaugeField & U)
inlinevirtualinherited

Get the action at the start of the trajectory.

If the refresh computes the action, it can be cached so that the value at the start of a Monte Carlo trajectory can be used mid-trajectory.

Parameters
[in]UThe gauge field.
Returns
The value of the action $S[U]$, potentially as previously cached.

Definition at line 157 of file ActionBase.h.

Field Documentation

◆ c_plaq

template<class Gimpl>
RealD PlaqPlusRectangleAction< Gimpl >::c_plaq
privateinherited

The coefficient $b=c_0$ of the plaquette contribution.

Definition at line 74 of file PlaqPlusRectangleAction.h.

◆ c_rect

template<class Gimpl>
RealD PlaqPlusRectangleAction< Gimpl >::c_rect
privateinherited

The coefficient $c=c_1$ of the rectangle contribution.

Definition at line 75 of file PlaqPlusRectangleAction.h.

◆ workspace

template<class Gimpl>
WilsonLoops<Gimpl>::StapleAndRectStapleAllWorkspace PlaqPlusRectangleAction< Gimpl >::workspace
privateinherited

Definition at line 76 of file PlaqPlusRectangleAction.h.

◆ is_smeared

bool Action< GaugeField >::is_smeared
inherited

Is the action computed on a smeared gauge field.

Definition at line 66 of file ActionBase.h.

◆ deriv_norm_sum

RealD Action< GaugeField >::deriv_norm_sum
inherited

Accumulator for absolute value of derivative of action.

Definition at line 67 of file ActionBase.h.

◆ deriv_max_sum

RealD Action< GaugeField >::deriv_max_sum
inherited

Accumulator for maximum value of derivative of action.

Definition at line 68 of file ActionBase.h.

◆ Fdt_norm_sum

RealD Action< GaugeField >::Fdt_norm_sum
inherited

Accumulator for absolute value of impulse (force integrated over time step).

Definition at line 69 of file ActionBase.h.

◆ Fdt_max_sum

RealD Action< GaugeField >::Fdt_max_sum
inherited

Accumulator for maximum impulse (force integrated over time step).

Definition at line 70 of file ActionBase.h.

◆ deriv_num

int Action< GaugeField >::deriv_num
inherited

Number of times deriv_log() has been called.

Definition at line 71 of file ActionBase.h.

◆ deriv_us

RealD Action< GaugeField >::deriv_us
inherited

Time spent computing the derivative in microseconds.

Definition at line 72 of file ActionBase.h.

◆ S_us

RealD Action< GaugeField >::S_us
inherited

Time spent computing the action in microseconds.

Definition at line 73 of file ActionBase.h.

◆ refresh_us

RealD Action< GaugeField >::refresh_us
inherited

Time spent refreshing pseudofermion fields in microseconds.

Definition at line 74 of file ActionBase.h.


The documentation for this class was generated from the following file: