improve error messages
This commit is contained in:
@ -37,14 +37,14 @@ using namespace FixConst;
|
|||||||
FixPair::FixPair(LAMMPS *lmp, int narg, char **arg) :
|
FixPair::FixPair(LAMMPS *lmp, int narg, char **arg) :
|
||||||
Fix(lmp, narg, arg)
|
Fix(lmp, narg, arg)
|
||||||
{
|
{
|
||||||
if (narg < 7) error->all(FLERR,"Illegal fix pair command");
|
if (narg < 7) utils::missing_cmd_args(FLERR, "fix pair", error);
|
||||||
|
|
||||||
nevery = utils::inumeric(FLERR,arg[3],false,lmp);
|
nevery = utils::inumeric(FLERR,arg[3],false,lmp);
|
||||||
if (nevery < 1) error->all(FLERR,"Illegal fix pair command");
|
if (nevery < 1) error->all(FLERR,"Illegal fix pair every value: {}", nevery);
|
||||||
|
|
||||||
pairname = utils::strdup(arg[4]);
|
pairname = utils::strdup(arg[4]);
|
||||||
pstyle = force->pair_match(pairname,1,0);
|
pstyle = force->pair_match(pairname,1,0);
|
||||||
if (pstyle == nullptr) error->all(FLERR,"Fix pair pair style not found");
|
if (pstyle == nullptr) error->all(FLERR,"Pair style {} for fix pair not found", pairname);
|
||||||
|
|
||||||
nfield = (narg-5) / 2;
|
nfield = (narg-5) / 2;
|
||||||
fieldname = new char*[nfield];
|
fieldname = new char*[nfield];
|
||||||
@ -54,12 +54,12 @@ FixPair::FixPair(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
int iarg = 5;
|
int iarg = 5;
|
||||||
|
|
||||||
while (iarg < narg) {
|
while (iarg < narg) {
|
||||||
if (iarg+2 > narg) error->all(FLERR,"Illegal fix pair command");
|
if (iarg+2 > narg) utils::missing_cmd_args(FLERR, fmt::format("fix pair {}", arg[iarg]), error);
|
||||||
fieldname[nfield] = utils::strdup(arg[iarg]);
|
fieldname[nfield] = utils::strdup(arg[iarg]);
|
||||||
int flag = utils::inumeric(FLERR,arg[iarg+1],true,lmp);
|
int flag = utils::inumeric(FLERR,arg[iarg+1],true,lmp);
|
||||||
if (flag == 0) trigger[nfield] = 0;
|
if (flag == 0) trigger[nfield] = 0;
|
||||||
else if (flag == 1) trigger[nfield] = 1;
|
else if (flag == 1) trigger[nfield] = 1;
|
||||||
else error->all(FLERR,"Illegal fix pair command");
|
else error->all(FLERR,"Illegal fix pair {} command flag: {}", arg[iarg], arg[iarg+1]);
|
||||||
nfield++;
|
nfield++;
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
}
|
}
|
||||||
@ -70,10 +70,7 @@ FixPair::FixPair(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
|
|
||||||
for (int ifield = 0; ifield < nfield; ifield++) {
|
for (int ifield = 0; ifield < nfield; ifield++) {
|
||||||
if (trigger[ifield] == 0) triggername[ifield] = nullptr;
|
if (trigger[ifield] == 0) triggername[ifield] = nullptr;
|
||||||
else {
|
else triggername[nfield] = utils::strdup(fmt::format("{}_flag", fieldname[ifield]));
|
||||||
auto str = fmt::format("%s_flag", fieldname[ifield]);
|
|
||||||
triggername[nfield] = utils::strdup(str);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// extract all fields just to get number of per-atom values
|
// extract all fields just to get number of per-atom values
|
||||||
@ -94,10 +91,10 @@ FixPair::FixPair(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
int dim;
|
int dim;
|
||||||
triggerptr[ifield] = (int *) pstyle->extract(triggername[ifield],dim);
|
triggerptr[ifield] = (int *) pstyle->extract(triggername[ifield],dim);
|
||||||
if (!triggerptr[ifield])
|
if (!triggerptr[ifield])
|
||||||
error->all(FLERR,"Fix pair pair style cannot extract {}",
|
error->all(FLERR,"Fix pair pair style cannot extract {}", triggername[ifield]);
|
||||||
triggername[ifield]);
|
if (dim)
|
||||||
if (dim) error->all(FLERR,"Fix pair pair style {} is not a scalar",
|
error->all(FLERR,"Fix pair pair style {} trigger {} is not a scalar",
|
||||||
triggername[ifield]);
|
pairname, triggername[ifield]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,16 +142,16 @@ FixPair::~FixPair()
|
|||||||
|
|
||||||
atom->delete_callback(id,Atom::GROW);
|
atom->delete_callback(id,Atom::GROW);
|
||||||
|
|
||||||
delete [] pairname;
|
delete[] pairname;
|
||||||
for (int ifield = 0; ifield < nfield; ifield++) {
|
for (int ifield = 0; ifield < nfield; ifield++) {
|
||||||
delete [] fieldname[ifield];
|
delete[] fieldname[ifield];
|
||||||
delete [] triggername[ifield];
|
delete[] triggername[ifield];
|
||||||
}
|
}
|
||||||
|
|
||||||
delete [] fieldname;
|
delete[] fieldname;
|
||||||
delete [] trigger;
|
delete[] trigger;
|
||||||
delete [] triggername;
|
delete[] triggername;
|
||||||
delete [] triggerptr;
|
delete[] triggerptr;
|
||||||
|
|
||||||
if (ncols == 1) memory->destroy(vector);
|
if (ncols == 1) memory->destroy(vector);
|
||||||
else memory->destroy(array);
|
else memory->destroy(array);
|
||||||
@ -179,7 +176,7 @@ void FixPair::init()
|
|||||||
// insure pair style still exists
|
// insure pair style still exists
|
||||||
|
|
||||||
pstyle = force->pair_match(pairname,1,0);
|
pstyle = force->pair_match(pairname,1,0);
|
||||||
if (pstyle == nullptr) error->all(FLERR,"Fix pair pair style not found");
|
if (pstyle == nullptr) error->all(FLERR,"Pair style {} for fix pair not found", pairname);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|||||||
Reference in New Issue
Block a user