Bridge++  Version 1.4.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
main.cpp
Go to the documentation of this file.
1 
16 
18 #include "Parameters/parameters.h"
20 
21 #include "Tools/timer.h"
22 
23 #ifdef USE_TESTMANAGER
24 #include "run_testmanager.h"
25 #endif
26 
27 #include "IO/bridgeIO.h"
28 using Bridge::vout;
29 
30 
31 const std::string filename_main_input = "main.yaml";
32 // const std::string filename_main_input = "stdin";
33 
34 //- prototype declarations
35 int run_test();
36 
37 
38 //====================================================================
39 int main(int argc, char *argv[])
40 {
41  // ### initial setup ###
43 
44 #ifdef USE_TESTMANAGER
45  preprocess_testmanager(argc, argv);
46 #endif
47 
48  Communicator::init(&argc, &argv);
49 
50  // #### banner ####
51  vout.general(vl, "Bridge++ %s\n\n", BRIDGE_VERSION);
52 
53  std::string filename_input = filename_main_input;
54  if (filename_input == "stdin") {
55  vout.general(vl, "input filename : ");
56  std::cin >> filename_input;
57  vout.general(vl, "%s\n", filename_input.c_str());
58  } else {
59  vout.general(vl, "input filename : %s\n", filename_input.c_str());
60  }
61  vout.general(vl, "\n");
62 
63  Parameters params_all = ParameterManager::read(filename_input);
64  Parameters params_main = params_all.lookup("Main");
65 
66  const std::vector<int> lattice_size = params_main.get_int_vector("lattice_size");
67  const std::vector<int> grid_size = params_main.get_int_vector("grid_size");
68  const int number_of_thread = params_main.get_int("number_of_thread");
69  const int number_of_color = params_main.get_int("number_of_color");
70  const std::string str_logfile = params_main.get_string("log_filename");
71  const std::string str_ildg_logfile = params_main.get_string("ildg_log_filename");
72  const std::string str_vlevel = params_main.get_string("verbose_level");
73 
74 
75  //- initializations
76  vl = vout.set_verbose_level(str_vlevel);
78 
79  if (str_logfile != "stdout") {
80  vout.init(str_logfile);
81  }
82 
83  if (str_ildg_logfile != "stdout") {
84  vout.ildg_init(str_ildg_logfile);
85  }
86 
87 
88  // CommonParameters::init(lattice_size, grid_size);
89  CommonParameters::init(lattice_size, grid_size, number_of_color);
91 
92  ThreadManager_OpenMP::init(number_of_thread);
93 
94 
95  //- print input parameters
96  vout.general(vl, "Main: input parameters\n");
97  vout.general(vl, " lattice_size = %s\n", Parameters::to_string(lattice_size).c_str());
98  vout.general(vl, " grid_size = %s\n", Parameters::to_string(grid_size).c_str());
99 
100  vout.general(vl, " number of thread = %d\n", number_of_thread);
101  vout.general(vl, " number of color = %d\n", number_of_color);
102  vout.general(vl, " logfile = %s\n", str_logfile.c_str());
103  vout.general(vl, " ildg_logfile = %s\n", str_ildg_logfile.c_str());
104  vout.general(vl, " vlevel = %s\n", str_vlevel.c_str());
105  vout.general(vl, "\n");
106 
107  //- input parameter check
108  int err = 0;
109  err += ParameterCheck::non_NULL(str_logfile);
110  err += ParameterCheck::non_NULL(str_ildg_logfile);
111 
112  if (err) {
113  vout.crucial(vl, "Error at main: input parameters have not been set.\n");
114  exit(EXIT_FAILURE);
115  }
116 
117 
118  //- timestamp (starting time)
119  unique_ptr<Timer> timer(new Timer("Main"));
120  timer->timestamp();
121  timer->start();
122 
123 #ifdef USE_TESTMANAGER
124  run_testmanager(argc, argv);
125 #else
126  run_test();
127 #endif
128 
129  //- timestamp (end time)
130  timer->report();
131  timer->timestamp();
132 
135 
136  return EXIT_SUCCESS;
137 }
138 
139 
140 //====================================================================
141 //============================================================END=====
BridgeIO vout
Definition: bridgeIO.cpp:495
#define BRIDGE_VERSION
Definition: configure.h:18
const std::string filename_main_input
Definition: main.cpp:31
static int init(int *pargc, char ***pargv)
initialize communicator
void general(const char *format,...)
Definition: bridgeIO.cpp:195
void ildg_init(const std::ostream &os)
Definition: bridgeIO.cpp:426
void init(const std::string &filename)
Definition: bridgeIO.cpp:51
int get_int(const string &key) const
Definition: parameters.cpp:87
Class for parameters.
Definition: parameters.h:46
static void init_Vlevel(Bridge::VerboseLevel vlevel)
initialization for default verbose level.
static int finalize()
finalize communicator
static void init(int Nthread)
setup: called in main only once.
int run_test()
Definition: run_test.cpp:19
Parameters lookup(const string &key) const
Definition: parameters.h:78
int run_testmanager(int argc, char **argv)
int preprocess_testmanager(int argc, char **argv)
static void finalize()
finalization.
int non_NULL(const std::string v)
Definition: checker.cpp:61
void start()
Definition: timer.cpp:44
static int setup(int ninstance=1)
setup communicator
void crucial(const char *format,...)
Definition: bridgeIO.cpp:178
static void read(const std::string &params_file, Parameters &params)
Bridge::VerboseLevel vl
Definition: checker.cpp:18
VerboseLevel
Definition: bridgeIO.h:42
static void timestamp()
Definition: timer.cpp:19
Definition: timer.h:31
string get_string(const string &key) const
Definition: parameters.cpp:116
int main(int argc, char *argv[])
Definition: main.cpp:39
vector< int > get_int_vector(const string &key) const
Definition: parameters.cpp:145
void report(const Bridge::VerboseLevel vl=Bridge::GENERAL)
Definition: timer.cpp:128
static VerboseLevel set_verbose_level(const std::string &str)
Definition: bridgeIO.cpp:131
static void init(const std::vector< int > &lattice_size, const std::vector< int > &grid_size)
initialization (Nc=3 is assumed).
static string to_string(const vector< T > &v)
Definition: parameters.h:137