forked from lijiext/lammps
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15071 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
parent
0a01592d0a
commit
9d3d6193f3
File diff suppressed because it is too large
Load Diff
|
@ -28,56 +28,9 @@ namespace LAMMPS_NS {
|
|||
class FixAveSpatial : public Fix {
|
||||
public:
|
||||
FixAveSpatial(class LAMMPS *, int, char **);
|
||||
~FixAveSpatial();
|
||||
int setmask();
|
||||
void init();
|
||||
void setup(int);
|
||||
void end_of_step();
|
||||
double compute_array(int,int);
|
||||
double memory_usage();
|
||||
|
||||
private:
|
||||
int me,nvalues;
|
||||
int nrepeat,nfreq,irepeat;
|
||||
bigint nvalid,nvalid_last;
|
||||
int ndim,normflag,regionflag,overwrite,discard;
|
||||
char *tstring,*sstring,*idregion;
|
||||
int *which,*argindex,*value2index;
|
||||
char **ids;
|
||||
FILE *fp;
|
||||
class Region *region;
|
||||
|
||||
int ave,nwindow,scaleflag;
|
||||
int norm,iwindow,window_limit;
|
||||
double xscale,yscale,zscale;
|
||||
double bin_volume;
|
||||
|
||||
long filepos;
|
||||
int dim[3],originflag[3],nlayers[3];
|
||||
double origin[3],delta[3];
|
||||
double offset[3],invdelta[3];
|
||||
|
||||
int maxvar;
|
||||
double *varatom;
|
||||
|
||||
int maxatom;
|
||||
int *bin;
|
||||
|
||||
int nbins,maxbin;
|
||||
double **coord;
|
||||
double *count_one,*count_many,*count_sum;
|
||||
double **values_one,**values_many,**values_sum;
|
||||
double *count_total,**count_list;
|
||||
double **values_total,***values_list;
|
||||
|
||||
int minflag[3],maxflag[3];
|
||||
double minvalue[3],maxvalue[3];
|
||||
|
||||
void setup_bins();
|
||||
void atom2bin1d();
|
||||
void atom2bin2d();
|
||||
void atom2bin3d();
|
||||
bigint nextvalid();
|
||||
~FixAveSpatial() {}
|
||||
int setmask() {}
|
||||
void init() {}
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -87,106 +40,10 @@ class FixAveSpatial : public Fix {
|
|||
|
||||
/* ERROR/WARNING messages:
|
||||
|
||||
W: The fix ave/spatial command has been replaced by the more flexible fix ave/chunk and compute chunk/atom commands -- fix ave/spatial will be removed in the summer of 2015
|
||||
E: The fix ave/spatial command has been removed from LAMMPS
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
E: Illegal ... command
|
||||
|
||||
Self-explanatory. Check the input script syntax and compare to the
|
||||
documentation for the command. You can use -echo screen as a
|
||||
command-line option when running LAMMPS to see the offending line.
|
||||
|
||||
E: Cannot use fix ave/spatial z for 2 dimensional model
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
E: Same dimension twice in fix ave/spatial
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
E: No input values for fix ave/spatial
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
E: Region ID for fix ave/spatial does not exist
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
E: Cannot open fix ave/spatial file %s
|
||||
|
||||
The specified file cannot be opened. Check that the path and name are
|
||||
correct.
|
||||
|
||||
E: Compute ID for fix ave/spatial does not exist
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
E: Fix ave/spatial compute does not calculate per-atom values
|
||||
|
||||
A compute used by fix ave/spatial must generate per-atom values.
|
||||
|
||||
E: Fix ave/spatial compute does not calculate a per-atom vector
|
||||
|
||||
A compute used by fix ave/spatial must generate per-atom values.
|
||||
|
||||
E: Fix ave/spatial compute does not calculate a per-atom array
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
E: Fix ave/spatial compute vector is accessed out-of-range
|
||||
|
||||
The index for the vector is out of bounds.
|
||||
|
||||
E: Fix ID for fix ave/spatial does not exist
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
E: Fix ave/spatial fix does not calculate per-atom values
|
||||
|
||||
A fix used by fix ave/spatial must generate per-atom values.
|
||||
|
||||
E: Fix ave/spatial fix does not calculate a per-atom vector
|
||||
|
||||
A fix used by fix ave/spatial must generate per-atom values.
|
||||
|
||||
E: Fix ave/spatial fix does not calculate a per-atom array
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
E: Fix ave/spatial fix vector is accessed out-of-range
|
||||
|
||||
The index for the vector is out of bounds.
|
||||
|
||||
E: Variable name for fix ave/spatial does not exist
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
E: Fix ave/spatial variable is not atom-style variable
|
||||
|
||||
A variable used by fix ave/spatial must generate per-atom values.
|
||||
|
||||
E: Fix ave/spatial for triclinic boxes requires units reduced
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
E: Fix ave/spatial settings invalid with changing box size
|
||||
|
||||
If the box size changes, only the units reduced option can be
|
||||
used.
|
||||
|
||||
E: Fix for fix ave/spatial not computed at compatible time
|
||||
|
||||
Fixes generate their values on specific timesteps. Fix ave/spatial is
|
||||
requesting a value on a non-allowed timestep.
|
||||
|
||||
E: Invalid timestep reset for fix ave/spatial
|
||||
|
||||
Resetting the timestep has invalidated the sequence of timesteps this
|
||||
fix needs to process.
|
||||
|
||||
E: Invalid bin bounds in fix ave/spatial
|
||||
|
||||
The lo/hi values are inconsistent.
|
||||
It has been replaced by the more flexible fix ave/chunk and compute
|
||||
chunk/atom commands. All the fix ave/spatial keywords and options are
|
||||
available in those two newer commands.
|
||||
|
||||
*/
|
||||
|
|
|
@ -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] +
|
||||
|
|
Loading…
Reference in New Issue