16 #ifdef USE_PARAMETERS_FACTORY
33 #ifdef USE_PARAMETERS_FACTORY
48 const string str_vlevel = params.
get_string(
"verbose_level");
54 int Nmdc, Nprec, Mtpl_test;
58 err += params.
fetch_int(
"number_of_steps", Nmdc);
59 err += params.
fetch_int(
"order_of_exp_iP", Nprec);
60 err += params.
fetch_int(
"Metropolis_test", Mtpl_test);
102 for (
int i = 0; i <
m_action.size(); ++i) {
140 double diff_H = H_tot1 - H_tot0;
141 double Arprob = exp(-diff_H);
171 int NcA = Nc * Nc - 1;
173 int size_iP = NcA * Lvol * Ndim;
177 for (
int i = 0; i <
m_action.size(); ++i) {
192 double H_actions = 0.0;
193 for (
int i = 0; i <
m_action.size(); ++i) {
198 double H_tot = H_iP + H_actions;
213 int NcA = Nc * Nc - 1;
215 int size_iP = NcA * Lvol * Nex;
227 double H_actions = 0.0;
228 for (
int i = 0; i <
m_action.size(); ++i) {
233 double H_tot = H_iP + H_actions;
242 double hn = iP.
norm();
243 double H_iP = 0.5 * hn * hn;
265 for (
int imdc = 1; imdc <
m_Nmdc + 1; imdc++) {
287 Field force(Nin, Nvol, Nex);
291 Field force1(Nin, Nvol, Nex);
293 for (
int i = 0; i <
m_action.size(); ++i) {
295 force += estep * force1;
312 for (
int ex = 0; ex < Nex; ++ex) {
313 for (
int site = 0; site < Nvol; ++site) {
314 u0 = U.
mat(site, ex);
315 u1 = U.
mat(site, ex);
316 h1 = iP.
mat(site, ex);
318 for (
int iprec = 0; iprec <
m_Nprec; ++iprec) {
319 double exf = estep / (m_Nprec - iprec);
331 for (
int i = 0; i <
m_action.size(); ++i) {
void set_parameters(const Parameters ¶ms)
void Register_string(const string &, const string &)
void general(const char *format,...)
void Register_int(const string &, const int)
Container of Field-type object.
static const std::string class_name
std::valarray< Director * > m_director
double set_iP(Field_G &iP)
Setting conjugate momenta and returns kinetic part of Hamiltonian.
double plaquette(const Field_G &)
calculates plaquette value.
Langevin_Momentum * m_Langevin_P
void update_P(double estep, Field_G &iP, Field_G &U)
Bridge::VerboseLevel m_vl
Parameters_HMC_Leapfrog()
void integrate(Field_G &iP, Field_G &U)
void update_U(double estep, Field_G &iP, Field_G &U)
double langevin(Field_G &iP, Field_G &U)
double calcH_P(Field_G &iP)
void crucial(const char *format,...)
std::valarray< Action * > m_action
static bool Register(const std::string &realm, const creator_callback &cb)
void Register_double(const string &, const double)
int fetch_double(const string &key, double &val) const
string get_string(const string &key) const
void set_mat(const int site, const int mn, const Mat_SU_N &U)
Mat_SU_N mat(const int site, const int mn=0) const
int fetch_int(const string &key, int &val) const
double calc_Hamiltonian(Field_G &iP, Field_G &U)
static VerboseLevel set_verbose_level(const std::string &str)