Grid 0.7.0
OneFlavourEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF > Class Template Reference

#include <OneFlavourEvenOddRationalRatio.h>

Inheritance diagram for OneFlavourEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >:
GeneralEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF > GeneralEvenOddRatioRationalPseudoFermionAction< Impl > Action< Impl::GaugeField >

Public Types

typedef OneFlavourRationalParams Params

Public Member Functions

 OneFlavourEvenOddRatioRationalMixedPrecPseudoFermionAction (FermionOperator< Impl > &_NumOp, FermionOperator< Impl > &_DenOp, FermionOperator< ImplF > &_NumOpF, FermionOperator< ImplF > &_DenOpF, const Params &p, Integer ReliableUpdateFreq)
virtual std::string action_name ()
 Report the name of the action.
 INHERIT_IMPL_TYPES (Impl)
void SetTolerances (std::vector< RealD > action_tolerance, std::vector< RealD > md_tolerance)
virtual std::string LogParameters ()
 Print the parameters of the action.
const FermionField & getPhiOdd () const
virtual void refresh (const GaugeField &U, GridSerialRNG &sRNG, GridParallelRNG &pRNG)
 Refresh pseudofermion fields.
void refresh (const GaugeField &U, const FermionField &eta)
virtual RealD Sinitial (const GaugeField &U)
 Get the action at the start of the trajectory.
virtual RealD S (const GaugeField &U)
 Evaluate this action with the given gauge field.
virtual void deriv (const GaugeField &U, GaugeField &dSdU)
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.

Data Fields

Params param
RealD RefreshAction
MultiShiftFunction ApproxPowerAction
MultiShiftFunction ApproxNegPowerAction
MultiShiftFunction ApproxHalfPowerAction
MultiShiftFunction ApproxNegHalfPowerAction
MultiShiftFunction ApproxPowerMD
MultiShiftFunction ApproxNegPowerMD
MultiShiftFunction ApproxHalfPowerMD
MultiShiftFunction ApproxNegHalfPowerMD
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.

Protected Member Functions

virtual void multiShiftInverse (bool numerator, const MultiShiftFunction &approx, const Integer MaxIter, const FermionFieldD &in, FermionFieldD &out)
virtual void multiShiftInverse (bool numerator, const MultiShiftFunction &approx, const Integer MaxIter, const FermionField &in, FermionField &out)
virtual void multiShiftInverse (bool numerator, const MultiShiftFunction &approx, const Integer MaxIter, const FermionField &in, std::vector< FermionField > &out_elems, FermionField &out)
virtual void ImportGauge (const typename Impl::GaugeField &Ud)
virtual void ImportGauge (const GaugeField &U)

Static Protected Attributes

static constexpr bool Numerator
static constexpr bool Denominator

Private Types

typedef Impl::FermionField FermionFieldD
typedef ImplF::FermionField FermionFieldF

Static Private Member Functions

static RationalActionParams transcribe (const Params &in)
static void generateApprox (MultiShiftFunction &approx, MultiShiftFunction &approx_inv, int inv_pow, int approx_degree, double CG_tolerance, AlgRemez &remez)

Private Attributes

FermionOperator< Impl > & NumOpD
FermionOperator< Impl > & DenOpD
FermionOperator< ImplF > & NumOpF
FermionOperator< ImplF > & DenOpF
Integer ReliableUpdateFreq
FermionOperator< Impl > & NumOp
FermionOperator< Impl > & DenOp
FermionField PhiEven
FermionField PhiOdd

Detailed Description

template<class Impl, class ImplF>
class OneFlavourEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >

Definition at line 71 of file OneFlavourEvenOddRationalRatio.h.

Member Typedef Documentation

◆ Params

template<class Impl, class ImplF>
typedef OneFlavourRationalParams OneFlavourEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >::Params

Definition at line 74 of file OneFlavourEvenOddRationalRatio.h.

◆ FermionFieldD

typedef Impl::FermionField GeneralEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >::FermionFieldD
privateinherited

Definition at line 44 of file GeneralEvenOddRationalRatioMixedPrec.h.

◆ FermionFieldF

typedef ImplF::FermionField GeneralEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >::FermionFieldF
privateinherited

Definition at line 45 of file GeneralEvenOddRationalRatioMixedPrec.h.

Constructor & Destructor Documentation

◆ OneFlavourEvenOddRatioRationalMixedPrecPseudoFermionAction()

template<class Impl, class ImplF>
OneFlavourEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >::OneFlavourEvenOddRatioRationalMixedPrecPseudoFermionAction ( FermionOperator< Impl > & _NumOp,
FermionOperator< Impl > & _DenOp,
FermionOperator< ImplF > & _NumOpF,
FermionOperator< ImplF > & _DenOpF,
const Params & p,
Integer ReliableUpdateFreq )
inline

Member Function Documentation

◆ transcribe()

template<class Impl, class ImplF>
RationalActionParams OneFlavourEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >::transcribe ( const Params & in)
inlinestaticprivate

◆ action_name()

template<class Impl, class ImplF>
virtual std::string OneFlavourEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >::action_name ( )
inlinevirtual

Report the name of the action.

Reimplemented from GeneralEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >.

Definition at line 98 of file OneFlavourEvenOddRationalRatio.h.

◆ multiShiftInverse() [1/3]

virtual void GeneralEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >::multiShiftInverse ( bool numerator,
const MultiShiftFunction & approx,
const Integer MaxIter,
const FermionFieldD & in,
FermionFieldD & out )
inlineprotectedvirtualinherited

Definition at line 58 of file GeneralEvenOddRationalRatioMixedPrec.h.

◆ multiShiftInverse() [2/3]

virtual void GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::multiShiftInverse ( bool numerator,
const MultiShiftFunction & approx,
const Integer MaxIter,
const FermionField & in,
FermionField & out )
inlineprotectedvirtualinherited

Definition at line 100 of file GeneralEvenOddRationalRatio.h.

◆ multiShiftInverse() [3/3]

template<class Impl>
virtual void GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::multiShiftInverse ( bool numerator,
const MultiShiftFunction & approx,
const Integer MaxIter,
const FermionField & in,
std::vector< FermionField > & out_elems,
FermionField & out )
inlineprotectedvirtualinherited

Definition at line 105 of file GeneralEvenOddRationalRatio.h.

References DenOp, and NumOp.

◆ ImportGauge() [1/2]

virtual void GeneralEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >::ImportGauge ( const typename Impl::GaugeField & Ud)
inlineprotectedvirtualinherited

Definition at line 86 of file GeneralEvenOddRationalRatioMixedPrec.h.

◆ ImportGauge() [2/2]

virtual void GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::ImportGauge ( const GaugeField & U)
inlineprotectedvirtualinherited

Definition at line 111 of file GeneralEvenOddRationalRatio.h.

◆ INHERIT_IMPL_TYPES()

GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::INHERIT_IMPL_TYPES ( Impl )
inherited

◆ generateApprox()

void GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::generateApprox ( MultiShiftFunction & approx,
MultiShiftFunction & approx_inv,
int inv_pow,
int approx_degree,
double CG_tolerance,
AlgRemez & remez )
inlinestaticprivateinherited

Definition at line 84 of file GeneralEvenOddRationalRatio.h.

◆ SetTolerances()

void GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::SetTolerances ( std::vector< RealD > action_tolerance,
std::vector< RealD > md_tolerance )
inlineinherited

Definition at line 119 of file GeneralEvenOddRationalRatio.h.

◆ LogParameters()

virtual std::string GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::LogParameters ( )
inlinevirtualinherited

Print the parameters of the action.

Definition at line 212 of file GeneralEvenOddRationalRatio.h.

◆ getPhiOdd()

const FermionField & GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::getPhiOdd ( ) const
inlineinherited

Definition at line 227 of file GeneralEvenOddRationalRatio.h.

◆ refresh() [1/2]

virtual void GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::refresh ( const GaugeField & U,
GridSerialRNG & sRNG,
GridParallelRNG & pRNG )
inlinevirtualinherited

Refresh pseudofermion fields.

Parameters
[in]UThe gauge field
[in,out]sRNGThe serial random number generator to use
[in,out]pRNGThe parallel random number generator to use

Definition at line 229 of file GeneralEvenOddRationalRatio.h.

◆ refresh() [2/2]

◆ Sinitial()

virtual RealD GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::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 283 of file GeneralEvenOddRationalRatio.h.

◆ S()

virtual RealD GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::S ( const GaugeField & U)
inlinevirtualinherited

Evaluate this action with the given gauge field.

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

Definition at line 288 of file GeneralEvenOddRationalRatio.h.

◆ deriv()

virtual void GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::deriv ( const GaugeField & U,
GaugeField & dSdU )
inlinevirtualinherited

Evaluate the derivative of the action, to be integrated in the molecular dynamics part of the HMC.

Parameters
[in]UThe gauge field to compute the action's derivative on.
[out]dSdUArray into which to output the resulting derivative.

Definition at line 358 of file GeneralEvenOddRationalRatio.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.

Field Documentation

◆ NumOpD

FermionOperator<Impl>& GeneralEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >::NumOpD
privateinherited

Definition at line 47 of file GeneralEvenOddRationalRatioMixedPrec.h.

◆ DenOpD

FermionOperator<Impl>& GeneralEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >::DenOpD
privateinherited

Definition at line 48 of file GeneralEvenOddRationalRatioMixedPrec.h.

◆ NumOpF

FermionOperator<ImplF>& GeneralEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >::NumOpF
privateinherited

Definition at line 50 of file GeneralEvenOddRationalRatioMixedPrec.h.

◆ DenOpF

FermionOperator<ImplF>& GeneralEvenOddRatioRationalMixedPrecPseudoFermionAction< Impl, ImplF >::DenOpF
privateinherited

Definition at line 51 of file GeneralEvenOddRationalRatioMixedPrec.h.

◆ ReliableUpdateFreq

◆ param

Definition at line 61 of file GeneralEvenOddRationalRatio.h.

◆ RefreshAction

RealD GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::RefreshAction
inherited

Definition at line 62 of file GeneralEvenOddRationalRatio.h.

◆ ApproxPowerAction

Definition at line 64 of file GeneralEvenOddRationalRatio.h.

◆ ApproxNegPowerAction

MultiShiftFunction GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::ApproxNegPowerAction
inherited

Definition at line 65 of file GeneralEvenOddRationalRatio.h.

◆ ApproxHalfPowerAction

MultiShiftFunction GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::ApproxHalfPowerAction
inherited

Definition at line 66 of file GeneralEvenOddRationalRatio.h.

◆ ApproxNegHalfPowerAction

MultiShiftFunction GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::ApproxNegHalfPowerAction
inherited

Definition at line 67 of file GeneralEvenOddRationalRatio.h.

◆ ApproxPowerMD

Definition at line 70 of file GeneralEvenOddRationalRatio.h.

◆ ApproxNegPowerMD

Definition at line 71 of file GeneralEvenOddRationalRatio.h.

◆ ApproxHalfPowerMD

Definition at line 72 of file GeneralEvenOddRationalRatio.h.

◆ ApproxNegHalfPowerMD

MultiShiftFunction GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::ApproxNegHalfPowerMD
inherited

Definition at line 73 of file GeneralEvenOddRationalRatio.h.

◆ NumOp

FermionOperator<Impl>& GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::NumOp
privateinherited

Definition at line 77 of file GeneralEvenOddRationalRatio.h.

◆ DenOp

FermionOperator<Impl>& GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::DenOp
privateinherited

Definition at line 78 of file GeneralEvenOddRationalRatio.h.

◆ PhiEven

FermionField GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::PhiEven
privateinherited

Definition at line 79 of file GeneralEvenOddRationalRatio.h.

◆ PhiOdd

FermionField GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::PhiOdd
privateinherited

Definition at line 80 of file GeneralEvenOddRationalRatio.h.

◆ Numerator

bool GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::Numerator
staticconstexprprotectedinherited

Definition at line 96 of file GeneralEvenOddRationalRatio.h.

◆ Denominator

bool GeneralEvenOddRatioRationalPseudoFermionAction< Impl >::Denominator
staticconstexprprotectedinherited

Definition at line 97 of file GeneralEvenOddRationalRatio.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: