Bridge++  Ver.2.1.3
force_F_Smeared.cpp
Go to the documentation of this file.
1 
12 
13 const std::string Force_F_Smeared::class_name = "Force_F_Smeared";
14 
15 //====================================================================
16 void Force_F_Smeared::init(const Parameters& params)
17 {
19 
20  std::string vlevel;
21  if (!params.fetch_string("verbose_level", vlevel)) {
22  m_vl = vout.set_verbose_level(vlevel);
23  } else {
25  }
26 
27  vout.general(m_vl, "%s: construction\n", class_name.c_str());
29 
30  set_parameters(params);
31 
32  const int Nvol = CommonParameters::Nvol();
33  const int Ndim = CommonParameters::Ndim();
34 
35  m_force2 = new Field_G(Nvol, Ndim);
36  m_force1 = new Field_G(Nvol, Ndim);
37 
39  vout.general(m_vl, "%s: construction finished.\n",
40  class_name.c_str());
41 
42 }
43 
44 
45 //====================================================================
47 {
49 
51 
52  vout.general(m_vl, "%s: construction\n", class_name.c_str());
54 
55  const int Nvol = CommonParameters::Nvol();
56  const int Ndim = CommonParameters::Ndim();
57 
58  m_force2 = new Field_G(Nvol, Ndim);
59  m_force1 = new Field_G(Nvol, Ndim);
60 
62  vout.general(m_vl, "%s: construction finished.\n",
63  class_name.c_str());
64 
65 }
66 
67 
68 //====================================================================
70 {
71  delete m_force2;
72  delete m_force1;
73 }
74 
75 
76 //====================================================================
78 {
79  std::string vlevel;
80  if (!params.fetch_string("verbose_level", vlevel)) {
81  m_vl = vout.set_verbose_level(vlevel);
82  }
83 }
84 
85 
86 //====================================================================
88 {
89  params.set_string("verbose_level", vout.get_verbose_level(m_vl));
90 }
91 
92 
93 //====================================================================
95 {
96 #pragma omp barrier
97 
98  int ith = ThreadManager::get_thread_id();
99  if (ith == 0) m_U = (Field_G *)U;
100 #pragma omp barrier
101 
104 }
105 
106 //====================================================================
107 void Force_F_Smeared::force_udiv(Field& force_, const Field& eta)
108 {
109 #pragma omp barrier
110 
111  const int Nsmear = m_director_smear->get_Nsmear();
112 
113  if (Nsmear == 0) {
114  m_force->force_udiv(*m_force2, eta);
115  } else {
117 
118  m_force->set_config(Uptr);
119  m_force->force_udiv(*m_force2, eta);
120 
122  }
123 
124  copy(force_, *m_force2);
125 #pragma omp barrier
126 }
127 
128 
129 //====================================================================
131  const Field& zeta, const Field& eta)
132 {
133 #pragma omp barrier
134 
135  const int Nsmear = m_director_smear->get_Nsmear();
136 
137  if (Nsmear == 0) {
138  m_force->force_udiv1(*m_force2, zeta, eta);
139  } else {
141 
142  m_force->set_config(Uptr);
143  m_force->force_udiv1(*m_force2, zeta, eta);
144 
146  }
147 
148  copy(force_, *m_force2);
149 #pragma omp barrier
150 
151 }
152 
153 
154 //====================================================================
156 {
157 #pragma omp barrier
158 
159  const int Nsmear = m_director_smear->get_Nsmear();
160 
161  copy(*m_force1, force);
162 #pragma omp barrier
163 
164  for (int ismear = Nsmear - 1; ismear >= 0; --ismear) {
165  Field_G *Uptr = m_director_smear->get_config(ismear);
166 
167  m_force_smear->force_udiv(force, *m_force1, *Uptr);
168 
169  if (ismear > 0) copy(*m_force1, force); // ftmp = force;
170 #pragma omp barrier
171  }
172 }
173 
174 
175 //============================================================END=====
Parameters::set_string
void set_string(const string &key, const string &value)
Definition: parameters.cpp:39
Force_F_Smeared::set_config
void set_config(Field *U)
sets verbose level.
Definition: force_F_Smeared.cpp:94
CommonParameters::Ndim
static int Ndim()
Definition: commonParameters.h:117
AForce_F::force_udiv
virtual void force_udiv(AFIELD &, const AFIELD &)
Definition: aforce_F.h:93
Parameters
Class for parameters.
Definition: parameters.h:46
Force_F_Smeared::get_parameters
void get_parameters(Parameters &) const
Definition: force_F_Smeared.cpp:87
Bridge::BridgeIO::decrease_indent
void decrease_indent()
Definition: bridgeIO.cpp:518
Force_F_Smeared::m_force2
Field_G * m_force2
Definition: force_F_Smeared.h:46
Bridge::BridgeIO::increase_indent
void increase_indent()
Definition: bridgeIO.cpp:508
CommonParameters::Nvol
static int Nvol()
Definition: commonParameters.h:109
Force_F_Smeared::set_parameters
void set_parameters(const Parameters &)
sets parameters by a Parameter object: to be implemented in a subclass.
Definition: force_F_Smeared.cpp:77
force_F_Smeared.h
copy
void copy(Field &y, const Field &x)
copy(y, x): y = x
Definition: field.cpp:213
Force_F_Smeared::tidyup
void tidyup()
finalizer.
Definition: force_F_Smeared.cpp:69
Force_F_Smeared::mult_jacobian
void mult_jacobian(Field_G &force)
Definition: force_F_Smeared.cpp:155
Force_F_Smeared::class_name
static const std::string class_name
Definition: force_F_Smeared.h:37
Force_F_Smeared::m_force_smear
ForceSmear * m_force_smear
Definition: force_F_Smeared.h:43
AForceSmear::force_udiv
virtual void force_udiv(Field_G &, const Field_G &, const Field_G &)
Definition: aforceSmear.h:51
threadManager.h
Force_F_Smeared::force_udiv
void force_udiv(Field &force, const Field &eta)
Definition: force_F_Smeared.cpp:107
Force_F_Smeared::force_udiv1
void force_udiv1(Field &force, const Field &zeta, const Field &eta)
Definition: force_F_Smeared.cpp:130
Force_F_Smeared::m_director_smear
Director_Smear * m_director_smear
Definition: force_F_Smeared.h:44
AForce_F::set_config
virtual void set_config(Field *)=0
sets verbose level.
Force_F_Smeared::init
void init()
initializer.
Definition: force_F_Smeared.cpp:46
CommonParameters::Vlevel
static Bridge::VerboseLevel Vlevel()
Definition: commonParameters.h:122
AForce_F< Field >::m_U
Field_G * m_U
Gauge configuration.
Definition: aforce_F.h:42
Bridge::BridgeIO::set_verbose_level
static VerboseLevel set_verbose_level(const std::string &str)
Definition: bridgeIO.cpp:195
Force_F_Smeared::m_force1
Field_G * m_force1
Definition: force_F_Smeared.h:47
Director_Smear::get_Nsmear
int get_Nsmear()
get number of applied smearing operation
Definition: director_Smear.h:64
Director_Smear::get_config
Field_G * get_config()
Definition: director_Smear.cpp:144
Force_F_Smeared::m_vl
Bridge::VerboseLevel m_vl
Definition: force_F_Smeared.h:40
Parameters::fetch_string
int fetch_string(const string &key, string &value) const
Definition: parameters.cpp:378
Field
Container of Field-type object.
Definition: field.h:46
ThreadManager::get_thread_id
static int get_thread_id()
returns thread id.
Definition: threadManager.cpp:253
Director_Smear::set_config
void set_config(Field *U)
set pointer to original thin link variable
Definition: director_Smear.cpp:122
Field_G
SU(N) gauge field.
Definition: field_G.h:38
Force_F_Smeared::m_force
Force * m_force
Definition: force_F_Smeared.h:42
Bridge::BridgeIO::general
void general(const char *format,...)
Definition: bridgeIO.cpp:262
ThreadManager::assert_single_thread
static void assert_single_thread(const std::string &class_name)
assert currently running on single thread.
Definition: threadManager.cpp:372
AForce_F::force_udiv1
virtual void force_udiv1(AFIELD &, const AFIELD &, const AFIELD &)
Definition: aforce_F.h:96
Bridge::vout
BridgeIO vout
Definition: bridgeIO.cpp:572
Bridge::BridgeIO::get_verbose_level
static std::string get_verbose_level(const VerboseLevel vl)
Definition: bridgeIO.cpp:216