git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15071 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
@ -63,6 +63,7 @@ void PairTable::compute(int eflag, int vflag)
|
||||
int i,j,ii,jj,inum,jnum,itype,jtype,itable;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair;
|
||||
double rsq,factor_lj,fraction,value,a,b;
|
||||
char estr[128];
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
Table *tb;
|
||||
|
||||
@ -109,25 +110,37 @@ void PairTable::compute(int eflag, int vflag)
|
||||
|
||||
if (rsq < cutsq[itype][jtype]) {
|
||||
tb = &tables[tabindex[itype][jtype]];
|
||||
if (rsq < tb->innersq)
|
||||
error->one(FLERR,"Pair distance < table inner cutoff");
|
||||
if (rsq < tb->innersq) {
|
||||
sprintf(estr,"Pair distance < table inner cutoff: "
|
||||
"ijtype %d %d dist %g",itype,jtype,sqrt(rsq));
|
||||
error->one(FLERR,estr);
|
||||
}
|
||||
|
||||
if (tabstyle == LOOKUP) {
|
||||
itable = static_cast<int> ((rsq - tb->innersq) * tb->invdelta);
|
||||
if (itable >= tlm1)
|
||||
error->one(FLERR,"Pair distance > table outer cutoff");
|
||||
if (itable >= tlm1) {
|
||||
sprintf(estr,"Pair distance > table outer cutoff: "
|
||||
"ijtype %d %d dist %g",itype,jtype,sqrt(rsq));
|
||||
error->one(FLERR,estr);
|
||||
}
|
||||
fpair = factor_lj * tb->f[itable];
|
||||
} else if (tabstyle == LINEAR) {
|
||||
itable = static_cast<int> ((rsq - tb->innersq) * tb->invdelta);
|
||||
if (itable >= tlm1)
|
||||
error->one(FLERR,"Pair distance > table outer cutoff");
|
||||
if (itable >= tlm1) {
|
||||
sprintf(estr,"Pair distance > table outer cutoff: "
|
||||
"ijtype %d %d dist %g",itype,jtype,sqrt(rsq));
|
||||
error->one(FLERR,estr);
|
||||
}
|
||||
fraction = (rsq - tb->rsq[itable]) * tb->invdelta;
|
||||
value = tb->f[itable] + fraction*tb->df[itable];
|
||||
fpair = factor_lj * value;
|
||||
} else if (tabstyle == SPLINE) {
|
||||
itable = static_cast<int> ((rsq - tb->innersq) * tb->invdelta);
|
||||
if (itable >= tlm1)
|
||||
error->one(FLERR,"Pair distance > table outer cutoff");
|
||||
if (itable >= tlm1) {
|
||||
sprintf(estr,"Pair distance > table outer cutoff: "
|
||||
"ijtype %d %d dist %g",itype,jtype,sqrt(rsq));
|
||||
error->one(FLERR,estr);
|
||||
}
|
||||
b = (rsq - tb->rsq[itable]) * tb->invdelta;
|
||||
a = 1.0 - b;
|
||||
value = a * tb->f[itable] + b * tb->f[itable+1] +
|
||||
|
||||
Reference in New Issue
Block a user