This commit is contained in:
Aidan Thompson
2022-03-11 16:41:22 -07:00
parent 5216a543ae
commit f691805062
6 changed files with 73 additions and 49 deletions

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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");