Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
test_Gauge_Plaquette.cpp
Go to the documentation of this file.
1 
14 #include "parameterManager_YAML.h"
15 
16 #include "bridgeIO.h"
17 using Bridge::vout;
18 
19 #include "gaugeConfig.h"
20 #include "staples.h"
21 
22 #ifdef USE_TEST
23 #include "test.h"
24 #endif
25 
26 #ifdef USE_TESTMANAGER_AUTOREGISTER
27 #include "testManager.h"
28 #endif
29 
30 //====================================================================
32 
39 namespace Test_Gauge {
40  //- test-private parameters
41  namespace {
42  const std::string filename_input = "test_Gauge.yaml";
43  const std::string filename_output = "stdout";
44 
45  class Parameters_Test_Gauge : public Parameters {
46  public:
47  Parameters_Test_Gauge()
48  {
49  Register_string("gauge_config_type_input", "NULL");
50  Register_string("config_filename_input", "NULL");
51 
52  Register_string("verbose_level", "NULL");
53 
54  Register_double("expected_result", 0.0);
55  }
56  };
57  }
58 
59  //- prototype declaration
60  int plaquette(void);
61 
62 #ifdef USE_TESTMANAGER_AUTOREGISTER
63  namespace {
64  static const bool is_registered = TestManager::RegisterTest(
65  "Gauge.Plaquette",
66  plaquette
67  );
68  }
69 #endif
70 
71  //====================================================================
72  int plaquette(void)
73  {
74  // ##### parameter setup #####
75  int Nvol = CommonParameters::Nvol();
76  int Ndim = CommonParameters::Ndim();
77 
78  Parameters_Test_Gauge params_test;
79 
80  Parameters params_all;
81 
82  params_all.Register_Parameters("Test_Gauge", &params_test);
83 
84  ParameterManager_YAML params_manager;
85  params_manager.read_params(filename_input, &params_all);
86 
87  const string str_gconf_read = params_test.get_string("gauge_config_type_input");
88  const string readfile = params_test.get_string("config_filename_input");
89  const string str_vlevel = params_test.get_string("verbose_level");
90 #ifdef USE_TEST
91  const double expected_result = params_test.get_double("expected_result");
92 #endif
93 
95 
96  //- print input parameters
97  vout.general(vl, " gconf_read = %s\n", str_gconf_read.c_str());
98  vout.general(vl, " readfile = %s\n", readfile.c_str());
99  vout.general(vl, " vlevel = %s\n", str_vlevel.c_str());
100  vout.general(vl, "\n");
101 
102  //- input parameter check
103  int err = 0;
104  err += ParameterCheck::non_NULL(str_gconf_read);
105  err += ParameterCheck::non_NULL(readfile);
106 
107  if (err) {
108  vout.crucial(vl, "Test_Gauge: Input parameters have not been set.\n");
109  abort();
110  }
111 
112 
113  // #### object setup #####
114  Field_G *U = new Field_G(Nvol, Ndim);
115  GaugeConfig *gconf_read = new GaugeConfig(str_gconf_read);
116  gconf_read->read_file((Field *)U, readfile);
117  // gconf_read->set_cold((Field*)U);
118 
119  Staples *staple = new Staples;
120 
121 
122  // #### Execution main part ####
123  double result = staple->plaquette(*U);
124  vout.general(vl, "plaq = %.8f\n", result);
125 
126 
127  // #### tydy up ####
128  delete U;
129  delete gconf_read;
130 
131  delete staple; // added by s.motoki[12/06/05].
132 
133 
134 #ifdef USE_TEST
135  return Test::verify(expected_result, result);
136 
137 #else
138  return EXIT_SUCCESS;
139 #endif
140  }
141 } // namespace Test_Gauge