23 std::vector<Director *> director,
31 for (
int i = 0; i < action_set.size(); ++i) {
35 for (
int i = 0; i < director.size(); ++i) {
49 std::vector<Director *> director,
57 for (
int i = 0; i < action_set.size(); ++i) {
61 for (
int i = 0; i < director.size(); ++i) {
83 for (
int i = 0; i < action_set.size(); ++i) {
104 for (
int i = 0; i < action_set.size(); ++i) {
128 const string str_vlevel = params.
get_string(
"verbose_level");
137 err += params.
fetch_double(
"trajectory_length", traj_length);
138 err += params.
fetch_int(
"Metropolis_test", Metropolis_test);
175 for (
int i = 0; i <
m_action.size(); ++i) {
212 double diff_H = H_total1 - H_total0;
213 double exp_minus_diff_H = exp(-diff_H);
222 if (rand <= exp_minus_diff_H) {
243 int NcA = Nc * Nc - 1;
245 int size_iP = NcA * Lvol * Ndim;
264 double H_actions = 0.0;
265 for (
int i = 0; i <
m_action.size(); ++i) {
269 double H_total = H_iP + H_actions;
284 int NcA = Nc * Nc - 1;
286 int size_iP = NcA * Lvol * Nex;
300 double H_actions = 0.0;
301 for (
int i = 0; i <
m_action.size(); ++i) {
305 double H_total = H_iP + H_actions;
313 double hn = iP.
norm();
314 double H_iP = 0.5 * hn * hn;
double calc_Hamiltonian(Field_G &iP, Field_G &U)
void set_parameters(const Parameters ¶ms)
std::vector< Director * > m_director
directors
void general(const char *format,...)
int m_Metropolis_test
Metropolis test: Metropolis_test=0: no test, !=0: test.
static const std::string class_name
int fetch_double(const string &key, double &value) const
double plaquette(const Field_G &)
calculates plaquette value.
double set_iP(Field_G &iP)
Setting conjugate momenta and returns kinetic part of Hamiltonian.
Bridge::VerboseLevel m_vl
RandomNumbers * m_rand
random number generator
std::vector< Action * > m_action
actions
double calcH_P(Field_G &iP)
virtual void invalidate_cache()=0
Base class of Integrator class family.
double langevin(Field_G &iP, Field_G &U)
ActionSet get_actions() const
int fetch_int(const string &key, int &value) const
Common parameter class: provides parameters as singleton.
virtual void evolve(const double step_size, Field_G &iP, Field_G &U)=0
double m_trajectory_length
void crucial(const char *format,...)
Langevin_Momentum * m_Langevin_P
lists of actions at respective integrator levels.
Base class of random number generators.
Integrator * m_integrator
MD integrator.
string get_string(const string &key) const
std::vector< Action * > ActionSet
static VerboseLevel set_verbose_level(const std::string &str)
HMC_General(const ActionList &action_list, std::vector< Director * > director, Integrator *integrator, RandomNumbers *rand)
constructor with action_list, directors, and random number generator
Langevin part of HMC for conjugate momentum to link variable.