Bridge++  Version 1.4.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 
17 
18 const std::string Integrator_UpdateU::class_name = "Integrator_UpdateU";
19 
20 //====================================================================
22 {
23  const string str_vlevel = params.get_string("verbose_level");
24 
25  m_vl = vout.set_verbose_level(str_vlevel);
26 
27  //- fetch and check input parameters
28  int Nprec;
29 
30  int err = 0;
31  err += params.fetch_int("order_of_exp_iP", Nprec);
32 
33  if (err) {
34  vout.crucial(m_vl, "Error at %s: input parameter not found.\n", class_name.c_str());
35  exit(EXIT_FAILURE);
36  }
37 
38  set_parameters(Nprec);
39 }
40 
41 
42 //====================================================================
44 {
45  //- print input parameters
46  vout.general(m_vl, "%s:\n", class_name.c_str());
47  vout.general(m_vl, " Nprec = %d\n", Nprec);
48 
49  //- range check
50  int err = 0;
51  err += ParameterCheck::non_zero(Nprec);
52 
53  if (err) {
54  vout.crucial(m_vl, "Error at %s: parameter range check failed.\n", class_name.c_str());
55  exit(EXIT_FAILURE);
56  }
57 
58  //- store values
59  m_Nprec = Nprec;
60 }
61 
62 
63 //====================================================================
65 {
66  m_Nprec = Nprec;
67 }
68 
69 
70 //====================================================================
71 void Integrator_UpdateU::evolve(const double step_size, Field_G& iP, Field_G& U)
72 {
73  //- alias
74  Field_G& W = U;
75 
76  mult_exp_Field_G(W, step_size, iP, U, m_Nprec);
77 
78  notify_update();
79 }
80 
81 
82 //====================================================================
84 {
85  for (size_t i = 0, n = m_integs.size(); i < n; ++i) {
86  m_integs[i]->invalidate_cache();
87  }
88  for (size_t i = 0, n = m_director.size(); i < n; ++i) {
89  m_director[i]->notify_linkv();
90  }
91 }
92 
93 
94 //====================================================================
95 //============================================================END=====
BridgeIO vout
Definition: bridgeIO.cpp:495
void set_parameters(const Parameters &params)
void general(const char *format,...)
Definition: bridgeIO.cpp:195
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:230
void set_parameter_Nprec(const int Nprec)
Bridge::VerboseLevel m_vl
Definition: integrator.h:60
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)
Definition: checker.cpp:31
std::vector< Integrator * > m_integs
std::vector< Director * > m_director
string get_string(const string &key) const
Definition: parameters.cpp:116
static VerboseLevel set_verbose_level(const std::string &str)
Definition: bridgeIO.cpp:131