Merge pull request #3408 from crackboy88/improve-errors

Improve errors
This commit is contained in:
Axel Kohlmeyer
2022-08-27 07:37:31 -04:00
committed by GitHub
14 changed files with 201 additions and 188 deletions

View File

@ -46,14 +46,14 @@ void ChangeBox::command(int narg, char **arg)
if (domain->box_exist == 0)
error->all(FLERR,"Change_box command before simulation box is defined");
if (narg < 2) error->all(FLERR,"Illegal change_box command");
if (narg < 2) utils::missing_cmd_args(FLERR, "change_box", error);
if (comm->me == 0) utils::logmesg(lmp,"Changing box ...\n");
// group
int igroup = group->find(arg[0]);
if (igroup == -1) error->all(FLERR,"Could not find change_box group ID");
if (igroup == -1) error->all(FLERR,"Could not find change_box group ID {}", arg[0]);
int groupbit = group->bitmask[igroup];
// parse operation arguments
@ -70,7 +70,7 @@ void ChangeBox::command(int narg, char **arg)
while (iarg < narg) {
if (strcmp(arg[iarg],"x") == 0 || strcmp(arg[iarg],"y") == 0 ||
strcmp(arg[iarg],"z") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal change_box command");
if (iarg+2 > narg) error->all(FLERR, "Illegal change_box {} command: missing argument(s)", arg[iarg]);
ops[nops].style = XYZ;
if (strcmp(arg[iarg],"x") == 0) ops[nops].dim = X;
else if (strcmp(arg[iarg],"y") == 0) ops[nops].dim = Y;
@ -80,7 +80,7 @@ void ChangeBox::command(int narg, char **arg)
error->all(FLERR,"Cannot change_box in z dimension for 2d simulation");
if (strcmp(arg[iarg+1],"final") == 0) {
if (iarg+4 > narg) error->all(FLERR,"Illegal change_box command");
if (iarg+4 > narg) error->all(FLERR, "Illegal change_box {} final command: missing argument(s)", arg[iarg]);
ops[nops].flavor = FINAL;
ops[nops].flo = utils::numeric(FLERR,arg[iarg+2],false,lmp);
ops[nops].fhi = utils::numeric(FLERR,arg[iarg+3],false,lmp);
@ -88,7 +88,7 @@ void ChangeBox::command(int narg, char **arg)
nops++;
iarg += 4;
} else if (strcmp(arg[iarg+1],"delta") == 0) {
if (iarg+4 > narg) error->all(FLERR,"Illegal change_box command");
if (iarg+4 > narg) error->all(FLERR, "Illegal change_box {} delta command: missing argument(s)", arg[iarg]);
ops[nops].flavor = DELTA;
ops[nops].dlo = utils::numeric(FLERR,arg[iarg+2],false,lmp);
ops[nops].dhi = utils::numeric(FLERR,arg[iarg+3],false,lmp);
@ -96,7 +96,7 @@ void ChangeBox::command(int narg, char **arg)
nops++;
iarg += 4;
} else if (strcmp(arg[iarg+1],"scale") == 0) {
if (iarg+3 > narg) error->all(FLERR,"Illegal change_box command");
if (iarg+3 > narg) error->all(FLERR, "Illegal change_box {} scale command: missing argument(s)", arg[iarg]);
ops[nops].flavor = SCALE;
ops[nops].scale = utils::numeric(FLERR,arg[iarg+2],false,lmp);
ops[nops].vdim1 = ops[nops].vdim2 = -1;
@ -112,11 +112,11 @@ void ChangeBox::command(int narg, char **arg)
else ops[nops-1].vdim1 = ops[nops].dim;
iarg += 2;
} else error->all(FLERR,"Illegal change_box command");
} else error->all(FLERR, "Unknown change_box {} argument: {}", arg[iarg], arg[iarg+1]);
} else if (strcmp(arg[iarg],"xy") == 0 || strcmp(arg[iarg],"xz") == 0 ||
strcmp(arg[iarg],"yz") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal change_box command");
if (iarg+2 > narg) error->all(FLERR, "Illegal change_box {} command: missing argument(s)", arg[iarg]);
ops[nops].style = TILT;
if (strcmp(arg[iarg],"xy") == 0) ops[nops].dim = XY;
else if (strcmp(arg[iarg],"xz") == 0) ops[nops].dim = XZ;
@ -126,21 +126,21 @@ void ChangeBox::command(int narg, char **arg)
error->all(FLERR,"Cannot change_box in xz or yz for 2d simulation");
if (strcmp(arg[iarg+1],"final") == 0) {
if (iarg+3 > narg) error->all(FLERR,"Illegal change_box command");
if (iarg+3 > narg) error->all(FLERR, "Illegal change_box {} final command: missing argument(s)", arg[iarg]);
ops[nops].flavor = FINAL;
ops[nops].ftilt = utils::numeric(FLERR,arg[iarg+2],false,lmp);
nops++;
iarg += 3;
} else if (strcmp(arg[iarg+1],"delta") == 0) {
if (iarg+3 > narg) error->all(FLERR,"Illegal change_box command");
if (iarg+3 > narg) error->all(FLERR, "Illegal change_box {} delta command: missing argument(s)", arg[iarg]);
ops[nops].flavor = DELTA;
ops[nops].dtilt = utils::numeric(FLERR,arg[iarg+2],false,lmp);
nops++;
iarg += 3;
} else error->all(FLERR,"Illegal change_box command");
} else error->all(FLERR, "Unknown change_box {} argument: {}", arg[iarg], arg[iarg+1]);
} else if (strcmp(arg[iarg],"boundary") == 0) {
if (iarg+4 > narg) error->all(FLERR,"Illegal change_box command");
if (iarg+4 > narg) utils::missing_cmd_args(FLERR, "change_box boundary", error);
ops[nops].style = BOUNDARY;
ops[nops].boundindex = iarg+1;
nops++;
@ -157,7 +157,6 @@ void ChangeBox::command(int narg, char **arg)
iarg += 1;
} else if (strcmp(arg[iarg],"set") == 0) {
if (iarg+1 > narg) error->all(FLERR,"Illegal change_box command");
ops[nops].style = SET;
nops++;
iarg += 1;
@ -170,7 +169,7 @@ void ChangeBox::command(int narg, char **arg)
} else break;
}
if (nops == 0) error->all(FLERR,"Illegal change_box command");
if (nops == 0) error->all(FLERR, "Unknown change_box keyword: {}", arg[iarg]);
// move_atoms = 1 if need to move atoms to new procs after box changes
// anything other than ORTHO or TRICLINIC may cause atom movement
@ -393,19 +392,19 @@ void ChangeBox::command(int narg, char **arg)
void ChangeBox::options(int narg, char **arg)
{
if (narg < 0) error->all(FLERR,"Illegal change_box command");
if (narg < 0) utils::missing_cmd_args(FLERR, "change_box", error);
scaleflag = 1;
int iarg = 0;
while (iarg < narg) {
if (strcmp(arg[iarg],"units") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal change_box command");
if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "change_box units", error);
if (strcmp(arg[iarg+1],"box") == 0) scaleflag = 0;
else if (strcmp(arg[iarg+1],"lattice") == 0) scaleflag = 1;
else error->all(FLERR,"Illegal change_box command");
else error->all(FLERR, "Invalid change_box units argument: {}", arg[iarg+1]);
iarg += 2;
} else error->all(FLERR,"Illegal change_box command");
} else error->all(FLERR,"Unknown change_box keyword: {}", arg[iarg]);
}
}

View File

@ -282,12 +282,12 @@ void Comm::init_exchange()
void Comm::modify_params(int narg, char **arg)
{
if (narg < 1) error->all(FLERR,"Illegal comm_modify command");
if (narg < 1) utils::missing_cmd_args(FLERR, "comm_modify", error);
int iarg = 0;
while (iarg < narg) {
if (strcmp(arg[iarg],"mode") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal comm_modify command");
if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "comm_modify mode", error);
if (strcmp(arg[iarg+1],"single") == 0) {
// need to reset cutghostuser when switching comm mode
if (mode == Comm::MULTI) cutghostuser = 0.0;
@ -311,26 +311,27 @@ void Comm::modify_params(int narg, char **arg)
if (mode == Comm::MULTI) cutghostuser = 0.0;
memory->destroy(cutusermulti);
mode = Comm::MULTIOLD;
} else error->all(FLERR,"Illegal comm_modify command");
} else error->all(FLERR,"Unknown comm_modify mode argument: {}", arg[iarg+1]);
iarg += 2;
} else if (strcmp(arg[iarg],"group") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal comm_modify command");
if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "comm_modify group", error);
bordergroup = group->find(arg[iarg+1]);
if (bordergroup < 0)
error->all(FLERR,"Invalid group in comm_modify command");
if (bordergroup && (atom->firstgroupname == nullptr ||
strcmp(arg[iarg+1],atom->firstgroupname) != 0))
error->all(FLERR,"Comm_modify group != atom_modify first group");
error->all(FLERR, "Invalid comm_modify keyword: group {} not found", arg[iarg+1]);
if (atom->firstgroupname == nullptr)
error->all(FLERR, "Invalid comm_modify keyword: atom_modify first command must be used");
if (strcmp(arg[iarg+1],atom->firstgroupname) != 0)
error->all(FLERR, "comm_modify group != atom_modify first group: {}", atom->firstgroupname);
iarg += 2;
} else if (strcmp(arg[iarg],"cutoff") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal comm_modify command");
if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "comm_modify cutoff", error);
if (mode == Comm::MULTI)
error->all(FLERR, "Use cutoff/multi keyword to set cutoff in multi mode");
if (mode == Comm::MULTIOLD)
error->all(FLERR, "Use cutoff/multi/old keyword to set cutoff in multi mode");
cutghostuser = utils::numeric(FLERR,arg[iarg+1],false,lmp);
if (cutghostuser < 0.0)
error->all(FLERR,"Invalid cutoff in comm_modify command");
error->all(FLERR,"Invalid cutoff {} in comm_modify command", arg[iarg+1]);
iarg += 2;
} else if (strcmp(arg[iarg],"cutoff/multi") == 0) {
int i,nlo,nhi;
@ -355,7 +356,7 @@ void Comm::modify_params(int narg, char **arg)
cut = utils::numeric(FLERR,arg[iarg+2],false,lmp);
cutghostuser = MAX(cutghostuser,cut);
if (cut < 0.0)
error->all(FLERR,"Invalid cutoff in comm_modify command");
error->all(FLERR,"Invalid cutoff {} in comm_modify command", arg[iarg+2]);
// collections use 1-based indexing externally and 0-based indexing internally
for (i=nlo; i<=nhi; ++i)
cutusermulti[i-1] = cut;
@ -370,8 +371,7 @@ void Comm::modify_params(int narg, char **arg)
if (domain->box_exist == 0)
error->all(FLERR, "Cannot set cutoff/multi before simulation box is defined");
const int ntypes = atom->ntypes;
if (iarg+3 > narg)
error->all(FLERR,"Illegal comm_modify command");
if (iarg+3 > narg) utils::missing_cmd_args(FLERR, "comm_modify cutoff/multi/old", error);
if (cutusermultiold == nullptr) {
memory->create(cutusermultiold,ntypes+1,"comm:cutusermultiold");
for (i=0; i < ntypes+1; ++i)
@ -381,7 +381,7 @@ void Comm::modify_params(int narg, char **arg)
cut = utils::numeric(FLERR,arg[iarg+2],false,lmp);
cutghostuser = MAX(cutghostuser,cut);
if (cut < 0.0)
error->all(FLERR,"Invalid cutoff in comm_modify command");
error->all(FLERR,"Invalid cutoff {} in comm_modify command", arg[iarg+2]);
for (i=nlo; i<=nhi; ++i)
cutusermultiold[i] = cut;
iarg += 3;
@ -391,10 +391,10 @@ void Comm::modify_params(int narg, char **arg)
multi_reduce = 1;
iarg += 1;
} else if (strcmp(arg[iarg],"vel") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal comm_modify command");
if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "comm_modify vel", error);
ghost_velocity = utils::logical(FLERR,arg[iarg+1],false,lmp);
iarg += 2;
} else error->all(FLERR,"Illegal comm_modify command");
} else error->all(FLERR,"Unknown comm_modify keyword: {}", arg[iarg]);
}
}

View File

@ -35,7 +35,7 @@ CreateBox::CreateBox(LAMMPS *lmp) : Command(lmp) {}
void CreateBox::command(int narg, char **arg)
{
if (narg < 2) error->all(FLERR, "Illegal create_box command");
if (narg < 2) utils::missing_cmd_args(FLERR, "create_box", error);
if (domain->box_exist) error->all(FLERR, "Cannot create_box after simulation box is defined");
if (domain->dimension == 2 && domain->zperiodic == 0)
@ -107,56 +107,56 @@ void CreateBox::command(int narg, char **arg)
int iarg = 2;
while (iarg < narg) {
if (strcmp(arg[iarg], "bond/types") == 0) {
if (iarg + 2 > narg) error->all(FLERR, "Illegal create_box command");
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "create_box bond/type", error);
if (!atom->avec->bonds_allow) error->all(FLERR, "No bonds allowed with this atom style");
atom->nbondtypes = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
iarg += 2;
} else if (strcmp(arg[iarg], "angle/types") == 0) {
if (iarg + 2 > narg) error->all(FLERR, "Illegal create_box command");
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "create_box angle/types", error);
if (!atom->avec->angles_allow) error->all(FLERR, "No angles allowed with this atom style");
atom->nangletypes = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
iarg += 2;
} else if (strcmp(arg[iarg], "dihedral/types") == 0) {
if (iarg + 2 > narg) error->all(FLERR, "Illegal create_box command");
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "create_box dihedral/types", error);
if (!atom->avec->dihedrals_allow)
error->all(FLERR, "No dihedrals allowed with this atom style");
atom->ndihedraltypes = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
iarg += 2;
} else if (strcmp(arg[iarg], "improper/types") == 0) {
if (iarg + 2 > narg) error->all(FLERR, "Illegal create_box command");
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "create_box improper/types", error);
if (!atom->avec->impropers_allow)
error->all(FLERR, "No impropers allowed with this atom style");
atom->nimpropertypes = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
iarg += 2;
} else if (strcmp(arg[iarg], "extra/bond/per/atom") == 0) {
if (iarg + 2 > narg) error->all(FLERR, "Illegal create_box command");
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "create_box extra/bond/per/atom", error);
if (!atom->avec->bonds_allow) error->all(FLERR, "No bonds allowed with this atom style");
atom->bond_per_atom = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
iarg += 2;
} else if (strcmp(arg[iarg], "extra/angle/per/atom") == 0) {
if (iarg + 2 > narg) error->all(FLERR, "Illegal create_box command");
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "create_box extra/angle/per/atom", error);
if (!atom->avec->angles_allow) error->all(FLERR, "No angles allowed with this atom style");
atom->angle_per_atom = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
iarg += 2;
} else if (strcmp(arg[iarg], "extra/dihedral/per/atom") == 0) {
if (iarg + 2 > narg) error->all(FLERR, "Illegal create_box command");
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "create_box extra/dihedral/per/atom", error);
if (!atom->avec->dihedrals_allow)
error->all(FLERR, "No dihedrals allowed with this atom style");
atom->dihedral_per_atom = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
iarg += 2;
} else if (strcmp(arg[iarg], "extra/improper/per/atom") == 0) {
if (iarg + 2 > narg) error->all(FLERR, "Illegal create_box command");
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "create_box extra/improper/per/atom", error);
if (!atom->avec->impropers_allow)
error->all(FLERR, "No impropers allowed with this atom style");
atom->improper_per_atom = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
iarg += 2;
} else if (strcmp(arg[iarg], "extra/special/per/atom") == 0) {
if (iarg + 2 > narg) error->all(FLERR, "Illegal create_box command");
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "create_box extra/special/per/atom", error);
force->special_extra = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
atom->maxspecial += force->special_extra;
iarg += 2;
} else
error->all(FLERR, "Illegal create_box command");
error->all(FLERR, "Unknown create_box keyword: {}", arg[iarg]);
}
// problem setup using info from header

View File

@ -1744,7 +1744,7 @@ void Domain::set_lattice(int narg, char **arg)
void Domain::add_region(int narg, char **arg)
{
if (narg < 2) error->all(FLERR,"Illegal region command");
if (narg < 2) utils::missing_cmd_args(FLERR, "region", error);
if (strcmp(arg[1],"delete") == 0) {
delete_region(arg[0]);
@ -1856,7 +1856,7 @@ const std::vector<Region *> Domain::get_region_list()
void Domain::set_boundary(int narg, char **arg, int flag)
{
if (narg != 3) error->all(FLERR,"Illegal boundary command");
if (narg != 3) error->all(FLERR,"Illegal boundary command: expected 3 arguments but found {}", narg);
char c;
for (int idim = 0; idim < 3; idim++)
@ -1870,8 +1870,8 @@ void Domain::set_boundary(int narg, char **arg, int flag)
else if (c == 's') boundary[idim][iside] = 2;
else if (c == 'm') boundary[idim][iside] = 3;
else {
if (flag == 0) error->all(FLERR,"Illegal boundary command");
if (flag == 1) error->all(FLERR,"Illegal change_box command");
if (flag == 0) error->all(FLERR,"Unknown boundary keyword: {}", c);
if (flag == 1) error->all(FLERR,"Unknown change_box keyword: {}", c);
}
}
@ -1935,17 +1935,17 @@ void Domain::set_boundary(int narg, char **arg, int flag)
void Domain::set_box(int narg, char **arg)
{
if (narg < 1) error->all(FLERR,"Illegal box command");
if (narg < 1) utils::missing_cmd_args(FLERR, "box", error);
int iarg = 0;
while (iarg < narg) {
if (strcmp(arg[iarg],"tilt") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal box command");
if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "box tilt", error);
if (strcmp(arg[iarg+1],"small") == 0) tiltsmall = 1;
else if (strcmp(arg[iarg+1],"large") == 0) tiltsmall = 0;
else error->all(FLERR,"Illegal box command");
else error->all(FLERR,"Unknown box tilt argument: {}", arg[iarg+1]);
iarg += 2;
} else error->all(FLERR,"Illegal box command");
} else error->all(FLERR,"Unknown box keyword: {}", arg[iarg]);
}
}

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);
}
/* ---------------------------------------------------------------------- */
@ -1214,10 +1214,10 @@ void Input::shell()
{
int rv,err;
if (narg < 1) error->all(FLERR,"Illegal shell command");
if (narg < 1) utils::missing_cmd_args(FLERR, "shell", error);
if (strcmp(arg[0],"cd") == 0) {
if (narg != 2) error->all(FLERR,"Illegal shell cd command");
if (narg != 2) error->all(FLERR,"Illegal shell command: expected 2 argument but found {}", narg);
rv = (platform::chdir(arg[1]) < 0) ? errno : 0;
MPI_Reduce(&rv,&err,1,MPI_INT,MPI_MAX,0,world);
errno = err;
@ -1225,7 +1225,7 @@ void Input::shell()
error->warning(FLERR, "Shell command 'cd {}' failed with error '{}'", arg[1], utils::getsyserror());
}
} else if (strcmp(arg[0],"mkdir") == 0) {
if (narg < 2) error->all(FLERR,"Illegal shell mkdir command");
if (narg < 2) utils::missing_cmd_args(FLERR, "shell mkdir", error);
if (me == 0) {
for (int i = 1; i < narg; i++) {
rv = (platform::mkdir(arg[i]) < 0) ? errno : 0;
@ -1235,7 +1235,7 @@ void Input::shell()
}
}
} else if (strcmp(arg[0],"mv") == 0) {
if (narg != 3) error->all(FLERR,"Illegal shell mv command");
if (narg != 3) error->all(FLERR,"Illegal shell command: expected 3 argument but found {}", narg);
if (me == 0) {
if (platform::path_is_directory(arg[2])) {
if (system(fmt::format("mv {} {}", arg[1], arg[2]).c_str()))
@ -1248,7 +1248,7 @@ void Input::shell()
}
}
} else if (strcmp(arg[0],"rm") == 0) {
if (narg < 2) error->all(FLERR,"Illegal shell rm command");
if (narg < 2) utils::missing_cmd_args(FLERR, "shell rm", error);
if (me == 0) {
int i = 1;
bool warn = true;
@ -1264,7 +1264,7 @@ void Input::shell()
}
}
} else if (strcmp(arg[0],"rmdir") == 0) {
if (narg < 2) error->all(FLERR,"Illegal shell rmdir command");
if (narg < 2) utils::missing_cmd_args(FLERR, "shell rmdir", error);
if (me == 0) {
for (int i = 1; i < narg; i++) {
if (platform::rmdir(arg[i]) < 0)
@ -1273,7 +1273,7 @@ void Input::shell()
}
}
} else if (strcmp(arg[0],"putenv") == 0) {
if (narg < 2) error->all(FLERR,"Illegal shell putenv command");
if (narg < 2) utils::missing_cmd_args(FLERR, "shell putenv", error);
for (int i = 1; i < narg; i++) {
rv = 0;
if (arg[i]) rv = platform::putenv(arg[i]);
@ -1351,7 +1351,7 @@ void Input::atom_modify()
void Input::atom_style()
{
if (narg < 1) error->all(FLERR,"Illegal atom_style command");
if (narg < 1) utils::missing_cmd_args(FLERR, "atom_style", error);
if (domain->box_exist)
error->all(FLERR,"Atom_style command after simulation box is defined");
atom->create_avec(arg[0],narg-1,&arg[1],1);
@ -1488,12 +1488,12 @@ void Input::dihedral_style()
void Input::dimension()
{
if (narg != 1) error->all(FLERR,"Illegal dimension command");
if (narg != 1) error->all(FLERR,"Illegal dimension command: expected 1 argument but found {}", narg);
if (domain->box_exist)
error->all(FLERR,"Dimension command after simulation box is defined");
domain->dimension = utils::inumeric(FLERR,arg[0],false,lmp);
if (domain->dimension != 2 && domain->dimension != 3)
error->all(FLERR,"Illegal dimension command");
error->all(FLERR, "Invalid dimension argument: {}", arg[0]);
// must reset default extra_dof of all computes
// since some were created before dimension command is encountered
@ -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;
@ -1948,7 +1948,7 @@ void Input::unfix()
void Input::units()
{
if (narg != 1) error->all(FLERR,"Illegal units command");
if (narg != 1) error->all(FLERR,"Illegal units command: expected 1 argument but found {}", narg);
if (domain->box_exist)
error->all(FLERR,"Units command after simulation box is defined");
update->set_units(arg[0]);

View File

@ -36,7 +36,7 @@ Lattice::Lattice(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp)
// parse style arg
if (narg < 1) error->all(FLERR,"Illegal lattice command");
if (narg < 1) utils::missing_cmd_args(FLERR, "lattice", error);
if (strcmp(arg[0],"none") == 0) style = NONE;
else if (strcmp(arg[0],"sc") == 0) style = SC;
@ -48,10 +48,10 @@ Lattice::Lattice(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp)
else if (strcmp(arg[0],"sq2") == 0) style = SQ2;
else if (strcmp(arg[0],"hex") == 0) style = HEX;
else if (strcmp(arg[0],"custom") == 0) style = CUSTOM;
else error->all(FLERR,"Illegal lattice command");
else error->all(FLERR,"Unknown lattice keyword: {}", arg[0]);
if (style == NONE) {
if (narg != 2) error->all(FLERR,"Illegal lattice command");
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
@ -61,7 +61,7 @@ Lattice::Lattice(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp)
else
xlattice = ylattice = zlattice = atof(arg[1]);
if (xlattice <= 0.0) error->all(FLERR,"Illegal lattice command");
if (xlattice <= 0.0) error->all(FLERR, "Invalid lattice none argument: {}", arg[1]);
return;
}
@ -81,9 +81,9 @@ Lattice::Lattice(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp)
// scale = conversion factor between lattice and box units
if (narg < 2) error->all(FLERR,"Illegal lattice command");
if (narg < 2) utils::missing_cmd_args(FLERR, "lattice", error);
scale = utils::numeric(FLERR,arg[1],false,lmp);
if (scale <= 0.0) error->all(FLERR,"Illegal lattice command");
if (scale <= 0.0) error->all(FLERR, "Invalid lattice {} argument: {}", arg[0], arg[1]);
// set basis atoms for each style
// x,y,z = fractional coords within unit cell
@ -148,23 +148,25 @@ Lattice::Lattice(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp)
int iarg = 2;
while (iarg < narg) {
if (strcmp(arg[iarg],"origin") == 0) {
if (iarg+4 > narg) error->all(FLERR,"Illegal lattice command");
if (iarg+4 > narg) utils::missing_cmd_args(FLERR, "lattice origin", error);
origin[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp);
origin[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp);
origin[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp);
if (origin[0] < 0.0 || origin[0] >= 1.0 ||
origin[1] < 0.0 || origin[1] >= 1.0 ||
origin[2] < 0.0 || origin[2] >= 1.0)
error->all(FLERR,"Illegal lattice command");
if (origin[0] < 0.0 || origin[0] >= 1.0)
error->all(FLERR, "Invalid lattice origin argument: {}", origin[0]);
if (origin[1] < 0.0 || origin[1] >= 1.0)
error->all(FLERR, "Invalid lattice origin argument: {}", origin[1]);
if (origin[2] < 0.0 || origin[2] >= 1.0)
error->all(FLERR, "Invalid lattice origin argument: {}", origin[2]);
iarg += 4;
} else if (strcmp(arg[iarg],"orient") == 0) {
if (iarg+5 > narg) error->all(FLERR,"Illegal lattice command");
if (iarg+5 > narg) utils::missing_cmd_args(FLERR, "lattice orient", error);
int dim = -1;
if (strcmp(arg[iarg+1],"x") == 0) dim = 0;
else if (strcmp(arg[iarg+1],"y") == 0) dim = 1;
else if (strcmp(arg[iarg+1],"z") == 0) dim = 2;
else error->all(FLERR,"Illegal lattice command");
else error->all(FLERR,"Unknown lattice orient argument: {}", arg[iarg+1]);
int *orient = nullptr;
if (dim == 0) orient = orientx;
else if (dim == 1) orient = orienty;
@ -175,7 +177,7 @@ Lattice::Lattice(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp)
iarg += 5;
} else if (strcmp(arg[iarg],"spacing") == 0) {
if (iarg+4 > narg) error->all(FLERR,"Illegal lattice command");
if (iarg+4 > narg) utils::missing_cmd_args(FLERR, "lattice spacing", error);
spaceflag = 1;
xlattice = utils::numeric(FLERR,arg[iarg+1],false,lmp);
ylattice = utils::numeric(FLERR,arg[iarg+2],false,lmp);
@ -183,46 +185,50 @@ Lattice::Lattice(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp)
iarg += 4;
} else if (strcmp(arg[iarg],"a1") == 0) {
if (iarg+4 > narg) error->all(FLERR,"Illegal lattice command");
if (iarg+4 > narg) utils::missing_cmd_args(FLERR, "lattice a1", error);
if (style != CUSTOM)
error->all(FLERR,
"Invalid option in lattice command for non-custom style");
"Invalid a1 option in lattice command for non-custom style");
a1[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp);
a1[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp);
a1[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp);
iarg += 4;
} else if (strcmp(arg[iarg],"a2") == 0) {
if (iarg+4 > narg) error->all(FLERR,"Illegal lattice command");
if (iarg+4 > narg) utils::missing_cmd_args(FLERR, "lattice a2", error);
if (style != CUSTOM)
error->all(FLERR,
"Invalid option in lattice command for non-custom style");
"Invalid a2 option in lattice command for non-custom style");
a2[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp);
a2[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp);
a2[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp);
iarg += 4;
} else if (strcmp(arg[iarg],"a3") == 0) {
if (iarg+4 > narg) error->all(FLERR,"Illegal lattice command");
if (iarg+4 > narg) utils::missing_cmd_args(FLERR, "lattice a3", error);
if (style != CUSTOM)
error->all(FLERR,
"Invalid option in lattice command for non-custom style");
"Invalid a3 option in lattice command for non-custom style");
a3[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp);
a3[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp);
a3[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp);
iarg += 4;
} else if (strcmp(arg[iarg],"basis") == 0) {
if (iarg+4 > narg) error->all(FLERR,"Illegal lattice command");
if (iarg+4 > narg) utils::missing_cmd_args(FLERR, "lattice basis", error);
if (style != CUSTOM)
error->all(FLERR,
"Invalid option in lattice command for non-custom style");
"Invalid basis option in lattice command for non-custom style");
double x = utils::numeric(FLERR,arg[iarg+1],false,lmp);
double y = utils::numeric(FLERR,arg[iarg+2],false,lmp);
double z = utils::numeric(FLERR,arg[iarg+3],false,lmp);
if (x < 0.0 || x >= 1.0 || y < 0.0 || y >= 1.0 || z < 0.0 || z >= 1.0)
error->all(FLERR,"Illegal lattice command");
if (x < 0.0 || x >= 1.0)
error->all(FLERR, "Invalid lattice basis argument: {}", x);
if (y < 0.0 || y >= 1.0)
error->all(FLERR, "Invalid lattice basis argument: {}", y);
if (z < 0.0 || z >= 1.0)
error->all(FLERR, "Invalid lattice basis argument: {}", z);
add_basis(x,y,z);
iarg += 4;
} else error->all(FLERR,"Illegal lattice command");
} else error->all(FLERR,"Unknown lattice keyword: {}", arg[iarg]);
}
// check settings for errors

View File

@ -2527,10 +2527,10 @@ 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");
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,"Illegal neighbor command");
if (skin < 0.0) error->all(FLERR, "Invalid neighbor argument: {}", arg[0]);
if (strcmp(arg[1],"nsq") == 0) style = Neighbor::NSQ;
else if (strcmp(arg[1],"bin") == 0) style = Neighbor::BIN;
@ -2538,7 +2538,7 @@ void Neighbor::set(int narg, char **arg)
style = Neighbor::MULTI;
ncollections = atom->ntypes;
} else if (strcmp(arg[1],"multi/old") == 0) style = Neighbor::MULTI_OLD;
else error->all(FLERR,"Illegal neighbor command");
else error->all(FLERR,"Unknown neighbor {} argument: {}", arg[0], arg[1]);
if (style == Neighbor::MULTI_OLD && lmp->citeme) lmp->citeme->add(cite_neigh_multi_old);
if (style == Neighbor::MULTI && lmp->citeme) lmp->citeme->add(cite_neigh_multi);

View File

@ -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]);
}
}

View File

@ -66,27 +66,27 @@ void Region::init()
{
if (xstr) {
xvar = input->variable->find(xstr);
if (xvar < 0) error->all(FLERR, "Variable name for region does not exist");
if (xvar < 0) error->all(FLERR, "Variable {} for region does not exist", xstr);
if (!input->variable->equalstyle(xvar))
error->all(FLERR, "Variable for region is invalid style");
error->all(FLERR, "Variable {} for region is invalid style", xstr);
}
if (ystr) {
yvar = input->variable->find(ystr);
if (yvar < 0) error->all(FLERR, "Variable name for region does not exist");
if (yvar < 0) error->all(FLERR, "Variable {} for region does not exist", ystr);
if (!input->variable->equalstyle(yvar))
error->all(FLERR, "Variable for region is not equal style");
error->all(FLERR, "Variable {} for region is not equal style", ystr);
}
if (zstr) {
zvar = input->variable->find(zstr);
if (zvar < 0) error->all(FLERR, "Variable name for region does not exist");
if (zvar < 0) error->all(FLERR, "Variable {} for region does not exist", zstr);
if (!input->variable->equalstyle(zvar))
error->all(FLERR, "Variable for region is not equal style");
error->all(FLERR, "Variable {} for region is not equal style", zstr);
}
if (tstr) {
tvar = input->variable->find(tstr);
if (tvar < 0) error->all(FLERR, "Variable name for region does not exist");
if (tvar < 0) error->all(FLERR, "Variable {} for region does not exist", tstr);
if (!input->variable->equalstyle(tvar))
error->all(FLERR, "Variable for region is not equal style");
error->all(FLERR, "Variable {} for region is not equal style", tstr);
}
vel_timestep = -1;
}

View File

@ -36,7 +36,7 @@ Run::Run(LAMMPS *lmp) : Command(lmp) {}
void Run::command(int narg, char **arg)
{
if (narg < 1) error->all(FLERR,"Illegal run command");
if (narg < 1) utils::missing_cmd_args(FLERR, "run", error);
if (domain->box_exist == 0)
error->all(FLERR,"Run command before simulation box is defined");
@ -62,25 +62,25 @@ void Run::command(int narg, char **arg)
int iarg = 1;
while (iarg < narg) {
if (strcmp(arg[iarg],"upto") == 0) {
if (iarg+1 > narg) error->all(FLERR,"Illegal run command");
if (iarg+1 > narg) utils::missing_cmd_args(FLERR, "run upto", error);
uptoflag = 1;
iarg += 1;
} else if (strcmp(arg[iarg],"start") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal run command");
if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "run start", error);
startflag = 1;
start = utils::bnumeric(FLERR,arg[iarg+1],false,lmp);
iarg += 2;
} else if (strcmp(arg[iarg],"stop") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal run command");
if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "run stop", error);
stopflag = 1;
stop = utils::bnumeric(FLERR,arg[iarg+1],false,lmp);
iarg += 2;
} else if (strcmp(arg[iarg],"pre") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal run command");
if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "run pre", error);
preflag = utils::logical(FLERR,arg[iarg+1],false,lmp);
iarg += 2;
} else if (strcmp(arg[iarg],"post") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal run command");
if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "run post", error);
postflag = utils::logical(FLERR,arg[iarg+1],false,lmp);
iarg += 2;
@ -89,15 +89,15 @@ void Run::command(int narg, char **arg)
// set ncommands = 0 if single command and it is "NULL"
} else if (strcmp(arg[iarg],"every") == 0) {
if (iarg+3 > narg) error->all(FLERR,"Illegal run command");
if (iarg+3 > narg) utils::missing_cmd_args(FLERR, "run every", error);
nevery = utils::inumeric(FLERR,arg[iarg+1],false,lmp);
if (nevery <= 0) error->all(FLERR,"Illegal run command");
if (nevery <= 0) error->all(FLERR, "Invalid run every argument: {}", nevery);
first = iarg+2;
last = narg-1;
ncommands = last-first + 1;
if (ncommands == 1 && strcmp(arg[first],"NULL") == 0) ncommands = 0;
iarg = narg;
} else error->all(FLERR,"Illegal run command");
} else error->all(FLERR,"Unknown run keyword: {}", arg[iarg]);
}
// set nsteps as integer, using upto value if specified
@ -105,12 +105,12 @@ void Run::command(int narg, char **arg)
int nsteps;
if (!uptoflag) {
if (nsteps_input < 0 || nsteps_input > MAXSMALLINT)
error->all(FLERR,"Invalid run command N value");
error->all(FLERR,"Invalid run command N value: {}", nsteps_input);
nsteps = static_cast<int> (nsteps_input);
} else {
bigint delta = nsteps_input - update->ntimestep;
if (delta < 0 || delta > MAXSMALLINT)
error->all(FLERR,"Invalid run command upto value");
error->all(FLERR,"Invalid run command upto value: {}", delta);
nsteps = static_cast<int> (delta);
}
@ -118,13 +118,13 @@ void Run::command(int narg, char **arg)
if (startflag) {
if (start < 0)
error->all(FLERR,"Invalid run command start/stop value");
error->all(FLERR,"Invalid run command start value: {}", start);
if (start > update->ntimestep)
error->all(FLERR,"Run command start value is after start of run");
}
if (stopflag) {
if (stop < 0)
error->all(FLERR,"Invalid run command start/stop value");
error->all(FLERR,"Invalid run command stop value: {}", stop);
if (stop < update->ntimestep + nsteps)
error->all(FLERR,"Run command stop value is before end of run");
}

View File

@ -162,7 +162,7 @@ Variable::~Variable()
void Variable::set(int narg, char **arg)
{
if (narg < 2) error->all(FLERR,"Illegal variable command");
if (narg < 2) utils::missing_cmd_args(FLERR, "variable", error);
int replaceflag = 0;
@ -170,7 +170,8 @@ void Variable::set(int narg, char **arg)
// doesn't matter if variable no longer exists
if (strcmp(arg[1],"delete") == 0) {
if (narg != 2) error->all(FLERR,"Illegal variable command");
if (narg != 2)
error->all(FLERR,"Illegal variable delete command: expected 2 arguments but found {}", narg);
if (find(arg[0]) >= 0) remove(find(arg[0]));
return;
@ -178,7 +179,7 @@ void Variable::set(int narg, char **arg)
// num = listed args, which = 1st value, data = copied args
} else if (strcmp(arg[1],"index") == 0) {
if (narg < 3) error->all(FLERR,"Illegal variable command");
if (narg < 3) utils::missing_cmd_args(FLERR, "variable index", error);
if (find(arg[0]) >= 0) return;
if (nvar == maxvar) grow();
style[nvar] = INDEX;
@ -193,6 +194,7 @@ void Variable::set(int narg, char **arg)
// 2 args + pad: num = N2, which = N1, data = single string
} else if (strcmp(arg[1],"loop") == 0) {
if (narg < 3) utils::missing_cmd_args(FLERR, "variable loop", error);
if (find(arg[0]) >= 0) return;
if (nvar == maxvar) grow();
style[nvar] = LOOP;
@ -200,7 +202,7 @@ void Variable::set(int narg, char **arg)
if (narg == 3 || (narg == 4 && strcmp(arg[3],"pad") == 0)) {
nfirst = 1;
nlast = utils::inumeric(FLERR,arg[2],false,lmp);
if (nlast <= 0) error->all(FLERR,"Illegal variable command");
if (nlast <= 0) error->all(FLERR, "Invalid variable loop argument: {}", nlast);
if (narg == 4 && strcmp(arg[3],"pad") == 0) {
pad[nvar] = fmt::format("{}",nlast).size();
} else pad[nvar] = 0;
@ -208,11 +210,11 @@ void Variable::set(int narg, char **arg)
nfirst = utils::inumeric(FLERR,arg[2],false,lmp);
nlast = utils::inumeric(FLERR,arg[3],false,lmp);
if (nfirst > nlast || nlast < 0)
error->all(FLERR,"Illegal variable command");
error->all(FLERR,"Illegal variable loop command: {} > {}", nfirst,nlast);
if (narg == 5 && strcmp(arg[4],"pad") == 0) {
pad[nvar] = fmt::format("{}",nlast).size();
} else pad[nvar] = 0;
} else error->all(FLERR,"Illegal variable command");
} else error->all(FLERR,"Illegal variable loop command: too much arguments");
num[nvar] = nlast;
which[nvar] = nfirst-1;
data[nvar] = new char*[1];
@ -223,7 +225,7 @@ void Variable::set(int narg, char **arg)
// error check that num = # of worlds in universe
} else if (strcmp(arg[1],"world") == 0) {
if (narg < 3) error->all(FLERR,"Illegal variable command");
if (narg < 3) utils::missing_cmd_args(FLERR, "variable world", error);
if (find(arg[0]) >= 0) return;
if (nvar == maxvar) grow();
style[nvar] = WORLD;
@ -244,7 +246,7 @@ void Variable::set(int narg, char **arg)
} else if (strcmp(arg[1],"universe") == 0 || strcmp(arg[1],"uloop") == 0) {
if (strcmp(arg[1],"universe") == 0) {
if (narg < 3) error->all(FLERR,"Illegal variable command");
if (narg < 3) utils::missing_cmd_args(FLERR, "variable universe", error);
if (find(arg[0]) >= 0) return;
if (nvar == maxvar) grow();
style[nvar] = UNIVERSE;
@ -253,8 +255,10 @@ void Variable::set(int narg, char **arg)
data[nvar] = new char*[num[nvar]];
copy(num[nvar],&arg[2],data[nvar]);
} else if (strcmp(arg[1],"uloop") == 0) {
if (narg < 3 || narg > 4 || (narg == 4 && strcmp(arg[3],"pad") != 0))
error->all(FLERR,"Illegal variable command");
if (narg < 3 || narg > 4)
error->all(FLERR,"Illegal variable command: expected 3 or 4 arguments but found {}", narg);
if (narg == 4 && strcmp(arg[3],"pad") != 0)
error->all(FLERR, "Invalid variable uloop argument: {}", arg[3]);
if (find(arg[0]) >= 0) return;
if (nvar == maxvar) grow();
style[nvar] = ULOOP;
@ -292,7 +296,7 @@ void Variable::set(int narg, char **arg)
// data = 1 value, string to eval
} else if (strcmp(arg[1],"string") == 0) {
if (narg != 3) error->all(FLERR,"Illegal variable command");
if (narg != 3) error->all(FLERR,"Illegal variable command: expected 3 arguments but found {}", narg);
int maxcopy = strlen(arg[2]) + 1;
int maxwork = maxcopy;
@ -326,7 +330,7 @@ void Variable::set(int narg, char **arg)
// data = 1 value, string to eval
} else if (strcmp(arg[1],"getenv") == 0) {
if (narg != 3) error->all(FLERR,"Illegal variable command");
if (narg != 3) error->all(FLERR,"Illegal variable command: expected 3 arguments but found {}", narg);
if (find(arg[0]) >= 0) {
if (style[find(arg[0])] != GETENV)
error->all(FLERR,"Cannot redefine variable as a different style");
@ -346,7 +350,7 @@ void Variable::set(int narg, char **arg)
// data = 1 value, string to eval
} else if (strcmp(arg[1],"file") == 0) {
if (narg != 3) error->all(FLERR,"Illegal variable command");
if (narg != 3) error->all(FLERR,"Illegal variable command: expected 3 arguments but found {}", narg);
if (find(arg[0]) >= 0) return;
if (nvar == maxvar) grow();
style[nvar] = SCALARFILE;
@ -364,7 +368,7 @@ void Variable::set(int narg, char **arg)
// data = nullptr
} else if (strcmp(arg[1],"atomfile") == 0) {
if (narg != 3) error->all(FLERR,"Illegal variable command");
if (narg != 3) error->all(FLERR,"Illegal variable command: expected 3 arguments but found {}", narg);
if (find(arg[0]) >= 0) return;
if (nvar == maxvar) grow();
style[nvar] = ATOMFILE;
@ -384,7 +388,7 @@ void Variable::set(int narg, char **arg)
// 3rd is filled on retrieval
} else if (strcmp(arg[1],"format") == 0) {
if (narg != 4) error->all(FLERR,"Illegal variable command");
if (narg != 4) error->all(FLERR,"Illegal variable command: expected 4 arguments but found {}", narg);
if (find(arg[0]) >= 0) return;
if (nvar == maxvar) grow();
style[nvar] = FORMAT;
@ -404,7 +408,7 @@ void Variable::set(int narg, char **arg)
// data = 2 values, 1st is string to eval, 2nd is filled on retrieval
} else if (strcmp(arg[1],"equal") == 0) {
if (narg != 3) error->all(FLERR,"Illegal variable command");
if (narg != 3) error->all(FLERR,"Illegal variable command: expected 3 arguments but found {}", narg);
int ivar = find(arg[0]);
if (ivar >= 0) {
if (style[ivar] != EQUAL)
@ -430,7 +434,7 @@ void Variable::set(int narg, char **arg)
// data = 1 value, string to eval
} else if (strcmp(arg[1],"atom") == 0) {
if (narg != 3) error->all(FLERR,"Illegal variable command");
if (narg != 3) error->all(FLERR,"Illegal variable command: expected 3 arguments but found {}", narg);
int ivar = find(arg[0]);
if (ivar >= 0) {
if (style[ivar] != ATOM)
@ -454,7 +458,7 @@ void Variable::set(int narg, char **arg)
// data = 1 value, string to eval
} else if (strcmp(arg[1],"vector") == 0) {
if (narg != 3) error->all(FLERR,"Illegal variable command");
if (narg != 3) error->all(FLERR,"Illegal variable command: expected 3 arguments but found {}", narg);
int ivar = find(arg[0]);
if (ivar >= 0) {
if (style[ivar] != VECTOR)
@ -478,7 +482,7 @@ void Variable::set(int narg, char **arg)
// data = 2 values, 1st is Python func to invoke, 2nd is filled by invoke
} else if (strcmp(arg[1],"python") == 0) {
if (narg != 3) error->all(FLERR,"Illegal variable command");
if (narg != 3) error->all(FLERR,"Illegal variable command: expected 3 arguments but found {}", narg);
if (!python->is_enabled())
error->all(FLERR,"LAMMPS is not built with Python embedded");
int ivar = find(arg[0]);
@ -507,7 +511,7 @@ void Variable::set(int narg, char **arg)
// dvalue = numeric initialization via platform::walltime()
} else if (strcmp(arg[1],"timer") == 0) {
if (narg != 2) error->all(FLERR,"Illegal variable command");
if (narg != 2) error->all(FLERR,"Illegal variable command: expected 2 arguments but found {}", narg);
int ivar = find(arg[0]);
if (ivar >= 0) {
if (style[ivar] != TIMER)
@ -531,7 +535,7 @@ void Variable::set(int narg, char **arg)
// dvalue = numeric initialization from 2nd arg, reset by internal_set()
} else if (strcmp(arg[1],"internal") == 0) {
if (narg != 3) error->all(FLERR,"Illegal variable command");
if (narg != 3) error->all(FLERR,"Illegal variable command: expected 3 arguments but found {}", narg);
int ivar = find(arg[0]);
if (ivar >= 0) {
if (style[ivar] != INTERNAL)
@ -551,7 +555,7 @@ void Variable::set(int narg, char **arg)
// unrecognized variable style
} else error->all(FLERR,"Illegal variable command");
} else error->all(FLERR,"Unknown variable keyword: {}", arg[1]);
// set name of variable, if not replacing one flagged with replaceflag
// name must be all alphanumeric chars or underscores

View File

@ -45,7 +45,9 @@ protected:
{
testbinary = "LatticeRegionTest";
LAMMPSTest::SetUp();
command("units metal");
HIDE_OUTPUT([&] {
command("units metal");
});
}
};
@ -63,7 +65,7 @@ TEST_F(LatticeRegionTest, lattice_none)
ASSERT_EQ(lattice->basis, nullptr);
TEST_FAILURE(".*ERROR: Illegal lattice command.*", command("lattice"););
TEST_FAILURE(".*ERROR: Illegal lattice command.*", command("lattice xxx"););
TEST_FAILURE(".*ERROR: Unknown lattice keyword: xxx.*", command("lattice xxx"););
TEST_FAILURE(".*ERROR: Illegal lattice command.*", command("lattice none 1.0 origin"););
TEST_FAILURE(".*ERROR: Expected floating point.*", command("lattice none xxx"););
@ -114,10 +116,11 @@ TEST_F(LatticeRegionTest, lattice_sc)
ASSERT_EQ(lattice->basis[0][1], 0.0);
ASSERT_EQ(lattice->basis[0][2], 0.0);
TEST_FAILURE(".*ERROR: Illegal lattice command.*",
TEST_FAILURE(".*ERROR: Invalid lattice origin argument: 1.*",
command("lattice sc 1.0 origin 1.0 1.0 1.0"););
TEST_FAILURE(".*ERROR: Illegal lattice command.*", command("lattice sc 1.0 origin 1.0"););
TEST_FAILURE(".*ERROR: Illegal lattice command.*",
TEST_FAILURE(".*ERROR: Illegal lattice origin command: missing argument.*",
command("lattice sc 1.0 origin 1.0"););
TEST_FAILURE(".*ERROR: Unknown lattice keyword: xxx.*",
command("lattice sc 1.0 origin 0.0 0.0 0.0 xxx"););
TEST_FAILURE(".*ERROR: Expected floating point.*",
command("lattice sc 1.0 origin xxx 1.0 1.0"););
@ -195,11 +198,12 @@ TEST_F(LatticeRegionTest, lattice_fcc)
ASSERT_EQ(lattice->basis[3][1], 0.5);
ASSERT_EQ(lattice->basis[3][2], 0.5);
TEST_FAILURE(".*ERROR: Invalid option in lattice command for non-custom style.*",
TEST_FAILURE(".*ERROR: Invalid basis option in lattice command for non-custom style.*",
command("lattice fcc 1.0 basis 0.0 0.0 0.0"););
TEST_FAILURE(".*ERROR: Invalid option in lattice command for non-custom style.*",
TEST_FAILURE(".*ERROR: Invalid a1 option in lattice command for non-custom style.*",
command("lattice fcc 1.0 a1 0.0 1.0 0.0"););
TEST_FAILURE(".*ERROR: Illegal lattice command.*", command("lattice fcc 1.0 orient w 1 0 0"););
TEST_FAILURE(".*ERROR: Unknown lattice orient argument: w.*",
command("lattice fcc 1.0 orient w 1 0 0"););
BEGIN_HIDE_OUTPUT();
command("dimension 2");
@ -241,9 +245,9 @@ TEST_F(LatticeRegionTest, lattice_hcp)
ASSERT_EQ(lattice->a3[1], 0.0);
ASSERT_DOUBLE_EQ(lattice->a3[2], sqrt(8.0 / 3.0));
TEST_FAILURE(".*ERROR: Invalid option in lattice command for non-custom style.*",
TEST_FAILURE(".*ERROR: Invalid a2 option in lattice command for non-custom style.*",
command("lattice hcp 1.0 a2 0.0 1.0 0.0"););
TEST_FAILURE(".*ERROR: Invalid option in lattice command for non-custom style.*",
TEST_FAILURE(".*ERROR: Invalid a3 option in lattice command for non-custom style.*",
command("lattice hcp 1.0 a3 0.0 1.0 0.0"););
BEGIN_HIDE_OUTPUT();
command("dimension 2");
@ -452,9 +456,9 @@ TEST_F(LatticeRegionTest, lattice_custom)
ASSERT_DOUBLE_EQ(lattice->a3[1], 0.0);
ASSERT_DOUBLE_EQ(lattice->a3[2], 4.34 * sqrt(8.0 / 3.0));
TEST_FAILURE(".*ERROR: Illegal lattice command.*",
TEST_FAILURE(".*ERROR: Invalid lattice basis argument: -0.1.*",
command("lattice custom 1.0 basis -0.1 0 0"););
TEST_FAILURE(".*ERROR: Illegal lattice command.*",
TEST_FAILURE(".*ERROR: Invalid lattice basis argument: 1.*",
command("lattice custom 1.0 basis 0.0 1.0 0"););
BEGIN_HIDE_OUTPUT();

View File

@ -81,7 +81,7 @@ TEST_F(SimpleCommandsTest, Echo)
ASSERT_EQ(lmp->input->echo_log, 1);
TEST_FAILURE(".*ERROR: Illegal echo command.*", command("echo"););
TEST_FAILURE(".*ERROR: Illegal echo command.*", command("echo xxx"););
TEST_FAILURE(".*ERROR: Unknown echo keyword: xxx.*", command("echo xxx"););
}
TEST_F(SimpleCommandsTest, Log)

View File

@ -197,11 +197,11 @@ TEST_F(VariableTest, CreateDelete)
ASSERT_EQ(variable->internalstyle(variable->find("ten")), 1);
TEST_FAILURE(".*ERROR: Illegal variable command.*", command("variable"););
TEST_FAILURE(".*ERROR: Illegal variable command.*", command("variable dummy index"););
TEST_FAILURE(".*ERROR: Illegal variable command.*", command("variable dummy delete xxx"););
TEST_FAILURE(".*ERROR: Illegal variable command.*", command("variable dummy loop -1"););
TEST_FAILURE(".*ERROR: Illegal variable command.*", command("variable dummy loop 10 1"););
TEST_FAILURE(".*ERROR: Illegal variable command.*", command("variable dummy xxxx"););
TEST_FAILURE(".*ERROR: Illegal variable index command.*", command("variable dummy index"););
TEST_FAILURE(".*ERROR: Illegal variable delete command: expected 2 arguments but found 3.*", command("variable dummy delete xxx"););
TEST_FAILURE(".*ERROR: Invalid variable loop argument: -1.*", command("variable dummy loop -1"););
TEST_FAILURE(".*ERROR: Illegal variable loop command.*", command("variable dummy loop 10 1"););
TEST_FAILURE(".*ERROR: Unknown variable keyword: xxx.*", command("variable dummy xxxx"););
TEST_FAILURE(".*ERROR: Cannot redefine variable as a different style.*",
command("variable two string xxx"););
TEST_FAILURE(".*ERROR: Cannot redefine variable as a different style.*",