Bridge++  Version 1.5.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
action_F_Standard_SF.h
Go to the documentation of this file.
1 
14 #ifndef ACTION_FSTANDARD_SF_INCLUDED
15 #define ACTION_FSTANDARD_SF_INCLUDED
16 
17 #include "Action/action.h"
18 
19 #include "Force/Fermion/force_F.h"
20 #include "Solver/solver.h"
21 
22 #include "Field/field_G_SF.h"
23 #include "Field/field_F_SF.h"
24 
25 #include "IO/bridgeIO.h"
26 using Bridge::vout;
27 
29 
55 {
56  public:
57  static const std::string class_name;
58 
59  private:
63  std::string m_label;
64 
66 
68 
72  int Svol;
74  int m_Nc2;
76  int m_Nd;
77 
78  // A function to set the pseudo fermion field to zero at the t=0 boundary.
79  // void set_boundary_zero(Field&);
80 
81  public:
82  Action_F_Standard_SF(Fopr *fopr, Force *fopr_force)
83  : Action(), m_fopr(fopr), m_fopr_force(fopr_force)
84  {
86  }
87 
89  : Action(), m_fopr(fopr.get()), m_fopr_force(fopr_force.get())
90  {
92  }
93 
95  {
96  delete m_solver;
97  }
98 
99  void set_parameters(const Parameters&);
100  void set_parameters();
101 
102  void set_label(const std::string label)
103  {
104  m_label = label;
105  vout.detailed(m_vl, " label: %s\n", m_label.c_str());
106  }
107 
108  std::string get_label()
109  {
110  return m_label;
111  }
112 
113  void set_config(Field *U)
114  {
115  m_U = U;
116  m_fopr->set_config(U);
118  }
119 
120  double langevin(RandomNumbers *);
121 
122  double calcH();
123 
124  void force(Field&);
125 };
126 #endif
BridgeIO vout
Definition: bridgeIO.cpp:503
void detailed(const char *format,...)
Definition: bridgeIO.cpp:216
Action_F_Standard_SF(unique_ptr< Fopr > &fopr, unique_ptr< Force > &fopr_force)
void force(Field &)
returns force for molcular dynamical update of conjugate momenta.
Communication library which wraps MPI.
Definition: communicator.h:47
virtual void set_config(Field *)=0
setting pointer to the gauge configuration.
static const std::string class_name
Container of Field-type object.
Definition: field.h:45
virtual void set_config(Field *)=0
Base class of fermion force calculation.
Definition: force_F.h:31
Class for parameters.
Definition: parameters.h:46
void set_config(Field *U)
setting pointer to the gauge configuration.
Base class of HMC action class family.
Definition: action.h:36
int Svol
A spatial volume in a node.
Action_F_Standard_SF(Fopr *fopr, Force *fopr_force)
Communicator * comm
Needed to know a node at the temporal boundary.
void set_label(const std::string label)
double calcH()
calculate Hamiltonian of this action term.
Base class for linear solver class family.
Definition: solver.h:36
Bridge::VerboseLevel m_vl
Definition: action.h:75
Base class of random number generators.
Definition: randomNumbers.h:43
double langevin(RandomNumbers *)
Langevis step.
Base class of fermion operator family.
Definition: fopr.h:46
int m_Nd
dimension of the spinor index
Standard fermion action with SF BC for HMC.
int m_Nc2
number of the doubled color elements