Bridge++  Version 1.5.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HMC_Leapfrog Class Reference

HMC with single level leapfrog intetgrator. More...

#include <hmc_Leapfrog.h>

Public Member Functions

 HMC_Leapfrog (std::vector< Action * > action, RandomNumbers *rand)
 constructor: with array of actions More...
 
 HMC_Leapfrog (std::vector< Action * > action, unique_ptr< RandomNumbers > &rand)
 
 HMC_Leapfrog (std::vector< Action * > action, std::vector< Director * > director, RandomNumbers *rand)
 constructor: with array of actions and directors More...
 
 HMC_Leapfrog (std::vector< Action * > action, std::vector< Director * > director, unique_ptr< RandomNumbers > &rand)
 
 HMC_Leapfrog (const ActionList &action_list, RandomNumbers *rand)
 constructor: with action_list More...
 
 HMC_Leapfrog (const ActionList &action_list, unique_ptr< RandomNumbers > &rand)
 
 HMC_Leapfrog (const ActionList &action_list, std::vector< Director * > director, RandomNumbers *rand)
 constructor: with action_list and array of directors More...
 
 HMC_Leapfrog (const ActionList &action_list, std::vector< Director * > director, unique_ptr< RandomNumbers > &rand)
 
 ~HMC_Leapfrog ()
 destructor More...
 
void set_parameters (const Parameters &params)
 
void set_parameters (const double Estep, const int Nmdc, const int Nprec, const int Metropolis_test)
 
void set_parameters (const double Estep, const int Nmdc, const int Nprec, const bool Metropolis_test)
 
void set_parameter_verboselevel (const Bridge::VerboseLevel vl)
 
double update (Field_G &)
 
double langevin (Field_G &iP, const Field_G &U)
 
double calc_Hamiltonian (const Field_G &iP, const Field_G &U)
 
double calcH_P (const Field_G &iP)
 
void integrate (Field_G &iP, Field_G &U)
 
void update_U (const double estep, const Field_G &iP, Field_G &U)
 
void update_P (const double estep, Field_G &iP, const Field_G &U)
 

Static Public Attributes

static const std::string class_name = "HMC_Leapfrog"
 

Private Member Functions

 HMC_Leapfrog (const HMC_Leapfrog &)
 
HMC_Leapfrogoperator= (const HMC_Leapfrog &)
 

Private Attributes

int m_Nmdc
 
int m_Nprec
 
bool m_Metropolis_test
 
double m_Estep
 
Langevin_Momentumm_Langevin_P
 
Staple_lexm_staple
 
std::vector< Action * > m_action
 
std::vector< Director * > m_director
 
RandomNumbersm_rand
 
Bridge::VerboseLevel m_vl
 

Detailed Description

HMC with single level leapfrog intetgrator.

This class implements standartd HMC with a simple leapfrog molecular dynamics integrator. While more general integrator is now available, this class is easy to understand and convenient for a first test, and thus kept as it is. 28 Dec 2011 H.Matsufuru YAML is implemented. [03 Mar 2013 Y.Namekawa] Langevin step was moved to separate class. [07 May 2014 H.Matsufuru] unique_ptr is introduced to avoid memory leaks [21 Mar 2015 Y.Namekawa]

Definition at line 44 of file hmc_Leapfrog.h.

Constructor & Destructor Documentation

HMC_Leapfrog::HMC_Leapfrog ( std::vector< Action * >  action,
RandomNumbers rand 
)

constructor: with array of actions

Definition at line 20 of file hmc_Leapfrog.cpp.

HMC_Leapfrog::HMC_Leapfrog ( std::vector< Action * >  action,
unique_ptr< RandomNumbers > &  rand 
)

Definition at line 39 of file hmc_Leapfrog.cpp.

HMC_Leapfrog::HMC_Leapfrog ( std::vector< Action * >  action,
std::vector< Director * >  director,
RandomNumbers rand 
)

constructor: with array of actions and directors

Definition at line 59 of file hmc_Leapfrog.cpp.

HMC_Leapfrog::HMC_Leapfrog ( std::vector< Action * >  action,
std::vector< Director * >  director,
unique_ptr< RandomNumbers > &  rand 
)

Definition at line 83 of file hmc_Leapfrog.cpp.

HMC_Leapfrog::HMC_Leapfrog ( const ActionList action_list,
RandomNumbers rand 
)

constructor: with action_list

Definition at line 108 of file hmc_Leapfrog.cpp.

HMC_Leapfrog::HMC_Leapfrog ( const ActionList action_list,
unique_ptr< RandomNumbers > &  rand 
)

Definition at line 129 of file hmc_Leapfrog.cpp.

HMC_Leapfrog::HMC_Leapfrog ( const ActionList action_list,
std::vector< Director * >  director,
RandomNumbers rand 
)

constructor: with action_list and array of directors

Definition at line 151 of file hmc_Leapfrog.cpp.

HMC_Leapfrog::HMC_Leapfrog ( const ActionList action_list,
std::vector< Director * >  director,
unique_ptr< RandomNumbers > &  rand 
)

Definition at line 177 of file hmc_Leapfrog.cpp.

HMC_Leapfrog::~HMC_Leapfrog ( )

destructor

Definition at line 204 of file hmc_Leapfrog.cpp.

HMC_Leapfrog::HMC_Leapfrog ( const HMC_Leapfrog )
private

Member Function Documentation

double HMC_Leapfrog::calc_Hamiltonian ( const Field_G iP,
const Field_G U 
)

Definition at line 377 of file hmc_Leapfrog.cpp.

double HMC_Leapfrog::calcH_P ( const Field_G iP)

Definition at line 408 of file hmc_Leapfrog.cpp.

void HMC_Leapfrog::integrate ( Field_G iP,
Field_G U 
)

Definition at line 419 of file hmc_Leapfrog.cpp.

double HMC_Leapfrog::langevin ( Field_G iP,
const Field_G U 
)

Definition at line 342 of file hmc_Leapfrog.cpp.

HMC_Leapfrog& HMC_Leapfrog::operator= ( const HMC_Leapfrog )
private
void HMC_Leapfrog::set_parameter_verboselevel ( const Bridge::VerboseLevel  vl)
inline

Definition at line 110 of file hmc_Leapfrog.h.

void HMC_Leapfrog::set_parameters ( const Parameters params)

Definition at line 212 of file hmc_Leapfrog.cpp.

void HMC_Leapfrog::set_parameters ( const double  Estep,
const int  Nmdc,
const int  Nprec,
const int  Metropolis_test 
)

Definition at line 240 of file hmc_Leapfrog.cpp.

void HMC_Leapfrog::set_parameters ( const double  Estep,
const int  Nmdc,
const int  Nprec,
const bool  Metropolis_test 
)

Definition at line 249 of file hmc_Leapfrog.cpp.

double HMC_Leapfrog::update ( Field_G Uorg)

Definition at line 271 of file hmc_Leapfrog.cpp.

void HMC_Leapfrog::update_P ( const double  estep,
Field_G iP,
const Field_G U 
)

Definition at line 449 of file hmc_Leapfrog.cpp.

void HMC_Leapfrog::update_U ( const double  estep,
const Field_G iP,
Field_G U 
)

Definition at line 473 of file hmc_Leapfrog.cpp.

Member Data Documentation

const std::string HMC_Leapfrog::class_name = "HMC_Leapfrog"
static

Definition at line 47 of file hmc_Leapfrog.h.

std::vector<Action *> HMC_Leapfrog::m_action
private

Definition at line 58 of file hmc_Leapfrog.h.

std::vector<Director *> HMC_Leapfrog::m_director
private

Definition at line 59 of file hmc_Leapfrog.h.

double HMC_Leapfrog::m_Estep
private

Definition at line 53 of file hmc_Leapfrog.h.

Langevin_Momentum* HMC_Leapfrog::m_Langevin_P
private

Definition at line 55 of file hmc_Leapfrog.h.

bool HMC_Leapfrog::m_Metropolis_test
private

Definition at line 52 of file hmc_Leapfrog.h.

int HMC_Leapfrog::m_Nmdc
private

Definition at line 50 of file hmc_Leapfrog.h.

int HMC_Leapfrog::m_Nprec
private

Definition at line 51 of file hmc_Leapfrog.h.

RandomNumbers* HMC_Leapfrog::m_rand
private

Definition at line 60 of file hmc_Leapfrog.h.

Staple_lex* HMC_Leapfrog::m_staple
private

Definition at line 56 of file hmc_Leapfrog.h.

Bridge::VerboseLevel HMC_Leapfrog::m_vl
private

Definition at line 61 of file hmc_Leapfrog.h.


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