better error messages

This commit is contained in:
Axel Kohlmeyer
2022-04-29 21:59:37 -04:00
parent 31d6af6114
commit f5113aa84a

View File

@ -51,7 +51,7 @@ void DeleteAtoms::command(int narg, char **arg)
{ {
if (domain->box_exist == 0) if (domain->box_exist == 0)
error->all(FLERR,"Delete_atoms command before simulation box is defined"); error->all(FLERR,"Delete_atoms command before simulation box is defined");
if (narg < 1) error->all(FLERR,"Illegal delete_atoms command"); if (narg < 1) utils::missing_cmd_args(FLERR,"delete_atoms", error);
if (atom->tag_enable == 0) if (atom->tag_enable == 0)
error->all(FLERR,"Cannot use delete_atoms unless atoms have IDs"); error->all(FLERR,"Cannot use delete_atoms unless atoms have IDs");
@ -179,15 +179,12 @@ void DeleteAtoms::command(int narg, char **arg)
bigint ndelete_impropers = nimpropers_previous - atom->nimpropers; bigint ndelete_impropers = nimpropers_previous - atom->nimpropers;
if (comm->me == 0) { if (comm->me == 0) {
std::string mesg = fmt::format("Deleted {} atoms, new total = {}\n", std::string mesg = fmt::format("Deleted {} atoms, new total = {}\n", ndelete, atom->natoms);
ndelete,atom->natoms);
if (bond_flag || mol_flag) { if (bond_flag || mol_flag) {
if (nbonds_previous) if (nbonds_previous)
mesg += fmt::format("Deleted {} bonds, new total = {}\n", mesg += fmt::format("Deleted {} bonds, new total = {}\n", ndelete_bonds, atom->nbonds);
ndelete_bonds,atom->nbonds);
if (nangles_previous) if (nangles_previous)
mesg += fmt::format("Deleted {} angles, new total = {}\n", mesg += fmt::format("Deleted {} angles, new total = {}\n", ndelete_angles, atom->nangles);
ndelete_angles,atom->nangles);
if (ndihedrals_previous) if (ndihedrals_previous)
mesg += fmt::format("Deleted {} dihedrals, new total = {}\n", mesg += fmt::format("Deleted {} dihedrals, new total = {}\n",
ndelete_dihedrals,atom->ndihedrals); ndelete_dihedrals,atom->ndihedrals);
@ -205,10 +202,10 @@ void DeleteAtoms::command(int narg, char **arg)
void DeleteAtoms::delete_group(int narg, char **arg) void DeleteAtoms::delete_group(int narg, char **arg)
{ {
if (narg < 2) error->all(FLERR,"Illegal delete_atoms command"); if (narg < 2) utils::missing_cmd_args(FLERR,"delete_atoms group", error);
int igroup = group->find(arg[1]); int igroup = group->find(arg[1]);
if (igroup == -1) error->all(FLERR,"Could not find delete_atoms group ID"); if (igroup == -1) error->all(FLERR,"Could not find delete_atoms group ID {}", arg[1]);
options(narg-2,&arg[2]); options(narg-2,&arg[2]);
// check for special case of group = all // check for special case of group = all
@ -237,10 +234,10 @@ void DeleteAtoms::delete_group(int narg, char **arg)
void DeleteAtoms::delete_region(int narg, char **arg) void DeleteAtoms::delete_region(int narg, char **arg)
{ {
if (narg < 2) error->all(FLERR,"Illegal delete_atoms command"); if (narg < 2) utils::missing_cmd_args(FLERR,"delete_atoms region", error);
auto iregion = domain->get_region_by_id(arg[1]); auto iregion = domain->get_region_by_id(arg[1]);
if (!iregion) error->all(FLERR,"Could not find delete_atoms region ID"); if (!iregion) error->all(FLERR,"Could not find delete_atoms region ID {}", arg[1]);
iregion->prematch(); iregion->prematch();
options(narg-2,&arg[2]); options(narg-2,&arg[2]);
@ -266,7 +263,7 @@ void DeleteAtoms::delete_region(int narg, char **arg)
void DeleteAtoms::delete_overlap(int narg, char **arg) void DeleteAtoms::delete_overlap(int narg, char **arg)
{ {
if (narg < 4) error->all(FLERR,"Illegal delete_atoms command"); if (narg < 4) utils::missing_cmd_args(FLERR,"delete_atoms overlap", error);
// read args // read args
@ -276,7 +273,7 @@ void DeleteAtoms::delete_overlap(int narg, char **arg)
int igroup1 = group->find(arg[2]); int igroup1 = group->find(arg[2]);
int igroup2 = group->find(arg[3]); int igroup2 = group->find(arg[3]);
if (igroup1 < 0 || igroup2 < 0) if (igroup1 < 0 || igroup2 < 0)
error->all(FLERR,"Could not find delete_atoms group ID"); error->all(FLERR,"Could not find delete_atoms group ID {}", arg[1]);
options(narg-4,&arg[4]); options(narg-4,&arg[4]);
int group1bit = group->bitmask[igroup1]; int group1bit = group->bitmask[igroup1];
@ -418,14 +415,14 @@ void DeleteAtoms::delete_overlap(int narg, char **arg)
void DeleteAtoms::delete_porosity(int narg, char **arg) void DeleteAtoms::delete_porosity(int narg, char **arg)
{ {
if (narg < 5) error->all(FLERR,"Illegal delete_atoms command"); if (narg < 5) utils::missing_cmd_args(FLERR,"delete_atoms porosity", error);
int igroup = group->find(arg[1]); int igroup = group->find(arg[1]);
if (igroup == -1) error->all(FLERR,"Could not find delete_atoms group ID"); if (igroup == -1) error->all(FLERR,"Could not find delete_atoms porosity group ID {}", arg[1]);
auto iregion = domain->get_region_by_id(arg[2]); auto iregion = domain->get_region_by_id(arg[2]);
if (!iregion && (strcmp(arg[2],"NULL") != 0)) if (!iregion && (strcmp(arg[2],"NULL") != 0))
error->all(FLERR,"Could not find delete_atoms region ID"); error->all(FLERR,"Could not find delete_atoms porosity region ID {}", arg[2]);
double porosity_fraction = utils::numeric(FLERR,arg[3],false,lmp); double porosity_fraction = utils::numeric(FLERR,arg[3],false,lmp);
int seed = utils::inumeric(FLERR,arg[4],false,lmp); int seed = utils::inumeric(FLERR,arg[4],false,lmp);
@ -776,23 +773,23 @@ void DeleteAtoms::options(int narg, char **arg)
int iarg = 0; int iarg = 0;
while (iarg < narg) { while (iarg < narg) {
if (strcmp(arg[iarg],"compress") == 0) { if (strcmp(arg[iarg],"compress") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal delete_atoms command"); if (iarg+2 > narg) utils::missing_cmd_args(FLERR,"delete_atoms compress", error);
compress_flag = utils::logical(FLERR,arg[iarg+1],false,lmp); compress_flag = utils::logical(FLERR,arg[iarg+1],false,lmp);
iarg += 2; iarg += 2;
} else if (strcmp(arg[iarg],"bond") == 0) { } else if (strcmp(arg[iarg],"bond") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal delete_atoms command"); if (iarg+2 > narg) utils::missing_cmd_args(FLERR,"delete_atoms bond", error);
if (atom->molecular == Atom::ATOMIC) if (atom->molecular == Atom::ATOMIC)
error->all(FLERR,"Cannot delete_atoms bond yes for non-molecular systems"); error->all(FLERR,"Cannot use delete_atoms bond yes for non-molecular systems");
if (atom->molecular == Atom::TEMPLATE) if (atom->molecular == Atom::TEMPLATE)
error->all(FLERR,"Cannot use delete_atoms bond yes with atom_style template"); error->all(FLERR,"Cannot use delete_atoms bond yes with atom_style template");
bond_flag = utils::logical(FLERR,arg[iarg+1],false,lmp); bond_flag = utils::logical(FLERR,arg[iarg+1],false,lmp);
iarg += 2; iarg += 2;
} else if (strcmp(arg[iarg],"mol") == 0) { } else if (strcmp(arg[iarg],"mol") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal delete_atoms command"); if (iarg+2 > narg) utils::missing_cmd_args(FLERR,"delete_atoms mol", error);
if (atom->molecule_flag == 0) if (atom->molecule_flag == 0)
error->all(FLERR,"Delete_atoms mol yes requires atom attribute molecule"); error->all(FLERR,"Delete_atoms mol yes requires atom attribute molecule");
mol_flag = utils::logical(FLERR,arg[iarg+1],false,lmp); mol_flag = utils::logical(FLERR,arg[iarg+1],false,lmp);
iarg += 2; iarg += 2;
} else error->all(FLERR,"Illegal delete_atoms command"); } else error->all(FLERR,"Unknown delete_atoms option: {}",arg[iarg]);
} }
} }