More
This commit is contained in:
@ -345,7 +345,7 @@ void MLIAPDescriptorSNAP::read_paramfile(char *paramfilename)
|
||||
chemflag = 0;
|
||||
bnormflag = 0;
|
||||
wselfallflag = 0;
|
||||
switchinnerflag = 1;
|
||||
switchinnerflag = 0;
|
||||
|
||||
for (int i = 0; i < nelements; i++) delete[] elements[i];
|
||||
delete[] elements;
|
||||
|
||||
@ -54,7 +54,7 @@ ComputeSNAAtom::ComputeSNAAtom(LAMMPS *lmp, int narg, char **arg) :
|
||||
chemflag = 0;
|
||||
bnormflag = 0;
|
||||
wselfallflag = 0;
|
||||
switchinnerflag = 1;
|
||||
switchinnerflag = 0;
|
||||
nelements = 1;
|
||||
|
||||
// offset by 1 to match up with types
|
||||
|
||||
@ -54,7 +54,7 @@ ComputeSNADAtom::ComputeSNADAtom(LAMMPS *lmp, int narg, char **arg) :
|
||||
chemflag = 0;
|
||||
bnormflag = 0;
|
||||
wselfallflag = 0;
|
||||
switchinnerflag = 1;
|
||||
switchinnerflag = 0;
|
||||
nelements = 1;
|
||||
|
||||
// process required arguments
|
||||
|
||||
@ -61,7 +61,7 @@ ComputeSnap::ComputeSnap(LAMMPS *lmp, int narg, char **arg) :
|
||||
chemflag = 0;
|
||||
bnormflag = 0;
|
||||
wselfallflag = 0;
|
||||
switchinnerflag = 1;
|
||||
switchinnerflag = 0;
|
||||
nelements = 1;
|
||||
|
||||
// process required arguments
|
||||
|
||||
@ -53,7 +53,7 @@ ComputeSNAVAtom::ComputeSNAVAtom(LAMMPS *lmp, int narg, char **arg) :
|
||||
chemflag = 0;
|
||||
bnormflag = 0;
|
||||
wselfallflag = 0;
|
||||
switchinnerflag = 1;
|
||||
switchinnerflag = 0;
|
||||
nelements = 1;
|
||||
|
||||
// process required arguments
|
||||
|
||||
@ -674,7 +674,8 @@ void PairSNAP::read_files(char *coefffilename, char *paramfilename)
|
||||
if (eof) break;
|
||||
MPI_Bcast(line,MAXLINE,MPI_CHAR,0,world);
|
||||
|
||||
// strip comment, skip line if blank
|
||||
// words = ptrs to all words in line
|
||||
// strip single and double quotes from words
|
||||
|
||||
std::vector<std::string> words;
|
||||
try {
|
||||
@ -684,12 +685,46 @@ void PairSNAP::read_files(char *coefffilename, char *paramfilename)
|
||||
}
|
||||
|
||||
if (words.size() == 0) continue;
|
||||
|
||||
if (words.size() < 2)
|
||||
error->all(FLERR,"Incorrect format in SNAP parameter file");
|
||||
|
||||
auto keywd = words[0];
|
||||
auto keyval = words[1];
|
||||
|
||||
// check for keywords with one value per element
|
||||
|
||||
if (keywd == "rinner" || keywd == "drinner") {
|
||||
|
||||
if (nwords != nelements+1)
|
||||
error->all(FLERR,"Incorrect SNAP parameter file");
|
||||
|
||||
if (comm->me == 0)
|
||||
utils::logmesg(lmp,"SNAP keyword {} {} ... \n", keywd, keyval);
|
||||
|
||||
if (keywd == "rinner") {
|
||||
for (int ielem = 0; ielem < nelements; ielem++) {
|
||||
rinnerelem[ielem] = utils::numeric(FLERR,keyval,false,lmp);
|
||||
keyval = strtok(nullptr,"' \t\n\r\f");
|
||||
}
|
||||
rinnerflag = 1;
|
||||
} else if (keywd == "drinner") {
|
||||
printf("drinner nelements = %d %s\n",nelements,keyval.c_str());
|
||||
for (int ielem = 0; ielem < nelements; ielem++) {
|
||||
drinnerelem[ielem] = utils::numeric(FLERR,keyval,false,lmp);
|
||||
keyval = strtok(nullptr,"' \t\n\r\f");
|
||||
printf("drinner ielem = %d drinnerelem[ielem] = %g\n",ielem,drinnerelem[ielem]);
|
||||
}
|
||||
drinnerflag = 1;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// all other keywords take one value
|
||||
|
||||
if (nwords != 2)
|
||||
error->all(FLERR,"Incorrect SNAP parameter file");
|
||||
|
||||
if (comm->me == 0)
|
||||
utils::logmesg(lmp,"SNAP keyword {} {}\n",keywd,keyval);
|
||||
|
||||
@ -721,21 +756,10 @@ void PairSNAP::read_files(char *coefffilename, char *paramfilename)
|
||||
chunksize = utils::inumeric(FLERR,keyval,false,lmp);
|
||||
else if (keywd == "parallelthresh")
|
||||
parallel_thresh = utils::inumeric(FLERR,keyval,false,lmp);
|
||||
else if (keywd == "rinner") {
|
||||
for (int ielem = 0; ielem < nelements; ielem++) {
|
||||
rinnerelem[ielem] = utils::numeric(FLERR,keyval,false,lmp);
|
||||
keyval = strtok(nullptr,"' \t\n\r\f");
|
||||
}
|
||||
rinnerflag = 1;
|
||||
} else if (keywd == "drinner") {
|
||||
for (int ielem = 0; ielem < nelements; ielem++) {
|
||||
drinnerelem[ielem] = utils::numeric(FLERR,keyval,false,lmp);
|
||||
keyval = strtok(nullptr,"' \t\n\r\f");
|
||||
}
|
||||
drinnerflag = 1;
|
||||
} else
|
||||
else
|
||||
error->all(FLERR,"Unknown parameter '{}' in SNAP parameter file", keywd);
|
||||
}
|
||||
}
|
||||
|
||||
if (rcutfacflag == 0 || twojmaxflag == 0)
|
||||
error->all(FLERR,"Incorrect SNAP parameter file");
|
||||
|
||||
Reference in New Issue
Block a user