Bridge++  Version 1.4.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
action_F_Rational.cpp
Go to the documentation of this file.
1 
14 #include "action_F_Rational.h"
15 
16 
17 
18 const std::string Action_F_Rational::class_name = "Action_F_Rational";
19 
20 //====================================================================
22 {
23  const string str_vlevel = params.get_string("verbose_level");
24 
25  m_vl = vout.set_verbose_level(str_vlevel);
26 }
27 
28 
29 //====================================================================
31 {
32  int Nc = CommonParameters::Nc();
33  int Nvol = CommonParameters::Nvol();
34  int Ndim = CommonParameters::Ndim();
35  int NinG = 2 * Nc * Nc;
36 }
37 
38 
39 //====================================================================
41 {
42  int NinF = m_fopr_langev->field_nin();
43  int NvolF = m_fopr_langev->field_nvol();
44  int NexF = m_fopr_langev->field_nex();
45  int size_psf = NinF * NvolF * NexF * CommonParameters::NPE();
46 
47  m_psf.reset(NinF, NvolF, NexF);
48 
49  vout.general(m_vl, " %s: %s\n", class_name.c_str(), m_label.c_str());
50 
51  Field xi(NinF, NvolF, NexF);
52  rand->gauss_lex_global(xi);
53 
55  m_fopr_langev->mult(m_psf, xi);
56 
57  double xi2 = xi.norm();
58  double H_psf = xi2 * xi2;
59 
60  vout.general(m_vl, " H_Frational = %18.8f\n", H_psf);
61  vout.general(m_vl, " H_F/dof = %18.8f\n", H_psf / size_psf);
62 
63  return H_psf;
64 }
65 
66 
67 //====================================================================
69 {
70  int NinF = m_fopr_H->field_nin();
71  int NvolF = m_fopr_H->field_nvol();
72  int NexF = m_fopr_H->field_nex();
73  int size_psf = NinF * NvolF * NexF * CommonParameters::NPE();
74 
75  Field v1(NinF, NvolF, NexF);
76 
77  vout.general(m_vl, " %s: %s\n", class_name.c_str(), m_label.c_str());
78 
80  m_fopr_H->mult(v1, m_psf);
81 
82  double H_psf = dot(v1, m_psf);
83 
84  vout.general(m_vl, " H_Frational = %18.8f\n", H_psf);
85  vout.general(m_vl, " H_F/dof = %18.8f\n", H_psf / size_psf);
86 
87  return H_psf;
88 }
89 
90 
91 //====================================================================
93 {
94  int Nin = m_U->nin();
95  int Nvol = m_U->nvol();
96  int Nex = m_U->nex();
97 
98  assert(force.nin() == Nin);
99  assert(force.nvol() == Nvol);
100  assert(force.nex() == Nex);
101 
102  vout.general(m_vl, " %s: %s\n", class_name.c_str(), m_label.c_str());
103 
106 
107  double Fave, Fmax, Fdev;
108  force.stat(Fave, Fmax, Fdev);
109  vout.general(m_vl, " Frational_ave = %12.6f Frational_max = %12.6f Frational_dev = %12.6f\n",
110  Fave, Fmax, Fdev);
111 }
112 
113 
114 //====================================================================
115 //============================================================END=====
BridgeIO vout
Definition: bridgeIO.cpp:495
void force(Field &)
returns the force for updating conjugate momentum.
static const std::string class_name
double dot(const Field &y, const Field &x)
Definition: field.cpp:46
void general(const char *format,...)
Definition: bridgeIO.cpp:195
virtual void set_config(Field *)=0
setting pointer to the gauge configuration.
Container of Field-type object.
Definition: field.h:39
virtual void set_config(Field *)=0
int nvol() const
Definition: field.h:116
Class for parameters.
Definition: parameters.h:46
double calcH()
calculation of Hamiltonian.
virtual void gauss_lex_global(Field &)
gaussian random number defined on global lattice.
virtual int field_nin()=0
returns the on-site d.o.f. for which the fermion operator is defined.
int nin() const
Definition: field.h:115
void reset(const int Nin, const int Nvol, const int Nex, const element_type cmpl=COMPLEX)
Definition: field.h:84
double norm() const
Definition: field.h:211
virtual int field_nex()=0
returns the external d.o.f. for which the fermion operator is defined.
int nex() const
Definition: field.h:117
virtual void force_core(Field &, const Field &)
Definition: force_F.cpp:18
double langevin(RandomNumbers *)
Langevin step called at the beginning of HMC.
void set_parameters(const Parameters &params)
Bridge::VerboseLevel m_vl
Definition: action.h:75
Base class of random number generators.
Definition: randomNumbers.h:36
void setup()
creating instances. called from set_parameters().
virtual void mult(Field &, const Field &)=0
multiplies fermion operator to a given field (2nd argument)
void stat(double &Fave, double &Fmax, double &Fdev) const
determines the statistics of the field. average, maximum value, and deviation is determined over glob...
Definition: field.cpp:516
string get_string(const string &key) const
Definition: parameters.cpp:116
virtual int field_nvol()=0
returns the volume for which the fermion operator is defined.
static VerboseLevel set_verbose_level(const std::string &str)
Definition: bridgeIO.cpp:131
static int NPE()