improved error messages in pair and input.cpp

This commit is contained in:
Jiancheng Chen
2022-08-18 21:08:36 +08:00
parent 5a10b09005
commit ff9c02f053
5 changed files with 38 additions and 38 deletions

View File

@ -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;