Bridge++  Version 1.5.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
integrator_UpdateU.cpp
Go to the documentation of this file.
1 
14 #include "integrator_UpdateU.h"
15 
16 const std::string Integrator_UpdateU::class_name = "Integrator_UpdateU";
17 
18 //====================================================================
20 {
21  const string str_vlevel = params.get_string("verbose_level");
22 
23  m_vl = vout.set_verbose_level(str_vlevel);
24 
25  //- fetch and check input parameters
26  int Nprec;
27 
28  int err = 0;
29  err += params.fetch_int("order_of_exp_iP", Nprec);
30 
31  if (err) {
32  vout.crucial(m_vl, "Error at %s: input parameter not found.\n", class_name.c_str());
33  exit(EXIT_FAILURE);
34  }
35 
36  set_parameters(Nprec);
37 }
38 
39 
40 //====================================================================
42 {
43  //- print input parameters
44  vout.general(m_vl, "%s:\n", class_name.c_str());
45  vout.general(m_vl, " Nprec = %d\n", Nprec);
46 
47  //- range check
48  int err = 0;
49  err += ParameterCheck::non_zero(Nprec);
50 
51  if (err) {
52  vout.crucial(m_vl, "Error at %s: parameter range check failed.\n", class_name.c_str());
53  exit(EXIT_FAILURE);
54  }
55 
56  //- store values
57  m_Nprec = Nprec;
58 }
59 
60 
61 //====================================================================
63 {
64  m_Nprec = Nprec;
65 }
66 
67 
68 //====================================================================
69 void Integrator_UpdateU::evolve(const double step_size, Field_G& iP, Field_G& U)
70 {
71  //- alias
72  Field_G& W = U;
73 
74  mult_exp_Field_G(W, step_size, iP, U, m_Nprec);
75 
76  notify_update();
77 }
78 
79 
80 //====================================================================
82 {
83  for (size_t i = 0, n = m_integs.size(); i < n; ++i) {
84  m_integs[i]->invalidate_cache();
85  }
86  for (size_t i = 0, n = m_director.size(); i < n; ++i) {
87  m_director[i]->notify_linkv();
88  }
89 }
90 
91 
92 //====================================================================
93 //============================================================END=====
BridgeIO vout
Definition: bridgeIO.cpp:503
void set_parameters(const Parameters &params)
void general(const char *format,...)
Definition: bridgeIO.cpp:197
Class for parameters.
Definition: parameters.h:46
static const std::string class_name
SU(N) gauge field.
Definition: field_G.h:38
int fetch_int(const string &key, int &value) const
Definition: parameters.cpp:346
void set_parameter_Nprec(const int Nprec)
Bridge::VerboseLevel m_vl
Definition: integrator.h:58
void evolve(const double step_size, Field_G &iP, Field_G &U)
void crucial(const char *format,...)
Definition: bridgeIO.cpp:178
void mult_exp_Field_G(Field_G &W, const double alpha, const Field_G &iP, const Field_G &U, const int Nprec)
int non_zero(const double v)
std::vector< Integrator * > m_integs
std::vector< Director * > m_director
string get_string(const string &key) const
Definition: parameters.cpp:221
static VerboseLevel set_verbose_level(const std::string &str)
Definition: bridgeIO.cpp:131