Bridge++  Ver. 2.0.2
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 
42 class Action_F_Ratio_lex : public Action
43 {
44  public:
45  static const std::string class_name;
46 
47  private:
49 
51 
52  Fopr *m_fopr_prec; // preconditioner
53  Force *m_fopr_prec_force; // force of preconditioner
54  Fopr *m_fopr; // dynamical fermion
55  Force *m_fopr_force; // force of dynamical fermion
56  Field m_psf; // pseudofermion field
57  std::string m_label; // label of action
58 
62 
63  public:
65  Fopr *fopr_prec, Force *fopr_prec_force,
66  Fopr *fopr, Force *fopr_force,
67  Fprop *fprop_H_prec,
68  Fprop *fprop_MD, Fprop *fprop_H)
69  : m_vl(CommonParameters::Vlevel()),
70  m_fopr_prec(fopr_prec), m_fopr_prec_force(fopr_prec_force),
71  m_fopr(fopr), m_fopr_force(fopr_force),
72  m_fprop_H_prec(fprop_H_prec),
73  m_fprop_MD(fprop_MD), m_fprop_H(fprop_H)
74  {
76  }
77 
79  Fopr *fopr_prec, Force *fopr_prec_force,
80  Fopr *fopr, Force *fopr_force,
81  Fprop *fprop_H_prec,
82  Fprop *fprop_MD, Fprop *fprop_H,
83  const Parameters& params)
84  : m_vl(CommonParameters::Vlevel()),
85  m_fopr_prec(fopr_prec), m_fopr_prec_force(fopr_prec_force),
86  m_fopr(fopr), m_fopr_force(fopr_force),
87  m_fprop_H_prec(fprop_H_prec),
88  m_fprop_MD(fprop_MD), m_fprop_H(fprop_H)
89  {
90  set_parameters(params);
91  }
92 
94 
95  void set_parameters(const Parameters&);
96  void set_parameters();
97 
98  void get_parameters(Parameters&) const;
99 
100  void set_label(const std::string label)
101  {
102  m_label = label;
103  vout.detailed(m_vl, " label: %s\n", m_label.c_str());
104  }
105 
106  std::string get_label()
107  {
108  return m_label;
109  }
110 
111  void set_config(Field *U);
112 
113  double langevin(RandomNumbers *);
114  double calcH();
115 
116  void force(Field&);
117 };
118 #endif
bridgeIO.h
CommonParameters
Common parameter class: provides parameters as singleton.
Definition: commonParameters.h:42
AFopr
Definition: afopr.h:48
Action_F_Ratio_lex::langevin
double langevin(RandomNumbers *)
Langevis step.
Definition: action_F_Ratio_lex.cpp:56
Parameters
Class for parameters.
Definition: parameters.h:46
Action_F_Ratio_lex::m_fopr_prec_force
Force * m_fopr_prec_force
Definition: action_F_Ratio_lex.h:53
Action_F_Ratio_lex::set_config
void set_config(Field *U)
setting pointer to the gauge configuration.
Definition: action_F_Ratio_lex.cpp:43
Action_F_Ratio_lex::Action_F_Ratio_lex
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)
Definition: action_F_Ratio_lex.h:64
Bridge::BridgeIO::detailed
void detailed(const char *format,...)
Definition: bridgeIO.cpp:219
Action_F_Ratio_lex::~Action_F_Ratio_lex
~Action_F_Ratio_lex()
Definition: action_F_Ratio_lex.h:93
RandomNumbers
Base class of random number generators.
Definition: randomNumbers.h:43
Action_F_Ratio_lex::m_fopr_force
Force * m_fopr_force
Definition: action_F_Ratio_lex.h:55
Action_F_Ratio_lex::set_label
void set_label(const std::string label)
Definition: action_F_Ratio_lex.h:100
Action
Base class of HMC action class family.
Definition: action.h:36
action.h
Action_F_Ratio_lex::get_label
std::string get_label()
Definition: action_F_Ratio_lex.h:106
Action_F_Ratio_lex::set_parameters
void set_parameters()
Definition: action_F_Ratio_lex.cpp:36
Action_F_Ratio_lex::calcH
double calcH()
calculate Hamiltonian of this action term.
Definition: action_F_Ratio_lex.cpp:101
Action_F_Ratio_lex::force
void force(Field &)
returns force for molcular dynamical update of conjugate momenta.
Definition: action_F_Ratio_lex.cpp:137
Action_F_Ratio_lex::class_name
static const std::string class_name
Definition: action_F_Ratio_lex.h:45
Action_F_Ratio_lex::m_fopr
Fopr * m_fopr
Definition: action_F_Ratio_lex.h:54
Action_F_Ratio_lex::m_fprop_MD
Fprop * m_fprop_MD
Definition: action_F_Ratio_lex.h:60
Action_F_Ratio_lex::m_U
Field * m_U
Definition: action_F_Ratio_lex.h:50
Fprop
Base class for fermion propagator class family.
Definition: fprop.h:34
Action_F_Ratio_lex::Action_F_Ratio_lex
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, const Parameters &params)
Definition: action_F_Ratio_lex.h:78
Action_F_Ratio_lex::m_fopr_prec
Fopr * m_fopr_prec
Definition: action_F_Ratio_lex.h:52
force_F.h
Action_F_Ratio_lex::m_vl
Bridge::VerboseLevel m_vl
Definition: action_F_Ratio_lex.h:48
Action_F_Ratio_lex::m_label
std::string m_label
Definition: action_F_Ratio_lex.h:57
Action_F_Ratio_lex::m_psf
Field m_psf
Definition: action_F_Ratio_lex.h:56
Field
Container of Field-type object.
Definition: field.h:46
Bridge::VerboseLevel
VerboseLevel
Definition: bridgeIO.h:42
Action_F_Ratio_lex
HMC action for Hasenbusch preconditioned fermions.
Definition: action_F_Ratio_lex.h:42
Action_F_Ratio_lex::m_fprop_H_prec
Fprop * m_fprop_H_prec
Definition: action_F_Ratio_lex.h:59
fprop.h
Force
Base class of fermion force calculation.
Definition: force_F.h:31
Action_F_Ratio_lex::m_fprop_H
Fprop * m_fprop_H
Definition: action_F_Ratio_lex.h:61
Bridge::vout
BridgeIO vout
Definition: bridgeIO.cpp:512
Action_F_Ratio_lex::get_parameters
void get_parameters(Parameters &) const
Definition: action_F_Ratio_lex.cpp:29