Grid 0.7.0
HybridMonteCarlo< IntegratorType > Class Template Reference

The HMC class, which performs the metropolis accept/reject step and molecular dynamics integration step. More...

#include <HMC.h>

Public Member Functions

 HybridMonteCarlo (HMCparameters _Pams, IntegratorType &_Int, GridSerialRNG &_sRNG, GridParallelRNG &_pRNG, ObsListType _Obs, Field &_U)
 ~HybridMonteCarlo ()
void evolve (void)

Private Types

typedef IntegratorType::Field Field
typedef IntegratorType::FieldImplementation FieldImplementation
typedef std::vector< HmcObservable< Field > * > ObsListType

Private Member Functions

bool metropolis_test (const RealD DeltaH)
RealD evolve_hmc_step (Field &U)

Private Attributes

const HMCparameters Params
GridSerialRNGsRNG
GridParallelRNGpRNG
FieldUcur
IntegratorType & TheIntegrator
ObsListType Observables

Detailed Description

template<class IntegratorType>
class HybridMonteCarlo< IntegratorType >

The HMC class, which performs the metropolis accept/reject step and molecular dynamics integration step.

As introduced in Duane, Kennedy, Pendleton & Roweth, Phys. Letters B, 2, 1987 https://doi.org/10.1016/0370-2693(87)91197-X

See Rothe, Third Edition, Section 16.7 'The Hybrid Monte Carlo Algorithm'

Definition at line 96 of file HMC.h.

Member Typedef Documentation

◆ Field

template<class IntegratorType>
typedef IntegratorType::Field HybridMonteCarlo< IntegratorType >::Field
private

Definition at line 113 of file HMC.h.

◆ FieldImplementation

template<class IntegratorType>
typedef IntegratorType::FieldImplementation HybridMonteCarlo< IntegratorType >::FieldImplementation
private

Definition at line 114 of file HMC.h.

◆ ObsListType

template<class IntegratorType>
typedef std::vector< HmcObservable<Field> * > HybridMonteCarlo< IntegratorType >::ObsListType
private

Definition at line 115 of file HMC.h.

Constructor & Destructor Documentation

◆ HybridMonteCarlo()

template<class IntegratorType>
HybridMonteCarlo< IntegratorType >::HybridMonteCarlo ( HMCparameters _Pams,
IntegratorType & _Int,
GridSerialRNG & _sRNG,
GridParallelRNG & _pRNG,
ObsListType _Obs,
Field & _U )
inline

Definition at line 255 of file HMC.h.

References Observables, Params, pRNG, sRNG, TheIntegrator, and Ucur.

◆ ~HybridMonteCarlo()

template<class IntegratorType>
HybridMonteCarlo< IntegratorType >::~HybridMonteCarlo ( )
inline

Definition at line 259 of file HMC.h.

Member Function Documentation

◆ metropolis_test()

template<class IntegratorType>
bool HybridMonteCarlo< IntegratorType >::metropolis_test ( const RealD DeltaH)
inlineprivate

Definition at line 129 of file HMC.h.

References GridLogHMC, random(), and sRNG.

Referenced by evolve().

◆ evolve_hmc_step()

template<class IntegratorType>
RealD HybridMonteCarlo< IntegratorType >::evolve_hmc_step ( Field & U)
inlineprivate

Definition at line 154 of file HMC.h.

References GridLogHMC, GridLogMessage, Nd, Params, PeekIndex(), PokeIndex(), pRNG, random(), sRNG, TheIntegrator, and U.

Referenced by evolve().

◆ evolve()

template<class IntegratorType>
void HybridMonteCarlo< IntegratorType >::evolve ( void )
inline

Field Documentation

◆ Params

template<class IntegratorType>
const HMCparameters HybridMonteCarlo< IntegratorType >::Params
private

Definition at line 111 of file HMC.h.

Referenced by evolve(), evolve_hmc_step(), and HybridMonteCarlo().

◆ sRNG

template<class IntegratorType>
GridSerialRNG& HybridMonteCarlo< IntegratorType >::sRNG
private

Definition at line 118 of file HMC.h.

Referenced by evolve(), evolve_hmc_step(), HybridMonteCarlo(), and metropolis_test().

◆ pRNG

template<class IntegratorType>
GridParallelRNG& HybridMonteCarlo< IntegratorType >::pRNG
private

Definition at line 119 of file HMC.h.

Referenced by evolve(), evolve_hmc_step(), and HybridMonteCarlo().

◆ Ucur

template<class IntegratorType>
Field& HybridMonteCarlo< IntegratorType >::Ucur
private

Definition at line 121 of file HMC.h.

Referenced by evolve(), and HybridMonteCarlo().

◆ TheIntegrator

template<class IntegratorType>
IntegratorType& HybridMonteCarlo< IntegratorType >::TheIntegrator
private

Definition at line 123 of file HMC.h.

Referenced by evolve(), evolve_hmc_step(), and HybridMonteCarlo().

◆ Observables

template<class IntegratorType>
ObsListType HybridMonteCarlo< IntegratorType >::Observables
private

Definition at line 124 of file HMC.h.

Referenced by evolve(), and HybridMonteCarlo().


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