improve error messages

This commit is contained in:
Axel Kohlmeyer
2022-09-10 19:43:04 -04:00
parent 67f6adebb7
commit e45fa36717
2 changed files with 11 additions and 12 deletions

View File

@ -61,7 +61,7 @@ void WriteRestart::command(int narg, char **arg)
{
if (domain->box_exist == 0)
error->all(FLERR,"Write_restart command before simulation box is defined");
if (narg < 1) error->all(FLERR,"Illegal write_restart command");
if (narg < 1) utils::missing_cmd_args(FLERR, "write_restart", error);
// if filename contains a "*", replace with current timestep
@ -154,11 +154,11 @@ void WriteRestart::multiproc_options(int multiproc_caller, int mpiioflag_caller,
int iarg = 0;
while (iarg < narg) {
if (strcmp(arg[iarg],"fileper") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal write_restart command");
if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "write_restart", error);
if (!multiproc)
error->all(FLERR,"Cannot use write_restart fileper without % in restart file name");
int nper = utils::inumeric(FLERR,arg[iarg+1],false,lmp);
if (nper <= 0) error->all(FLERR,"Illegal write_restart command");
if (nper <= 0) error->all(FLERR,"Invalue write_restart fileper value {}:", nper);
multiproc = nprocs/nper;
if (nprocs % nper) multiproc++;
@ -171,11 +171,11 @@ void WriteRestart::multiproc_options(int multiproc_caller, int mpiioflag_caller,
iarg += 2;
} else if (strcmp(arg[iarg],"nfile") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal write_restart command");
if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "write_restart nfile", error);
if (!multiproc)
error->all(FLERR,"Cannot use write_restart nfile without % in restart file name");
int nfile = utils::inumeric(FLERR,arg[iarg+1],false,lmp);
if (nfile <= 0) error->all(FLERR,"Illegal write_restart command");
if (nfile <= 0) error->all(FLERR,"Invalid write_restart nfile value {}", nfile);
nfile = MIN(nfile,nprocs);
multiproc = nfile;
@ -195,7 +195,7 @@ void WriteRestart::multiproc_options(int multiproc_caller, int mpiioflag_caller,
} else if (strcmp(arg[iarg],"noinit") == 0) {
noinit = 1;
iarg++;
} else error->all(FLERR,"Illegal write_restart command");
} else error->all(FLERR,"Unknown write_restart keyword: {}", arg[iarg]);
}
}
@ -221,7 +221,8 @@ void WriteRestart::write(const std::string &file)
bigint nblocal = atom->nlocal;
MPI_Allreduce(&nblocal,&natoms,1,MPI_LMP_BIGINT,MPI_SUM,world);
if (natoms != atom->natoms && output->thermo->lostflag == Thermo::ERROR)
error->all(FLERR,"Atom count is inconsistent, cannot write restart file");
error->all(FLERR,"Atom count is inconsistent: {} vs {}, cannot write restart file",
natoms, atom->natoms);
// open single restart file or base file for multiproc case
@ -231,8 +232,7 @@ void WriteRestart::write(const std::string &file)
fp = fopen(base.c_str(),"wb");
if (fp == nullptr)
error->one(FLERR, "Cannot open restart file {}: {}",
base, utils::getsyserror());
error->one(FLERR, "Cannot open restart file {}: {}", base, utils::getsyserror());
}
// proc 0 writes magic string, endian flag, numeric version
@ -294,8 +294,7 @@ void WriteRestart::write(const std::string &file)
if (filewriter) {
fp = fopen(multiname.c_str(),"wb");
if (fp == nullptr)
error->one(FLERR, "Cannot open restart file {}: {}",
multiname, utils::getsyserror());
error->one(FLERR, "Cannot open restart file {}: {}", multiname, utils::getsyserror());
write_int(PROCSPERFILE,nclusterprocs);
}
}

View File

@ -348,7 +348,7 @@ TEST_F(FileOperationsTest, write_restart)
}
TEST_FAILURE(".*ERROR: Illegal write_restart command.*", command("write_restart"););
TEST_FAILURE(".*ERROR: Illegal write_restart command.*",
TEST_FAILURE(".*ERROR: Unknown write_restart keyword: xxxx.*",
command("write_restart test.restart xxxx"););
TEST_FAILURE(".*ERROR on proc 0: Cannot open restart file some_crazy_dir/test.restart:"
" No such file or directory.*",