29int main(
int argc,
char* argv[]) {
39 gflags::SetUsageMessage(
"Kernel Integrated Dynamics Simulator");
40 gflags::ParseCommandLineFlags(&argc, &argv,
true);
44 auto&& j = *(PM->pjson());
46 j[
"directory"] = FLAGS_d;
47 j[
"timing"] = FLAGS_timing;
48 j[
"handler"] = FLAGS_handler;
49 j[
"backup_time"] = FLAGS_backup_time;
50 if (FLAGS_load !=
"") j[
"load"] = FLAGS_load;
51 if (FLAGS_dump !=
"") j[
"dump"] = FLAGS_dump;
54 if (fs::exists(FLAGS_d) && FLAGS_w ==
false) {
55 throw std::runtime_error(
56 utils::concat(
"Working directory = [", FLAGS_d,
"] already exists. Please specify -w to force start.\n"));
59 fs::create_directory(FLAGS_d);
60 }
catch (std::runtime_error& e) {
61 throw std::runtime_error(
"create_directory failed");
62 std::cout <<
"some error!!!\n";
65 if (j.count(
"model_file") > 0 && j.count(
"model_id") > 0) {
67 j[
"model_param"] = (*(TEMP.
pjson()))[j[
"model_id"].as_string()];
69 if (j.count(
"solver_file") > 0 && j.count(
"solver_id") > 0) {
71 j[
"solver_param"] = (*(TEMP.
pjson()))[j[
"solver_id"].as_string()];
75 google::InitGoogleLogging(argv[0]);
76 google::SetStderrLogging(google::GLOG_INFO);
77 google::SetLogDestination(google::GLOG_INFO,
utils::concat(
"./", FLAGS_d,
"/").c_str());
78 google::SetLogFilenameExtension(
".log");
82 FLAGS_logtostderr = 0;
83 FLAGS_alsologtostderr = 0;
85 FLAGS_max_log_size = 5;
86 FLAGS_stop_logging_if_full_disk =
true;
89 std::string model_name = PM->get_string(
"model",
LOC());
90 std::string solver_name = PM->get_string(
"solver",
LOC());
91 std::string handler_name = PM->get_string(
"handler",
LOC(),
"single");
97 gflags::ShutDownCommandLineFlags();
98 google::ShutdownGoogleLogging();
int main(int argc, char *argv[])
DEFINE_string(p, "param.json", "paramemter inputs")
DEFINE_double(backup_time, -1.0, "Specifies the timestep for backup (/1h)")
DEFINE_bool(w, false, "Enables rewritting the output")