git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@13762 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp 2015-07-28 21:27:28 +00:00
parent 73feacbec7
commit 783fa298aa
1 changed files with 27 additions and 31 deletions

View File

@ -460,6 +460,7 @@ void PairHybrid::init_style()
}
// check if special_lj/special_coul overrides are compatible
for (istyle = 0; istyle < nstyles; istyle++) {
if (special_lj[istyle]) {
for (i = 1; i < 4; ++i) {
@ -795,10 +796,7 @@ void PairHybrid::modify_params(int narg, char **arg)
{
if (narg == 0) error->all(FLERR,"Illegal pair_modify command");
// if 1st keyword is pair, then apply args to one sub-style
// else pass args to every sub-style
// also apply all args (except pair) to pair hybrid itself
// important for some keywords like tail or compute
// if 1st keyword is pair, apply other keywords to one sub-style
if (strcmp(arg[0],"pair") == 0) {
if (narg < 2) error->all(FLERR,"Illegal pair_modify command");
@ -806,41 +804,39 @@ void PairHybrid::modify_params(int narg, char **arg)
for (m = 0; m < nstyles; m++)
if (strcmp(arg[1],keywords[m]) == 0) break;
if (m == nstyles) error->all(FLERR,"Unknown pair_modify hybrid sub-style");
if (multiple[m] == 0) {
// augment special settings for this one pair style
if (strcmp(arg[2],"special") == 0) {
if (narg < 7) error->all(FLERR,"Illegal pair_modify special command");
modify_special(m,narg-3,&arg[3]);
} else {
Pair::modify_params(narg-2,&arg[2]);
styles[m]->modify_params(narg-2,&arg[2]);
}
} else {
int iarg = 2;
if (multiple[m]) {
if (narg < 3) error->all(FLERR,"Illegal pair_modify command");
int multiflag = force->inumeric(FLERR,arg[2]);
for (m = 0; m < nstyles; m++)
if (strcmp(arg[1],keywords[m]) == 0 && multiflag == multiple[m]) break;
if (m == nstyles)
error->all(FLERR,"Unknown pair_modify hybrid sub-style");
// augment special settings for this one pair style
if (strcmp(arg[3],"special") == 0) {
if (narg < 8) error->all(FLERR,"Illegal pair_modify special command");
modify_special(m,narg-4,&arg[4]);
} else {
Pair::modify_params(narg-3,&arg[3]);
styles[m]->modify_params(narg-3,&arg[3]);
}
iarg = 3;
}
// if 2nd keyword (after pair) is special:
// invoke modify_special() for the sub-style
if (iarg < narg && strcmp(arg[iarg],"special") == 0) {
if (iarg+4 < narg)
error->all(FLERR,"Illegal pair_modify special command");
modify_special(m,narg-iarg,&arg[iarg]);
iarg += 4;
}
// apply all keywords (except pair and special) to pair hybrid itself
// important for some keywords like tail or compute
Pair::modify_params(narg-iarg,&arg[iarg]);
styles[m]->modify_params(narg-iarg,&arg[iarg]);
// apply all keywords to pair hybrid itself and every sub-style
} else {
// augment special settings for all pair styles
if (strcmp(arg[0],"special") == 0) {
if (narg < 5) error->all(FLERR,"Illegal pair_modify special command");
for (int m = 0; m < nstyles; m++) modify_special(m,narg-1,&arg[1]);
} else {
Pair::modify_params(narg,arg);
for (int m = 0; m < nstyles; m++) styles[m]->modify_params(narg,arg);
}
Pair::modify_params(narg,arg);
for (int m = 0; m < nstyles; m++) styles[m]->modify_params(narg,arg);
}
}