From ff9c02f0535a57d0659d314ac058d180b55e246f Mon Sep 17 00:00:00 2001 From: Jiancheng Chen <2742581175@qq.com> Date: Thu, 18 Aug 2022 21:08:36 +0800 Subject: [PATCH] improved error messages in pair and input.cpp --- src/domain.cpp | 2 +- src/input.cpp | 46 +++++++++++++++++++++++----------------------- src/lattice.cpp | 2 +- src/neighbor.cpp | 2 +- src/pair.cpp | 24 ++++++++++++------------ 5 files changed, 38 insertions(+), 38 deletions(-) diff --git a/src/domain.cpp b/src/domain.cpp index 7d60c20a24..d3d6985f99 100644 --- a/src/domain.cpp +++ b/src/domain.cpp @@ -1856,7 +1856,7 @@ const std::vector Domain::get_region_list() void Domain::set_boundary(int narg, char **arg, int flag) { - if (narg != 3) error->all(FLERR,"Illegal boundary command: expected 3 argument but found {}", narg); + if (narg != 3) error->all(FLERR,"Illegal boundary command: expected 3 arguments but found {}", narg); char c; for (int idim = 0; idim < 3; idim++) diff --git a/src/input.cpp b/src/input.cpp index bb84a86e2c..f11cb5177b 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -860,7 +860,7 @@ int Input::execute_command() void Input::clear() { - if (narg > 0) error->all(FLERR,"Illegal clear command"); + if (narg > 0) error->all(FLERR,"Illegal clear command: unexpected arguments but found {}", narg); lmp->destroy(); lmp->create(); lmp->post_create(); @@ -870,7 +870,7 @@ void Input::clear() void Input::echo() { - if (narg != 1) error->all(FLERR,"Illegal echo command"); + if (narg != 1) error->all(FLERR,"Illegal echo command: expected 1 argument but found {}", narg); if (strcmp(arg[0],"none") == 0) { echo_screen = 0; @@ -884,14 +884,14 @@ void Input::echo() } else if (strcmp(arg[0],"both") == 0) { echo_screen = 1; echo_log = 1; - } else error->all(FLERR,"Illegal echo command"); + } else error->all(FLERR,"Unknown echo keyword: {}", arg[0]); } /* ---------------------------------------------------------------------- */ void Input::ifthenelse() { - if (narg < 3) error->all(FLERR,"Illegal if command"); + if (narg < 3) utils::missing_cmd_args(FLERR, "if", error); // substitute for variables in Boolean expression for "if" // in case expression was enclosed in quotes @@ -908,7 +908,7 @@ void Input::ifthenelse() // bound "then" commands - if (strcmp(arg[1],"then") != 0) error->all(FLERR,"Illegal if command"); + if (strcmp(arg[1],"then") != 0) error->all(FLERR,"Illegal if command: expected \"then\" but found \"{}\"", arg[1]); int first = 2; int iarg = first; @@ -923,13 +923,13 @@ void Input::ifthenelse() if (btest != 0.0) { int ncommands = last-first + 1; - if (ncommands <= 0) error->all(FLERR,"Illegal if command"); + if (ncommands <= 0) utils::missing_cmd_args(FLERR, "if then", error); auto commands = new char*[ncommands]; ncommands = 0; for (int i = first; i <= last; i++) { n = strlen(arg[i]) + 1; - if (n == 1) error->all(FLERR,"Illegal if command"); + if (n == 1) error->all(FLERR,"Illegal if then command: execute command is empty"); commands[ncommands] = new char[n]; strcpy(commands[ncommands],arg[i]); ncommands++; @@ -954,7 +954,7 @@ void Input::ifthenelse() // bound and execute "elif" or "else" commands while (iarg != narg) { - if (iarg+2 > narg) error->all(FLERR,"Illegal if command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "if then", error); if (strcmp(arg[iarg],"elif") == 0) { n = strlen(arg[iarg+1]) + 1; if (n > maxline) reallocate(line,maxline,n); @@ -976,13 +976,13 @@ void Input::ifthenelse() if (btest == 0.0) continue; int ncommands = last-first + 1; - if (ncommands <= 0) error->all(FLERR,"Illegal if command"); + if (ncommands <= 0) utils::missing_cmd_args(FLERR, "if elif/else", error); auto commands = new char*[ncommands]; ncommands = 0; for (int i = first; i <= last; i++) { n = strlen(arg[i]) + 1; - if (n == 1) error->all(FLERR,"Illegal if command"); + if (n == 1) error->all(FLERR,"Illegal if elif/else command: execute command is empty"); commands[ncommands] = new char[n]; strcpy(commands[ncommands],arg[i]); ncommands++; @@ -1038,7 +1038,7 @@ void Input::include() void Input::jump() { - if (narg < 1 || narg > 2) error->all(FLERR,"Illegal jump command"); + if (narg < 1 || narg > 2) error->all(FLERR,"Illegal jump command: expected 1 or 2 argument(s) but found {}", narg); if (jump_skip) { jump_skip = 0; @@ -1069,7 +1069,7 @@ void Input::jump() void Input::label() { - if (narg != 1) error->all(FLERR,"Illegal label command"); + if (narg != 1) error->all(FLERR,"Illegal label command: expected 1 argument but found {}", narg); if (label_active && strcmp(labelstr,arg[0]) == 0) label_active = 0; } @@ -1077,12 +1077,12 @@ void Input::label() void Input::log() { - if ((narg < 1) || (narg > 2)) error->all(FLERR,"Illegal log command"); + if ((narg < 1) || (narg > 2)) error->all(FLERR,"Illegal log command: expected 1 or 2 argument(s) but found {}", narg); int appendflag = 0; if (narg == 2) { if (strcmp(arg[1],"append") == 0) appendflag = 1; - else error->all(FLERR,"Illegal log command"); + else error->all(FLERR,"Unknown log keyword: {}", arg[1]); } if (me == 0) { @@ -1112,7 +1112,7 @@ void Input::next_command() void Input::partition() { - if (narg < 3) error->all(FLERR,"Illegal partition command"); + if (narg < 3) utils::missing_cmd_args(FLERR, "partition", error); int ilo,ihi; int yesflag = utils::logical(FLERR,arg[0],false,lmp); @@ -1138,7 +1138,7 @@ void Input::partition() void Input::print() { - if (narg < 1) error->all(FLERR,"Illegal print command"); + if (narg < 1) utils::missing_cmd_args(FLERR, "print", error); // copy 1st arg back into line (copy is being used) // check maxline since arg[0] could have been expanded by variables @@ -1158,7 +1158,7 @@ void Input::print() int iarg = 1; while (iarg < narg) { if (strcmp(arg[iarg],"file") == 0 || strcmp(arg[iarg],"append") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal print command"); + if (iarg+2 > narg) error->all(FLERR,"Illegal print {} command: missing argument(s)", arg[iarg]); if (me == 0) { if (fp != nullptr) fclose(fp); if (strcmp(arg[iarg],"file") == 0) fp = fopen(arg[iarg+1],"w"); @@ -1168,14 +1168,14 @@ void Input::print() } iarg += 2; } else if (strcmp(arg[iarg],"screen") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal print command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "print screen", error); screenflag = utils::logical(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"universe") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal print command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "print universe", error); universeflag = utils::logical(FLERR,arg[iarg+1],false,lmp); iarg += 2; - } else error->all(FLERR,"Illegal print command"); + } else error->all(FLERR,"Unknown print keyword: {}", arg[iarg]); } if (me == 0) { @@ -1205,7 +1205,7 @@ void Input::quit() { if (narg == 0) error->done(0); // 1 would be fully backwards compatible if (narg == 1) error->done(utils::inumeric(FLERR,arg[0],false,lmp)); - error->all(FLERR,"Illegal quit command"); + error->all(FLERR,"Illegal quit command: expected 0 or 1 argument but found {}", narg); } /* ---------------------------------------------------------------------- */ @@ -1589,7 +1589,7 @@ void Input::lattice() void Input::mass() { - if (narg != 2) error->all(FLERR,"Illegal mass command"); + if (narg != 2) error->all(FLERR,"Illegal mass command: expected 2 arguments but found {}", narg); if (domain->box_exist == 0) error->all(FLERR,"Mass command before simulation box is defined"); atom->set_mass(FLERR,narg,arg); @@ -1731,7 +1731,7 @@ void Input::pair_modify() void Input::pair_style() { - if (narg < 1) error->all(FLERR,"Illegal pair_style command"); + if (narg < 1) utils::missing_cmd_args(FLERR, "pair_style", error); if (force->pair) { std::string style = arg[0]; int match = 0; diff --git a/src/lattice.cpp b/src/lattice.cpp index f88a55a4d5..8ba74d52d6 100644 --- a/src/lattice.cpp +++ b/src/lattice.cpp @@ -51,7 +51,7 @@ Lattice::Lattice(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) else error->all(FLERR,"Unknown lattice keyword: {}", arg[0]); if (style == NONE) { - if (narg != 2) error->all(FLERR,"Illegal lattice command: expected 2 argument but found {}", narg); + if (narg != 2) error->all(FLERR,"Illegal lattice command: expected 2 arguments but found {}", narg); // Domain creates a default lattice of style "none" // before Force class is instantiated, just use atof() in that case diff --git a/src/neighbor.cpp b/src/neighbor.cpp index ec97f4dced..e5e378ff6b 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -2527,7 +2527,7 @@ void Neighbor::build_one(class NeighList *mylist, int preflag) void Neighbor::set(int narg, char **arg) { - if (narg != 2) error->all(FLERR,"Illegal neighbor command: expected 2 argument but found {}", narg); + if (narg != 2) error->all(FLERR,"Illegal neighbor command: expected 2 arguments but found {}", narg); skin = utils::numeric(FLERR,arg[0],false,lmp); if (skin < 0.0) error->all(FLERR, "Invalid neighbor argument: {}", arg[0]); diff --git a/src/pair.cpp b/src/pair.cpp index 4d42035fd1..81f231bb31 100644 --- a/src/pair.cpp +++ b/src/pair.cpp @@ -159,57 +159,57 @@ Pair::~Pair() void Pair::modify_params(int narg, char **arg) { - if (narg == 0) error->all(FLERR,"Illegal pair_modify command"); + if (narg == 0) utils::missing_cmd_args(FLERR, "pair_modify", error); int iarg = 0; while (iarg < narg) { if (strcmp(arg[iarg],"mix") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal pair_modify command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "pair_modify mix", error); if (strcmp(arg[iarg+1],"geometric") == 0) mix_flag = GEOMETRIC; else if (strcmp(arg[iarg+1],"arithmetic") == 0) mix_flag = ARITHMETIC; else if (strcmp(arg[iarg+1],"sixthpower") == 0) mix_flag = SIXTHPOWER; - else error->all(FLERR,"Illegal pair_modify command"); + else error->all(FLERR,"Unknown pair_modify mix argument: {}", arg[iarg+1]); iarg += 2; } else if (strcmp(arg[iarg],"shift") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal pair_modify command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "pair_modify shift", error); offset_flag = utils::logical(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"table") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal pair_modify command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "pair_modify table", error); ncoultablebits = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (ncoultablebits > (int)sizeof(float)*CHAR_BIT) error->all(FLERR,"Too many total bits for bitmapped lookup table"); iarg += 2; } else if (strcmp(arg[iarg],"table/disp") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal pair_modify command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "pair_modify table/disp", error); ndisptablebits = utils::inumeric(FLERR,arg[iarg+1],false,lmp); if (ndisptablebits > (int)sizeof(float)*CHAR_BIT) error->all(FLERR,"Too many total bits for bitmapped lookup table"); iarg += 2; } else if (strcmp(arg[iarg],"tabinner") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal pair_modify command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "pair_modify tabinner", error); tabinner = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"tabinner/disp") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal pair_modify command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "pair_modify tabinner/disp", error); tabinner_disp = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"tail") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal pair_modify command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "pair_modify tail", error); tail_flag = utils::logical(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"compute") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal pair_modify command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "pair_modify compute", error); compute_flag = utils::logical(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"nofdotr") == 0) { no_virial_fdotr_compute = 1; ++iarg; } else if (strcmp(arg[iarg],"neigh/trim") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal pair_modify command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "pair_modify neigh/trim", error); trim_flag = utils::logical(FLERR,arg[iarg+1],false,lmp); iarg += 2; - } else error->all(FLERR,"Illegal pair_modify command"); + } else error->all(FLERR,"Unknown pair_modify keyword: {}", arg[iarg]); } }