git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15071 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@ -28,56 +28,9 @@ namespace LAMMPS_NS {
|
|||||||
class FixAveSpatial : public Fix {
|
class FixAveSpatial : public Fix {
|
||||||
public:
|
public:
|
||||||
FixAveSpatial(class LAMMPS *, int, char **);
|
FixAveSpatial(class LAMMPS *, int, char **);
|
||||||
~FixAveSpatial();
|
~FixAveSpatial() {}
|
||||||
int setmask();
|
int setmask() {}
|
||||||
void init();
|
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();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -87,106 +40,10 @@ class FixAveSpatial : public Fix {
|
|||||||
|
|
||||||
/* ERROR/WARNING messages:
|
/* 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.
|
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
|
||||||
E: Illegal ... command
|
available in those two newer commands.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -63,6 +63,7 @@ void PairTable::compute(int eflag, int vflag)
|
|||||||
int i,j,ii,jj,inum,jnum,itype,jtype,itable;
|
int i,j,ii,jj,inum,jnum,itype,jtype,itable;
|
||||||
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair;
|
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair;
|
||||||
double rsq,factor_lj,fraction,value,a,b;
|
double rsq,factor_lj,fraction,value,a,b;
|
||||||
|
char estr[128];
|
||||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||||
Table *tb;
|
Table *tb;
|
||||||
|
|
||||||
@ -109,25 +110,37 @@ void PairTable::compute(int eflag, int vflag)
|
|||||||
|
|
||||||
if (rsq < cutsq[itype][jtype]) {
|
if (rsq < cutsq[itype][jtype]) {
|
||||||
tb = &tables[tabindex[itype][jtype]];
|
tb = &tables[tabindex[itype][jtype]];
|
||||||
if (rsq < tb->innersq)
|
if (rsq < tb->innersq) {
|
||||||
error->one(FLERR,"Pair distance < table inner cutoff");
|
sprintf(estr,"Pair distance < table inner cutoff: "
|
||||||
|
"ijtype %d %d dist %g",itype,jtype,sqrt(rsq));
|
||||||
|
error->one(FLERR,estr);
|
||||||
|
}
|
||||||
|
|
||||||
if (tabstyle == LOOKUP) {
|
if (tabstyle == LOOKUP) {
|
||||||
itable = static_cast<int> ((rsq - tb->innersq) * tb->invdelta);
|
itable = static_cast<int> ((rsq - tb->innersq) * tb->invdelta);
|
||||||
if (itable >= tlm1)
|
if (itable >= tlm1) {
|
||||||
error->one(FLERR,"Pair distance > table outer cutoff");
|
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];
|
fpair = factor_lj * tb->f[itable];
|
||||||
} else if (tabstyle == LINEAR) {
|
} else if (tabstyle == LINEAR) {
|
||||||
itable = static_cast<int> ((rsq - tb->innersq) * tb->invdelta);
|
itable = static_cast<int> ((rsq - tb->innersq) * tb->invdelta);
|
||||||
if (itable >= tlm1)
|
if (itable >= tlm1) {
|
||||||
error->one(FLERR,"Pair distance > table outer cutoff");
|
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;
|
fraction = (rsq - tb->rsq[itable]) * tb->invdelta;
|
||||||
value = tb->f[itable] + fraction*tb->df[itable];
|
value = tb->f[itable] + fraction*tb->df[itable];
|
||||||
fpair = factor_lj * value;
|
fpair = factor_lj * value;
|
||||||
} else if (tabstyle == SPLINE) {
|
} else if (tabstyle == SPLINE) {
|
||||||
itable = static_cast<int> ((rsq - tb->innersq) * tb->invdelta);
|
itable = static_cast<int> ((rsq - tb->innersq) * tb->invdelta);
|
||||||
if (itable >= tlm1)
|
if (itable >= tlm1) {
|
||||||
error->one(FLERR,"Pair distance > table outer cutoff");
|
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;
|
b = (rsq - tb->rsq[itable]) * tb->invdelta;
|
||||||
a = 1.0 - b;
|
a = 1.0 - b;
|
||||||
value = a * tb->f[itable] + b * tb->f[itable+1] +
|
value = a * tb->f[itable] + b * tb->f[itable+1] +
|
||||||
|
|||||||
Reference in New Issue
Block a user