|
Grid 0.7.0
|
Base class for all actions. More...
#include <ActionBase.h>
Public Member Functions | |
| virtual | ~Action () |
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 void | refresh (const GaugeField &U, GridSerialRNG &sRNG, GridParallelRNG &pRNG)=0 |
| Refresh pseudofermion fields. | |
| virtual RealD | S (const GaugeField &U)=0 |
| Evaluate this action with the given gauge field. | |
| virtual RealD | Sinitial (const GaugeField &U) |
| Get the action at the start of the trajectory. | |
| virtual void | deriv (const GaugeField &U, GaugeField &dSdU)=0 |
Methods working on smart configuration containers | |
If is_smeared, then these methods work on the smeared field; otherwise, they work on the unsmeared field. | |
| virtual void | refresh (ConfigurationBase< GaugeField > &U, GridSerialRNG &sRNG, GridParallelRNG &pRNG) |
| Refresh pseudofermion fields. | |
| virtual RealD | S (ConfigurationBase< GaugeField > &U) |
| Evaluate this action with the given gauge field. | |
| virtual RealD | Sinitial (ConfigurationBase< GaugeField > &U) |
| Get the action at the start of the trajectory. | |
| virtual void | deriv (ConfigurationBase< GaugeField > &U, GaugeField &dSdU) |
Logging | |
| virtual std::string | action_name ()=0 |
| Report the name of the action. | |
| virtual std::string | LogParameters ()=0 |
| Print the parameters of the action. | |
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. | |
Base class for all actions.
Definition at line 62 of file ActionBase.h.
Definition at line 223 of file ActionBase.h.
|
inline |
Zero timers associated with this action.
Definition at line 79 of file ActionBase.h.
|
inline |
Record statistics on the action and derivative.
| [in] | nrm | Absolute value of the action. |
| [in] | max | Maximum value of the action. |
| [in] | Fdt_nrm | Absolute value of the force integrated across this time step. |
| [in] | Fdt_max | Maximum value of the force integrated across this time step. |
Definition at line 91 of file ActionBase.h.
Mean maximum derivative for a trajectory.
Definition at line 102 of file ActionBase.h.
Mean (absolute value of) derivative for a trajectory.
Definition at line 104 of file ActionBase.h.
Mean maximum value of impulse (force integrated over a time step) for a trajectory.
Definition at line 106 of file ActionBase.h.
Mean (absolute value of) impulse (force integrated over a time step) for a trajectory.
Definition at line 108 of file ActionBase.h.
Time spent computing the derivative in microseconds.
Definition at line 110 of file ActionBase.h.
Time spent computing the action in microseconds.
Definition at line 112 of file ActionBase.h.
Time spent refreshing pseudofermion fields in microseconds.
Definition at line 114 of file ActionBase.h.
|
inline |
Start timing derivative computation.
Definition at line 116 of file ActionBase.h.
|
inline |
Stop timing derivative computation.
Definition at line 118 of file ActionBase.h.
|
inline |
Start timing pseudofermion field refresh.
Definition at line 120 of file ActionBase.h.
|
inline |
Stop timing pseudofermion field refresh.
Definition at line 122 of file ActionBase.h.
|
inline |
Start timing action computation.
Definition at line 124 of file ActionBase.h.
|
inline |
Stop timing action computation.
Definition at line 126 of file ActionBase.h.
|
pure virtual |
Refresh pseudofermion fields.
| [in] | U | The gauge field |
| [in,out] | sRNG | The serial random number generator to use |
| [in,out] | pRNG | The parallel random number generator to use |
Implemented in DomainDecomposedBoundaryTwoFlavourBosonPseudoFermion< ImplD, ImplF >, DomainDecomposedBoundaryTwoFlavourPseudoFermion< ImplD, ImplF >, DomainDecomposedBoundaryTwoFlavourRatioPseudoFermion< ImplD, ImplF >, EmptyAction< GaugeField >, ExactOneFlavourRatioPseudoFermionAction< Impl >, ExactOneFlavourRatioPseudoFermionAction< ImplD >, GeneralEvenOddRatioRationalPseudoFermionAction< Impl >, GeneralEvenOddRatioRationalPseudoFermionAction< ImplD >, JacobianAction< Gimpl >, OneFlavourEvenOddRationalPseudoFermionAction< Impl >, OneFlavourRationalPseudoFermionAction< Impl >, OneFlavourRatioRationalPseudoFermionAction< Impl >, PlaqPlusRectangleAction< Gimpl >, PlaqPlusRectangleAction< ConjugateGimplD >, PlaqPlusRectangleAction< ConjugateGimplF >, PlaqPlusRectangleAction< ConjugateGimplR >, PlaqPlusRectangleAction< PeriodicGimplD >, PlaqPlusRectangleAction< PeriodicGimplF >, PlaqPlusRectangleAction< PeriodicGimplR >, TwoFlavourEvenOddPseudoFermionAction< Impl >, TwoFlavourEvenOddRatioPseudoFermionAction< Impl >, TwoFlavourPseudoFermionAction< Impl >, TwoFlavourRatioEO4DPseudoFermionAction< Impl >, and TwoFlavourRatioPseudoFermionAction< Impl >.
Referenced by Action< Field > *::refresh().
|
pure virtual |
Evaluate this action with the given gauge field.
| [in] | U | The gauge field to evaluate the action of. |
![$S[U]$](form_0.png)
Implemented in DomainDecomposedBoundaryTwoFlavourBosonPseudoFermion< ImplD, ImplF >, DomainDecomposedBoundaryTwoFlavourPseudoFermion< ImplD, ImplF >, DomainDecomposedBoundaryTwoFlavourRatioPseudoFermion< ImplD, ImplF >, EmptyAction< GaugeField >, ExactOneFlavourRatioPseudoFermionAction< Impl >, ExactOneFlavourRatioPseudoFermionAction< ImplD >, GeneralEvenOddRatioRationalPseudoFermionAction< Impl >, GeneralEvenOddRatioRationalPseudoFermionAction< ImplD >, JacobianAction< Gimpl >, OneFlavourEvenOddRationalPseudoFermionAction< Impl >, OneFlavourRationalPseudoFermionAction< Impl >, OneFlavourRatioRationalPseudoFermionAction< Impl >, PlaqPlusRectangleAction< Gimpl >, PlaqPlusRectangleAction< ConjugateGimplD >, PlaqPlusRectangleAction< ConjugateGimplF >, PlaqPlusRectangleAction< ConjugateGimplR >, PlaqPlusRectangleAction< PeriodicGimplD >, PlaqPlusRectangleAction< PeriodicGimplF >, PlaqPlusRectangleAction< PeriodicGimplR >, TwoFlavourEvenOddPseudoFermionAction< Impl >, TwoFlavourEvenOddRatioPseudoFermionAction< Impl >, TwoFlavourPseudoFermionAction< Impl >, TwoFlavourRatioEO4DPseudoFermionAction< Impl >, and TwoFlavourRatioPseudoFermionAction< Impl >.
Referenced by Action< Field > *::S(), and Action< Field > *::Sinitial().
|
inlinevirtual |
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.
| [in] | U | The gauge field. |
![$S[U]$](form_0.png)
Reimplemented in GeneralEvenOddRatioRationalPseudoFermionAction< Impl >, GeneralEvenOddRatioRationalPseudoFermionAction< ImplD >, and TwoFlavourEvenOddRatioPseudoFermionAction< Impl >.
Definition at line 157 of file ActionBase.h.
Referenced by Action< Field > *::Sinitial().
|
pure virtual |
Evaluate the derivative of the action, to be integrated in the molecular dynamics part of the HMC.
| [in] | U | The gauge field to compute the action's derivative on. |
| [out] | dSdU | Array into which to output the resulting derivative. |
Implemented in DomainDecomposedBoundaryTwoFlavourBosonPseudoFermion< ImplD, ImplF >, DomainDecomposedBoundaryTwoFlavourPseudoFermion< ImplD, ImplF >, DomainDecomposedBoundaryTwoFlavourRatioPseudoFermion< ImplD, ImplF >, EmptyAction< GaugeField >, ExactOneFlavourRatioPseudoFermionAction< Impl >, ExactOneFlavourRatioPseudoFermionAction< ImplD >, GeneralEvenOddRatioRationalPseudoFermionAction< Impl >, GeneralEvenOddRatioRationalPseudoFermionAction< ImplD >, JacobianAction< Gimpl >, OneFlavourEvenOddRationalPseudoFermionAction< Impl >, OneFlavourRationalPseudoFermionAction< Impl >, OneFlavourRatioRationalPseudoFermionAction< Impl >, PlaqPlusRectangleAction< Gimpl >, PlaqPlusRectangleAction< ConjugateGimplD >, PlaqPlusRectangleAction< ConjugateGimplF >, PlaqPlusRectangleAction< ConjugateGimplR >, PlaqPlusRectangleAction< PeriodicGimplD >, PlaqPlusRectangleAction< PeriodicGimplF >, PlaqPlusRectangleAction< PeriodicGimplR >, TwoFlavourEvenOddPseudoFermionAction< Impl >, TwoFlavourEvenOddRatioPseudoFermionAction< Impl >, TwoFlavourPseudoFermionAction< Impl >, TwoFlavourRatioEO4DPseudoFermionAction< Impl >, and TwoFlavourRatioPseudoFermionAction< Impl >.
Referenced by Action< Field > *::deriv().
|
inlinevirtual |
Refresh pseudofermion fields.
| [in] | U | The gauge field |
| [in,out] | sRNG | The serial random number generator to use |
| [in,out] | pRNG | The parallel random number generator to use |
Definition at line 178 of file ActionBase.h.
|
inlinevirtual |
Evaluate this action with the given gauge field.
| [in] | U | The gauge field to evaluate the action of. |
![$S[U]$](form_0.png)
Definition at line 187 of file ActionBase.h.
|
inlinevirtual |
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.
| [in] | U | The gauge field. |
![$S[U]$](form_0.png)
Definition at line 201 of file ActionBase.h.
|
inlinevirtual |
Evaluate the derivative of the action, to be integrated in the molecular dynamics part of the HMC.
| [in] | U | The gauge field to compute the action's derivative on. |
| [out] | dSdU | Array into which to output the resulting derivative. |
Definition at line 210 of file ActionBase.h.
|
pure virtual |
Report the name of the action.
Implemented in DBW2GaugeAction< Gimpl >, DomainDecomposedBoundaryTwoFlavourBosonPseudoFermion< ImplD, ImplF >, DomainDecomposedBoundaryTwoFlavourPseudoFermion< ImplD, ImplF >, DomainDecomposedBoundaryTwoFlavourRatioPseudoFermion< ImplD, ImplF >, EmptyAction< GaugeField >, ExactOneFlavourRatioMixedPrecHeatbathPseudoFermionAction< ImplD, ImplF >, ExactOneFlavourRatioPseudoFermionAction< Impl >, ExactOneFlavourRatioPseudoFermionAction< ImplD >, GeneralEvenOddRatioRationalMixedPrecPseudoFermionAction< ImplD, ImplF >, GeneralEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >, GeneralEvenOddRatioRationalPseudoFermionAction< Impl >, GeneralEvenOddRatioRationalPseudoFermionAction< ImplD >, IwasakiGaugeAction< Gimpl >, IwasakiGaugeAction< ConjugateGimplD >, IwasakiGaugeAction< ConjugateGimplF >, IwasakiGaugeAction< ConjugateGimplR >, IwasakiGaugeAction< PeriodicGimplD >, IwasakiGaugeAction< PeriodicGimplF >, IwasakiGaugeAction< PeriodicGimplR >, JacobianAction< Gimpl >, OneFlavourEvenOddRationalPseudoFermionAction< Impl >, OneFlavourEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >, OneFlavourEvenOddRatioRationalPseudoFermionAction< Impl >, OneFlavourRationalPseudoFermionAction< Impl >, OneFlavourRatioRationalPseudoFermionAction< Impl >, PlaqPlusRectangleAction< Gimpl >, PlaqPlusRectangleAction< ConjugateGimplD >, PlaqPlusRectangleAction< ConjugateGimplF >, PlaqPlusRectangleAction< ConjugateGimplR >, PlaqPlusRectangleAction< PeriodicGimplD >, PlaqPlusRectangleAction< PeriodicGimplF >, PlaqPlusRectangleAction< PeriodicGimplR >, RBCGaugeAction< Gimpl >, ScalarAction< Impl >, ScalarAction< ScalarImplD >, ScalarAction< ScalarImplF >, ScalarAction< ScalarImplR >, ScalarInteractionAction< Impl, Ndim >, ScalarInteractionAction< ScalarNxNAdjImplD< Colours >, Dimensions >, ScalarInteractionAction< ScalarNxNAdjImplF< Colours >, Dimensions >, ScalarInteractionAction< ScalarNxNAdjImplR< Colours >, Dimensions >, SymanzikGaugeAction< Gimpl >, SymanzikGaugeAction< ConjugateGimplD >, SymanzikGaugeAction< ConjugateGimplF >, SymanzikGaugeAction< ConjugateGimplR >, SymanzikGaugeAction< PeriodicGimplD >, SymanzikGaugeAction< PeriodicGimplF >, SymanzikGaugeAction< PeriodicGimplR >, TwoFlavourEvenOddPseudoFermionAction< Impl >, TwoFlavourEvenOddRatioPseudoFermionAction< Impl >, TwoFlavourPseudoFermionAction< Impl >, TwoFlavourRatioEO4DPseudoFermionAction< Impl >, and TwoFlavourRatioPseudoFermionAction< Impl >.
|
pure virtual |
Print the parameters of the action.
Implemented in DomainDecomposedBoundaryTwoFlavourBosonPseudoFermion< ImplD, ImplF >, DomainDecomposedBoundaryTwoFlavourPseudoFermion< ImplD, ImplF >, DomainDecomposedBoundaryTwoFlavourRatioPseudoFermion< ImplD, ImplF >, EmptyAction< GaugeField >, ExactOneFlavourRatioPseudoFermionAction< Impl >, ExactOneFlavourRatioPseudoFermionAction< ImplD >, GeneralEvenOddRatioRationalPseudoFermionAction< Impl >, GeneralEvenOddRatioRationalPseudoFermionAction< ImplD >, JacobianAction< Gimpl >, OneFlavourEvenOddRationalPseudoFermionAction< Impl >, OneFlavourRationalPseudoFermionAction< Impl >, OneFlavourRatioRationalPseudoFermionAction< Impl >, PlaqPlusRectangleAction< Gimpl >, PlaqPlusRectangleAction< ConjugateGimplD >, PlaqPlusRectangleAction< ConjugateGimplF >, PlaqPlusRectangleAction< ConjugateGimplR >, PlaqPlusRectangleAction< PeriodicGimplD >, PlaqPlusRectangleAction< PeriodicGimplF >, PlaqPlusRectangleAction< PeriodicGimplR >, ScalarAction< Impl >, ScalarAction< ScalarImplD >, ScalarAction< ScalarImplF >, ScalarAction< ScalarImplR >, ScalarInteractionAction< Impl, Ndim >, ScalarInteractionAction< ScalarNxNAdjImplD< Colours >, Dimensions >, ScalarInteractionAction< ScalarNxNAdjImplF< Colours >, Dimensions >, ScalarInteractionAction< ScalarNxNAdjImplR< Colours >, Dimensions >, TwoFlavourEvenOddPseudoFermionAction< Impl >, TwoFlavourEvenOddRatioPseudoFermionAction< Impl >, TwoFlavourPseudoFermionAction< Impl >, TwoFlavourRatioEO4DPseudoFermionAction< Impl >, and TwoFlavourRatioPseudoFermionAction< Impl >.
| bool Action< GaugeField >::is_smeared |
Is the action computed on a smeared gauge field.
Definition at line 66 of file ActionBase.h.
Accumulator for absolute value of derivative of action.
Definition at line 67 of file ActionBase.h.
Accumulator for maximum value of derivative of action.
Definition at line 68 of file ActionBase.h.
Accumulator for absolute value of impulse (force integrated over time step).
Definition at line 69 of file ActionBase.h.
Accumulator for maximum impulse (force integrated over time step).
Definition at line 70 of file ActionBase.h.
| int Action< GaugeField >::deriv_num |
Number of times deriv_log() has been called.
Definition at line 71 of file ActionBase.h.
Time spent computing the derivative in microseconds.
Definition at line 72 of file ActionBase.h.
Time spent computing the action in microseconds.
Definition at line 73 of file ActionBase.h.
Time spent refreshing pseudofermion fields in microseconds.
Definition at line 74 of file ActionBase.h.