Bridge++  Version 1.4.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
action_F_Ratio_lex.h
Go to the documentation of this file.
1 
14 #ifndef ACTION_F_RATIO_LEX_INCLUDED
15 #define ACTION_F_RATIO_LEX_INCLUDED
16 
17 #include "Action/action.h"
18 
19 #include "Force/Fermion/force_F.h"
21 
22 #include "IO/bridgeIO.h"
23 using Bridge::vout;
24 
26 
39 class Action_F_Ratio_lex : public Action
40 {
41  public:
42  static const std::string class_name;
43 
44  private:
46 
47  Fopr *m_fopr_prec; // preconditioner
48  Force *m_fopr_prec_force; // force of preconditioner
49  Fopr *m_fopr; // dynamical fermion
50  Force *m_fopr_force; // force of dynamical fermion
51  Field m_psf; // pseudofermion field
52  std::string m_label; // label of action
53 
57 
58  public:
60  Fopr *fopr_prec, Force *fopr_prec_force,
61  Fopr *fopr, Force *fopr_force,
62  Fprop *fprop_H_prec,
63  Fprop *fprop_MD, Fprop *fprop_H)
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  m_fprop_H_prec(fprop_H_prec),
68  m_fprop_MD(fprop_MD), m_fprop_H(fprop_H)
69  {
71  }
72 
74  unique_ptr<Fopr>& fopr_prec, unique_ptr<Force>& fopr_prec_force,
75  unique_ptr<Fopr>& fopr, unique_ptr<Force>& fopr_force,
76  unique_ptr<Fprop>& fprop_H_prec,
77  unique_ptr<Fprop>& fprop_MD, unique_ptr<Fprop>& fprop_H)
78  : Action(),
79  m_fopr_prec(fopr_prec.get()), m_fopr_prec_force(fopr_prec_force.get()),
80  m_fopr(fopr.get()), m_fopr_force(fopr_force.get()),
81  m_fprop_H_prec(fprop_H_prec.get()),
82  m_fprop_MD(fprop_MD.get()), m_fprop_H(fprop_H.get())
83  {
85  }
86 
88 
89  void set_parameters(const Parameters&);
90  void set_parameters();
91 
92  void set_label(std::string label)
93  {
94  m_label = label;
95  vout.detailed(m_vl, " label: %s\n", m_label.c_str());
96  }
97 
98  std::string get_label()
99  {
100  return m_label;
101  }
102 
103  void set_config(Field *U);
104 
105  double langevin(RandomNumbers *);
106  double calcH();
107 
108  void force(Field&);
109 };
110 #endif
BridgeIO vout
Definition: bridgeIO.cpp:495
void set_label(std::string label)
void detailed(const char *format,...)
Definition: bridgeIO.cpp:212
std::string get_label()
void set_config(Field *U)
setting pointer to the gauge configuration.
Base class for fermion propagator class family.
Definition: fprop.h:30
Container of Field-type object.
Definition: field.h:39
Base class of fermion force calculation.
Definition: force_F.h:31
Class for parameters.
Definition: parameters.h:46
Base class of HMC action class family.
Definition: action.h:36
double langevin(RandomNumbers *)
Langevis step.
double calcH()
calculate Hamiltonian of this action term.
void force(Field &)
returns force for molcular dynamical update of conjugate momenta.
Action_F_Ratio_lex(Fopr *fopr_prec, Force *fopr_prec_force, Fopr *fopr, Force *fopr_force, Fprop *fprop_H_prec, Fprop *fprop_MD, Fprop *fprop_H)
Bridge::VerboseLevel m_vl
Definition: action.h:75
Base class of random number generators.
Definition: randomNumbers.h:36
Action_F_Ratio_lex(unique_ptr< Fopr > &fopr_prec, unique_ptr< Force > &fopr_prec_force, unique_ptr< Fopr > &fopr, unique_ptr< Force > &fopr_force, unique_ptr< Fprop > &fprop_H_prec, unique_ptr< Fprop > &fprop_MD, unique_ptr< Fprop > &fprop_H)
static const std::string class_name
HMC action for Hasenbusch preconditioned fermions.
Base class of fermion operator family.
Definition: fopr.h:47