Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
action_F_Ratio.h
Go to the documentation of this file.
1 
14 #ifndef ACTION_F_RATIO_INCLUDED
15 #define ACTION_F_RATIO_INCLUDED
16 
17 #include "action.h"
18 #include "solver.h"
19 
20 #include "bridgeIO.h"
21 using Bridge::vout;
22 
24 
36 class Action_F_Ratio : public Action
37 {
38  public:
39  static const std::string class_name;
40 
41  private:
44 
45  Fopr *m_fopr_prec; // preconditioner
46  Force *m_fopr_prec_force; // force of preconditioner
47  Fopr *m_fopr; // dynamical fermion
48  Force *m_fopr_force; // force of dynamical fermion
49  Field m_psf; // pseudofermion field
50  std::string m_label; // label of action
52 
56 
58 
59  public:
60 
62  Fopr *fopr_prec, Force *fopr_prec_force,
63  Fopr *fopr, Force *fopr_force)
64  : Action(),
65  m_fopr_prec(fopr_prec), m_fopr_prec_force(fopr_prec_force),
66  m_fopr(fopr), m_fopr_force(fopr_force)
67  {
69  }
70 
72  {
73  delete m_solver_H_prec;
74  delete m_solver_MD;
75  delete m_solver_H;
76  }
77 
78  void set_parameters(const Parameters&);
79  void set_parameters();
80 
81  void set_label(std::string label)
82  {
83  m_label = label;
84  vout.detailed(m_vl, " label: %s\n", m_label.c_str());
85  }
86 
87  std::string get_label()
88  {
89  return m_label;
90  }
91 
92  void set_config(Field *U)
93  {
94  m_U = U;
95 
98 
99  m_fopr->set_config(U);
101  }
102 
104  {
105  m_status_linkv = 0;
106  }
107 
108  double langevin(RandomNumbers *);
109 
110  double calcH();
111 
112  const Field force();
113 };
114 #endif
Solver * m_solver_MD
BridgeIO vout
Definition: bridgeIO.cpp:207
void detailed(const char *format,...)
Definition: bridgeIO.cpp:50
void notify_linkv()
to be called when gauge configuration is updated.
double langevin(RandomNumbers *)
Langevis step.
virtual void set_config(Field *)=0
setting pointer to the gauge configuration.
Container of Field-type object.
Definition: field.h:37
virtual void set_config(Field *)=0
Base class of fermion force calculation.
Definition: force.h:34
Class for parameters.
Definition: parameters.h:40
static const std::string class_name
Base class of HMC action class family.
Definition: action.h:35
Force * m_fopr_prec_force
Solver * m_solver_H_prec
Action_F_Ratio(Fopr *fopr_prec, Force *fopr_prec_force, Fopr *fopr, Force *fopr_force)
void set_label(std::string label)
RandomNumbers * m_rand
std::string m_label
std::string get_label()
Base class for linear solver class family.
Definition: solver.h:37
HMC action for Hasenbusch preconditioned fermions.
Bridge::VerboseLevel m_vl
Definition: action.h:64
Base class of random number generators.
Definition: randomNumbers.h:40
const Field force()
returns force for molcular dynamical update of conjugate momenta.
Base class of fermion operator family.
Definition: fopr.h:39
Solver * m_solver_H
void set_config(Field *U)
setting pointer to the gauge configuration.
double calcH()
calculate Hamiltonian of this action term.
Force * m_fopr_force