Updating to master, misc style changes
This commit is contained in:
@ -98,7 +98,7 @@ void NPairFullMultiOmp::build(NeighList *list)
|
||||
for (jcollection = 0; jcollection < ncollections; jcollection++) {
|
||||
|
||||
// if same collection use own bin
|
||||
if(icollection == jcollection) jbin = ibin;
|
||||
if (icollection == jcollection) jbin = ibin;
|
||||
else jbin = coord2bin(x[i], jcollection);
|
||||
|
||||
// loop over all atoms in surrounding bins in stencil including self
|
||||
|
||||
@ -100,7 +100,7 @@ void NPairHalfMultiNewtoffOmp::build(NeighList *list)
|
||||
for (jcollection = 0; jcollection < ncollections; jcollection++) {
|
||||
|
||||
// if same collection use own bin
|
||||
if(icollection == jcollection) jbin = ibin;
|
||||
if (icollection == jcollection) jbin = ibin;
|
||||
else jbin = coord2bin(x[i], jcollection);
|
||||
|
||||
// loop over all atoms in other bins in stencil including self
|
||||
@ -114,7 +114,7 @@ void NPairHalfMultiNewtoffOmp::build(NeighList *list)
|
||||
|
||||
for (k = 0; k < ns; k++) {
|
||||
js = binhead_multi[jcollection][jbin + s[k]];
|
||||
for (j = js; j >=0; j = bins[j]) {
|
||||
for (j = js; j >= 0; j = bins[j]) {
|
||||
if (j <= i) continue;
|
||||
|
||||
jtype = type[j];
|
||||
|
||||
@ -99,13 +99,13 @@ void NPairHalfMultiNewtonOmp::build(NeighList *list)
|
||||
for (jcollection = 0; jcollection < ncollections; jcollection++) {
|
||||
|
||||
// if same collection use own bin
|
||||
if(icollection == jcollection) jbin = ibin;
|
||||
if (icollection == jcollection) jbin = ibin;
|
||||
else jbin = coord2bin(x[i], jcollection);
|
||||
|
||||
// if same size: uses half stencil so check central bin
|
||||
if(cutcollectionsq[icollection][icollection] == cutcollectionsq[jcollection][jcollection]){
|
||||
if (cutcollectionsq[icollection][icollection] == cutcollectionsq[jcollection][jcollection]){
|
||||
|
||||
if(icollection == jcollection) js = bins[i];
|
||||
if (icollection == jcollection) js = bins[i];
|
||||
else js = binhead_multi[jcollection][jbin];
|
||||
|
||||
// if same collection,
|
||||
@ -117,7 +117,7 @@ void NPairHalfMultiNewtonOmp::build(NeighList *list)
|
||||
// if j is ghost, only store if j coords are "above and to the right" of i
|
||||
|
||||
for (j = js; j >= 0; j = bins[j]) {
|
||||
if(icollection != jcollection and j < i) continue;
|
||||
if ((icollection != jcollection) && (j < i)) continue;
|
||||
|
||||
if (j >= nlocal) {
|
||||
if (x[j][2] < ztmp) continue;
|
||||
|
||||
@ -100,7 +100,7 @@ void NPairHalfMultiNewtonTriOmp::build(NeighList *list)
|
||||
for (jcollection = 0; jcollection < ncollections; jcollection++) {
|
||||
|
||||
// if same collection use own bin
|
||||
if(icollection == jcollection) jbin = ibin;
|
||||
if (icollection == jcollection) jbin = ibin;
|
||||
else jbin = coord2bin(x[i], jcollection);
|
||||
|
||||
// loop over all atoms in bins in stencil
|
||||
@ -120,7 +120,7 @@ void NPairHalfMultiNewtonTriOmp::build(NeighList *list)
|
||||
for (j = js; j >= 0; j = bins[j]) {
|
||||
|
||||
// if same size (same collection), use half stencil
|
||||
if(cutcollectionsq[icollection][icollection] == cutcollectionsq[jcollection][jcollection]){
|
||||
if (cutcollectionsq[icollection][icollection] == cutcollectionsq[jcollection][jcollection]){
|
||||
if (x[j][2] < ztmp) continue;
|
||||
if (x[j][2] == ztmp) {
|
||||
if (x[j][1] < ytmp) continue;
|
||||
|
||||
18
src/comm.cpp
18
src/comm.cpp
@ -246,15 +246,15 @@ void Comm::init()
|
||||
for (int i = 0; i < nfix; i++)
|
||||
if (fix[i]->maxexchange_dynamic) maxexchange_fix_dynamic = 1;
|
||||
|
||||
if(mode == Comm::MULTI and neighbor->style != Neighbor::MULTI)
|
||||
if ((mode == Comm::MULTI) && (neighbor->style != Neighbor::MULTI))
|
||||
error->all(FLERR,"Cannot use comm mode multi without multi-style neighbor lists");
|
||||
|
||||
if(multi_reduce){
|
||||
if (multi_reduce) {
|
||||
if (force->newton == 0)
|
||||
error->all(FLERR,"Cannot use multi/reduce communication with Newton off");
|
||||
if (neighbor->any_full())
|
||||
error->all(FLERR,"Cannot use multi/reduce communication with a full neighbor list");
|
||||
if(mode != Comm::MULTI)
|
||||
if (mode != Comm::MULTI)
|
||||
error->all(FLERR,"Cannot use multi/reduce communication without mode multi");
|
||||
}
|
||||
}
|
||||
@ -293,11 +293,11 @@ void Comm::modify_params(int narg, char **arg)
|
||||
// need to reset cutghostuser when switching comm mode
|
||||
if (mode == Comm::MULTI) cutghostuser = 0.0;
|
||||
if (mode == Comm::MULTIOLD) cutghostuser = 0.0;
|
||||
if(cutusermulti){
|
||||
if (cutusermulti) {
|
||||
memory->destroy(cutusermulti);
|
||||
cutusermulti = nullptr;
|
||||
}
|
||||
if(cutusermultiold){
|
||||
if (cutusermultiold) {
|
||||
memory->destroy(cutusermultiold);
|
||||
cutusermultiold = nullptr;
|
||||
}
|
||||
@ -306,7 +306,7 @@ void Comm::modify_params(int narg, char **arg)
|
||||
// need to reset cutghostuser when switching comm mode
|
||||
if (mode == Comm::SINGLE) cutghostuser = 0.0;
|
||||
if (mode == Comm::MULTIOLD) cutghostuser = 0.0;
|
||||
if(cutusermultiold){
|
||||
if (cutusermultiold) {
|
||||
memory->destroy(cutusermultiold);
|
||||
cutusermultiold = nullptr;
|
||||
}
|
||||
@ -315,7 +315,7 @@ void Comm::modify_params(int narg, char **arg)
|
||||
// need to reset cutghostuser when switching comm mode
|
||||
if (mode == Comm::SINGLE) cutghostuser = 0.0;
|
||||
if (mode == Comm::MULTI) cutghostuser = 0.0;
|
||||
if(cutusermulti){
|
||||
if (cutusermulti) {
|
||||
memory->destroy(cutusermulti);
|
||||
cutusermulti = nullptr;
|
||||
}
|
||||
@ -743,8 +743,8 @@ double Comm::get_comm_cutoff()
|
||||
}
|
||||
|
||||
// Check maximum interval size for neighbor multi
|
||||
if(neighbor->interval_collection_flag){
|
||||
for(int i = 0; i < neighbor->ncollections; i++){
|
||||
if (neighbor->interval_collection_flag) {
|
||||
for (int i = 0; i < neighbor->ncollections; i++){
|
||||
maxcommcutoff = MAX(maxcommcutoff, neighbor->collection2cut[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -145,9 +145,9 @@ void CommBrick::init()
|
||||
ncollections = neighbor->ncollections;
|
||||
allocate_multi(maxswap);
|
||||
memory->create(cutghostmulti,ncollections,3,"comm:cutghostmulti");
|
||||
if(cutusermultiflag) {
|
||||
if (cutusermultiflag) {
|
||||
memory->grow(cutusermulti,ncollections,"comm:cutusermulti");
|
||||
for(int i = ncollections_prior; i < ncollections; i++)
|
||||
for (int i = ncollections_prior; i < ncollections; i++)
|
||||
cutusermulti[i] = -1.0;
|
||||
}
|
||||
|
||||
@ -206,15 +206,15 @@ void CommBrick::setup()
|
||||
ncollections = neighbor->ncollections;
|
||||
|
||||
// reallocate memory for multi-style communication at setup if ncollections change
|
||||
if(ncollections_prior != ncollections){
|
||||
if(multilo) free_multi();
|
||||
if(cutghostmulti) memory->destroy(cutghostmulti);
|
||||
if (ncollections_prior != ncollections) {
|
||||
if (multilo) free_multi();
|
||||
if (cutghostmulti) memory->destroy(cutghostmulti);
|
||||
|
||||
allocate_multi(maxswap);
|
||||
memory->create(cutghostmulti,ncollections,3,"comm:cutghostmulti");
|
||||
if(cutusermultiflag) {
|
||||
if (cutusermultiflag) {
|
||||
memory->grow(cutusermulti,ncollections,"comm:cutusermulti");
|
||||
for(i = ncollections_prior; i < ncollections; i++)
|
||||
for (i = ncollections_prior; i < ncollections; i++)
|
||||
cutusermulti[i] = -1.0;
|
||||
}
|
||||
|
||||
@ -223,11 +223,11 @@ void CommBrick::setup()
|
||||
|
||||
// parse any cutoff/multi commands
|
||||
int nhi, nlo;
|
||||
for(auto it = usermultiargs.begin(); it != usermultiargs.end(); it ++) {
|
||||
for (auto it = usermultiargs.begin(); it != usermultiargs.end(); it ++) {
|
||||
utils::bounds(FLERR,it->first,0,ncollections,nlo,nhi,error);
|
||||
if(nhi >= ncollections)
|
||||
if (nhi >= ncollections)
|
||||
error->all(FLERR, "Unused collection id in comm_modify cutoff/multi command");
|
||||
for (j=nlo; j<=nhi; ++j)
|
||||
for (j = nlo; j<=nhi; ++j)
|
||||
cutusermulti[j] = it->second;
|
||||
}
|
||||
usermultiargs.clear();
|
||||
@ -249,7 +249,7 @@ void CommBrick::setup()
|
||||
}
|
||||
|
||||
for (j = 0; j < ncollections; j++){
|
||||
if(multi_reduce and cutcollectionsq[j][j] > cutcollectionsq[i][i]) continue;
|
||||
if (multi_reduce && (cutcollectionsq[j][j] > cutcollectionsq[i][i])) continue;
|
||||
cutghostmulti[i][0] = MAX(cutghostmulti[i][0],sqrt(cutcollectionsq[i][j]));
|
||||
cutghostmulti[i][1] = MAX(cutghostmulti[i][1],sqrt(cutcollectionsq[i][j]));
|
||||
cutghostmulti[i][2] = MAX(cutghostmulti[i][2],sqrt(cutcollectionsq[i][j]));
|
||||
@ -815,7 +815,7 @@ void CommBrick::borders()
|
||||
AtomVec *avec = atom->avec;
|
||||
|
||||
// After exchanging/sorting, need to reconstruct collection array for border communication
|
||||
if(mode == Comm::MULTI) neighbor->build_collection(0);
|
||||
if (mode == Comm::MULTI) neighbor->build_collection(0);
|
||||
|
||||
// do swaps over all 3 dimensions
|
||||
|
||||
@ -989,7 +989,7 @@ void CommBrick::borders()
|
||||
firstrecv[iswap] = atom->nlocal + atom->nghost;
|
||||
nprior = atom->nlocal + atom->nghost;
|
||||
atom->nghost += nrecv;
|
||||
if(neighbor->style == Neighbor::MULTI) neighbor->build_collection(nprior);
|
||||
if (neighbor->style == Neighbor::MULTI) neighbor->build_collection(nprior);
|
||||
|
||||
iswap++;
|
||||
}
|
||||
|
||||
@ -191,16 +191,16 @@ void CommTiled::setup()
|
||||
ncollections = neighbor->ncollections;
|
||||
|
||||
// allocate memory for multi-style communication at setup as ncollections can change
|
||||
if(ncollections_prior != ncollections){
|
||||
if (ncollections_prior != ncollections) {
|
||||
memory->destroy(cutghostmulti);
|
||||
if (mode == Comm::MULTI)
|
||||
memory->create(cutghostmulti,ncollections,3,"comm:cutghostmulti");
|
||||
|
||||
for(i = 0; i < maxswap; i ++)
|
||||
for (i = 0; i < maxswap; i ++)
|
||||
grow_swap_send_multi(i,DELTA_PROCS);
|
||||
if(cutusermultiflag){
|
||||
if (cutusermultiflag) {
|
||||
memory->grow(cutusermulti,ncollections,"comm:cutusermulti");
|
||||
for(i = ncollections_prior; i < ncollections; i++)
|
||||
for (i = ncollections_prior; i < ncollections; i++)
|
||||
cutusermulti[i] = -1.0;
|
||||
}
|
||||
|
||||
@ -209,12 +209,12 @@ void CommTiled::setup()
|
||||
|
||||
// parse any cutoff/multi commands
|
||||
int nhi, nlo;
|
||||
for(auto it = usermultiargs.begin(); it != usermultiargs.end(); it ++) {
|
||||
for (auto it = usermultiargs.begin(); it != usermultiargs.end(); it ++) {
|
||||
utils::bounds(FLERR,it->first,0,ncollections,nlo,nhi,error);
|
||||
if(nhi >= ncollections)
|
||||
if (nhi >= ncollections)
|
||||
error->all(FLERR, "Unused collection id in comm_modify cutoff/multi command");
|
||||
|
||||
for (j=nlo; j<=nhi; ++j)
|
||||
for (j = nlo; j <= nhi; ++j)
|
||||
cutusermulti[j] = it->second;
|
||||
}
|
||||
usermultiargs.clear();
|
||||
@ -236,7 +236,7 @@ void CommTiled::setup()
|
||||
}
|
||||
|
||||
for (j = 0; j < ncollections; j++){
|
||||
if(multi_reduce and cutcollectionsq[j][j] > cutcollectionsq[i][i]) continue;
|
||||
if (multi_reduce && (cutcollectionsq[j][j] > cutcollectionsq[i][i])) continue;
|
||||
cutghostmulti[i][0] = MAX(cutghostmulti[i][0],sqrt(cutcollectionsq[i][j]));
|
||||
cutghostmulti[i][1] = MAX(cutghostmulti[i][1],sqrt(cutcollectionsq[i][j]));
|
||||
cutghostmulti[i][2] = MAX(cutghostmulti[i][2],sqrt(cutcollectionsq[i][j]));
|
||||
@ -1066,7 +1066,7 @@ void CommTiled::borders()
|
||||
AtomVec *avec = atom->avec;
|
||||
|
||||
// After exchanging, need to reconstruct collection array for border communication
|
||||
if(mode == Comm::MULTI) neighbor->build_collection(0);
|
||||
if (mode == Comm::MULTI) neighbor->build_collection(0);
|
||||
|
||||
// send/recv max one = max # of atoms in single send/recv for any swap
|
||||
// send/recv max all = max # of atoms in all sends/recvs within any swap
|
||||
@ -1357,7 +1357,7 @@ void CommTiled::borders()
|
||||
if (n) {
|
||||
nprior = atom->nghost + atom->nlocal;
|
||||
atom->nghost += forward_recv_offset[iswap][n-1] + recvnum[iswap][n-1];
|
||||
if(neighbor->style == Neighbor::MULTI) neighbor->build_collection(nprior);
|
||||
if (neighbor->style == Neighbor::MULTI) neighbor->build_collection(nprior);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2405,7 +2405,7 @@ void CommTiled::grow_swap_send_multi(int i, int n)
|
||||
{
|
||||
memory->destroy(sendbox_multi[i]);
|
||||
|
||||
if(ncollections > 0)
|
||||
if (ncollections > 0)
|
||||
memory->create(sendbox_multi[i],n,ncollections,6,"comm:sendbox_multi");
|
||||
}
|
||||
|
||||
|
||||
@ -234,7 +234,7 @@ void NBinMulti::setup_bins(int /*style*/)
|
||||
if (binsize_optimal*bininvx_multi[n] > CUT2BIN_RATIO ||
|
||||
binsize_optimal*bininvy_multi[n] > CUT2BIN_RATIO)
|
||||
error->all(FLERR,"Cannot use neighbor bins - box size << cutoff");
|
||||
if(dimension == 3 and binsize_optimal*bininvz_multi[n] > CUT2BIN_RATIO)
|
||||
if ((dimension == 3) && (binsize_optimal*bininvz_multi[n] > CUT2BIN_RATIO))
|
||||
error->all(FLERR,"Cannot use neighbor bins - box size << cutoff");
|
||||
|
||||
// mbinlo/hi = lowest and highest global bins my ghost atoms could be in
|
||||
|
||||
@ -359,16 +359,16 @@ void Neighbor::init()
|
||||
cutneighmaxsq = cutneighmax * cutneighmax;
|
||||
|
||||
// Define cutoffs for multi
|
||||
if(style == Neighbor::MULTI){
|
||||
if (style == Neighbor::MULTI) {
|
||||
int icollection, jcollection;
|
||||
|
||||
// If collections not yet defined, create default map using types
|
||||
if(not custom_collection_flag) {
|
||||
if (not custom_collection_flag) {
|
||||
ncollections = n;
|
||||
interval_collection_flag = 0;
|
||||
if(not type2collection)
|
||||
if (not type2collection)
|
||||
memory->create(type2collection,n+1,"neigh:type2collection");
|
||||
for(i = 1; i <= n; i++)
|
||||
for (i = 1; i <= n; i++)
|
||||
type2collection[i] = i-1;
|
||||
}
|
||||
|
||||
@ -384,30 +384,30 @@ void Neighbor::init()
|
||||
//
|
||||
|
||||
// Define collection cutoffs
|
||||
for(i = 0; i < ncollections; i++)
|
||||
for(j = 0; j < ncollections; j++)
|
||||
for (i = 0; i < ncollections; i++)
|
||||
for (j = 0; j < ncollections; j++)
|
||||
cutcollectionsq[i][j] = 0.0;
|
||||
|
||||
if(not interval_collection_flag){
|
||||
if (not interval_collection_flag) {
|
||||
finite_cut_flag = 0;
|
||||
for(i = 1; i <= n; i++){
|
||||
for (i = 1; i <= n; i++){
|
||||
icollection = type2collection[i];
|
||||
for(j = 1; j <= n; j++){
|
||||
for (j = 1; j <= n; j++){
|
||||
jcollection = type2collection[j];
|
||||
if(cutneighsq[i][j] > cutcollectionsq[icollection][jcollection]) {
|
||||
if (cutneighsq[i][j] > cutcollectionsq[icollection][jcollection]) {
|
||||
cutcollectionsq[icollection][jcollection] = cutneighsq[i][j];
|
||||
cutcollectionsq[jcollection][icollection] = cutneighsq[i][j];
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(force->pair->finitecutflag){
|
||||
if (force->pair->finitecutflag) {
|
||||
finite_cut_flag = 1;
|
||||
// If cutoffs depend on finite atom sizes, use radii of intervals to find cutoffs
|
||||
double ri, rj, tmp;
|
||||
for(i = 0; i < ncollections; i++){
|
||||
for (i = 0; i < ncollections; i++){
|
||||
ri = collection2cut[i]*0.5;
|
||||
for(j = 0; j < ncollections; j++){
|
||||
for (j = 0; j < ncollections; j++){
|
||||
rj = collection2cut[j]*0.5;
|
||||
tmp = force->pair->radii2cut(ri, rj) + skin;
|
||||
cutcollectionsq[i][j] = tmp*tmp;
|
||||
@ -417,33 +417,33 @@ void Neighbor::init()
|
||||
finite_cut_flag = 0;
|
||||
|
||||
// Map types to collections
|
||||
if(not type2collection)
|
||||
if (not type2collection)
|
||||
memory->create(type2collection,n+1,"neigh:type2collection");
|
||||
|
||||
for(i = 1; i <= n; i++)
|
||||
for (i = 1; i <= n; i++)
|
||||
type2collection[i] = -1;
|
||||
|
||||
double cuttmp;
|
||||
for(i = 1; i <= n; i++){
|
||||
for (i = 1; i <= n; i++){
|
||||
// Remove skin added to cutneighsq
|
||||
cuttmp = sqrt(cutneighsq[i][i]) - skin;
|
||||
for(icollection = 0; icollection < ncollections; icollection ++){
|
||||
if(collection2cut[icollection] >= cuttmp) {
|
||||
for (icollection = 0; icollection < ncollections; icollection ++){
|
||||
if (collection2cut[icollection] >= cuttmp) {
|
||||
type2collection[i] = icollection;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(type2collection[i] == -1)
|
||||
if (type2collection[i] == -1)
|
||||
error->all(FLERR, "Pair cutoff exceeds interval cutoffs for multi");
|
||||
}
|
||||
|
||||
// Define cutoffs
|
||||
for(i = 1; i <= n; i++){
|
||||
for (i = 1; i <= n; i++){
|
||||
icollection = type2collection[i];
|
||||
for(j = 1; j <= n; j++){
|
||||
for (j = 1; j <= n; j++){
|
||||
jcollection = type2collection[j];
|
||||
if(cutneighsq[i][j] > cutcollectionsq[icollection][jcollection]) {
|
||||
if (cutneighsq[i][j] > cutcollectionsq[icollection][jcollection]) {
|
||||
cutcollectionsq[icollection][jcollection] = cutneighsq[i][j];
|
||||
cutcollectionsq[jcollection][icollection] = cutneighsq[i][j];
|
||||
}
|
||||
@ -2175,7 +2175,7 @@ void Neighbor::build(int topoflag)
|
||||
int nlocal = atom->nlocal;
|
||||
int nall = nlocal + atom->nghost;
|
||||
// rebuild collection array from scratch
|
||||
if(style == Neighbor::MULTI) build_collection(0);
|
||||
if (style == Neighbor::MULTI) build_collection(0);
|
||||
|
||||
// check that using special bond flags will not overflow neigh lists
|
||||
|
||||
@ -2500,15 +2500,15 @@ void Neighbor::modify_params(int narg, char **arg)
|
||||
|
||||
} else error->all(FLERR,"Illegal neigh_modify command");
|
||||
} else if (strcmp(arg[iarg],"collection/interval") == 0) {
|
||||
if(style != Neighbor::MULTI)
|
||||
if (style != Neighbor::MULTI)
|
||||
error->all(FLERR,"Cannot use collection/interval command without multi setting");
|
||||
|
||||
if(iarg+2 > narg)
|
||||
if (iarg+2 > narg)
|
||||
error->all(FLERR,"Invalid collection/interval command");
|
||||
ncollections = utils::inumeric(FLERR,arg[iarg+1],false,lmp);
|
||||
if(ncollections < 1)
|
||||
if (ncollections < 1)
|
||||
error->all(FLERR,"Invalid collection/interval command");
|
||||
if(iarg+1+ncollections > narg)
|
||||
if (iarg+1+ncollections > narg)
|
||||
error->all(FLERR,"Invalid collection/interval command");
|
||||
|
||||
int ntypes = atom->ntypes;
|
||||
@ -2521,26 +2521,26 @@ void Neighbor::modify_params(int narg, char **arg)
|
||||
// Set upper cutoff for each collection
|
||||
char *id;
|
||||
double cut_interval;
|
||||
for(i = 0; i < ncollections; i++){
|
||||
for (i = 0; i < ncollections; i++){
|
||||
cut_interval = utils::numeric(FLERR,arg[iarg+2+i],false,lmp);
|
||||
collection2cut[i] = cut_interval;
|
||||
|
||||
if(i != 0)
|
||||
if(collection2cut[i-1] >= collection2cut[i])
|
||||
if (i != 0)
|
||||
if (collection2cut[i-1] >= collection2cut[i])
|
||||
error->all(FLERR,"Nonsequential interval cutoffs in collection/interval setting");
|
||||
}
|
||||
|
||||
iarg += 2 + ncollections;
|
||||
} else if (strcmp(arg[iarg],"collection/type") == 0) {
|
||||
if(style != Neighbor::MULTI)
|
||||
if (style != Neighbor::MULTI)
|
||||
error->all(FLERR,"Cannot use collection/type command without multi setting");
|
||||
|
||||
if(iarg+2 > narg)
|
||||
if (iarg+2 > narg)
|
||||
error->all(FLERR,"Invalid collection/type command");
|
||||
ncollections = utils::inumeric(FLERR,arg[iarg+1],false,lmp);
|
||||
if(ncollections < 1)
|
||||
if (ncollections < 1)
|
||||
error->all(FLERR,"Invalid collection/interval command");
|
||||
if(iarg+1+ncollections > narg)
|
||||
if (iarg+1+ncollections > narg)
|
||||
error->all(FLERR,"Invalid collection/type command");
|
||||
|
||||
int ntypes = atom->ntypes;
|
||||
@ -2548,17 +2548,17 @@ void Neighbor::modify_params(int narg, char **arg)
|
||||
|
||||
interval_collection_flag = 0;
|
||||
custom_collection_flag = 1;
|
||||
if(not type2collection)
|
||||
if (not type2collection)
|
||||
memory->create(type2collection,ntypes+1,"neigh:type2collection");
|
||||
|
||||
// Erase previous mapping
|
||||
for(i = 1; i <= ntypes; i++)
|
||||
for (i = 1; i <= ntypes; i++)
|
||||
type2collection[i] = -1;
|
||||
|
||||
// For each custom range, define mapping for types in interval
|
||||
int nfield;
|
||||
char *str;
|
||||
for(i = 0; i < ncollections; i++){
|
||||
for (i = 0; i < ncollections; i++){
|
||||
n = strlen(arg[iarg+2+i]) + 1;
|
||||
str = new char[n];
|
||||
strcpy(str,arg[iarg+2+i]);
|
||||
@ -2570,7 +2570,7 @@ void Neighbor::modify_params(int narg, char **arg)
|
||||
utils::bounds(FLERR,field,1,ntypes,nlo,nhi,error);
|
||||
|
||||
for (k = nlo; k <= nhi; k++) {
|
||||
if(type2collection[k] != -1)
|
||||
if (type2collection[k] != -1)
|
||||
error->all(FLERR,"Type specified more than once in collection/type commnd");
|
||||
type2collection[k] = i;
|
||||
}
|
||||
@ -2580,8 +2580,8 @@ void Neighbor::modify_params(int narg, char **arg)
|
||||
}
|
||||
|
||||
// Check for undefined atom type
|
||||
for(i = 1; i <= ntypes; i++){
|
||||
if(type2collection[i] == -1){
|
||||
for (i = 1; i <= ntypes; i++){
|
||||
if (type2collection[i] == -1) {
|
||||
error->all(FLERR,"Type missing in collection/type commnd");
|
||||
}
|
||||
}
|
||||
@ -2632,8 +2632,8 @@ int Neighbor::exclude_setting()
|
||||
int Neighbor::any_full()
|
||||
{
|
||||
int any_full = 0;
|
||||
for(int i = 0; i < old_nrequest; i++) {
|
||||
if(old_requests[i]->full) any_full = 1;
|
||||
for (int i = 0; i < old_nrequest; i++) {
|
||||
if (old_requests[i]->full) any_full = 1;
|
||||
}
|
||||
return any_full;
|
||||
}
|
||||
@ -2648,31 +2648,31 @@ void Neighbor::build_collection(int istart)
|
||||
error->all(FLERR, "Cannot define atom collections without neighbor style multi");
|
||||
|
||||
int nmax = atom->nlocal+atom->nghost;
|
||||
if(nmax > nmax_collection){
|
||||
if (nmax > nmax_collection) {
|
||||
nmax_collection = nmax+DELTA_PERATOM;
|
||||
memory->grow(collection, nmax_collection, "neigh:collection");
|
||||
}
|
||||
|
||||
if(finite_cut_flag){
|
||||
if (finite_cut_flag) {
|
||||
double cut;
|
||||
int icollection;
|
||||
for(int i = istart; i < nmax; i++){
|
||||
for (int i = istart; i < nmax; i++){
|
||||
cut = force->pair->atom2cut(i);
|
||||
collection[i] = -1;
|
||||
|
||||
for(icollection = 0; icollection < ncollections; icollection++){
|
||||
if(collection2cut[icollection] >= cut) {
|
||||
for (icollection = 0; icollection < ncollections; icollection++){
|
||||
if (collection2cut[icollection] >= cut) {
|
||||
collection[i] = icollection;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(collection[i] == -1)
|
||||
if (collection[i] == -1)
|
||||
error->one(FLERR, "Atom cutoff exceeds interval cutoffs for multi");
|
||||
}
|
||||
} else {
|
||||
int *type = atom->type;
|
||||
for(int i = istart; i < nmax; i++){
|
||||
for (int i = istart; i < nmax; i++){
|
||||
collection[i] = type2collection[type[i]];
|
||||
}
|
||||
}
|
||||
|
||||
@ -88,7 +88,7 @@ void NPairHalfMultiNewtoff::build(NeighList *list)
|
||||
for (jcollection = 0; jcollection < ncollections; jcollection++) {
|
||||
|
||||
// if same collection use own bin
|
||||
if(icollection == jcollection) jbin = ibin;
|
||||
if (icollection == jcollection) jbin = ibin;
|
||||
else jbin = coord2bin(x[i], jcollection);
|
||||
|
||||
// loop over all atoms in other bins in stencil including self
|
||||
@ -102,7 +102,7 @@ void NPairHalfMultiNewtoff::build(NeighList *list)
|
||||
|
||||
for (k = 0; k < ns; k++) {
|
||||
js = binhead_multi[jcollection][jbin + s[k]];
|
||||
for (j = js; j >=0; j = bins[j]) {
|
||||
for (j = js; j >= 0; j = bins[j]) {
|
||||
if (j <= i) continue;
|
||||
|
||||
jtype = type[j];
|
||||
|
||||
@ -93,7 +93,7 @@ void NPairHalfMultiNewton::build(NeighList *list)
|
||||
// if same size: uses half stencil so check central bin
|
||||
if(cutcollectionsq[icollection][icollection] == cutcollectionsq[jcollection][jcollection]){
|
||||
|
||||
if(icollection == jcollection) js = bins[i];
|
||||
if (icollection == jcollection) js = bins[i];
|
||||
else js = binhead_multi[jcollection][jbin];
|
||||
|
||||
// if same collection,
|
||||
@ -105,7 +105,7 @@ void NPairHalfMultiNewton::build(NeighList *list)
|
||||
// if j is ghost, only store if j coords are "above and to the right" of i
|
||||
|
||||
for (j = js; j >= 0; j = bins[j]) {
|
||||
if(icollection != jcollection and j < i) continue;
|
||||
if((icollection != jcollection) && (j < i)) continue;
|
||||
|
||||
if (j >= nlocal) {
|
||||
if (x[j][2] < ztmp) continue;
|
||||
|
||||
@ -87,7 +87,7 @@ void NPairHalfMultiNewtonTri::build(NeighList *list)
|
||||
for (jcollection = 0; jcollection < ncollections; jcollection++) {
|
||||
|
||||
// if same collection use own bin
|
||||
if(icollection == jcollection) jbin = ibin;
|
||||
if (icollection == jcollection) jbin = ibin;
|
||||
else jbin = coord2bin(x[i], jcollection);
|
||||
|
||||
// loop over all atoms in bins in stencil
|
||||
|
||||
@ -79,7 +79,7 @@ void NPairHalfSizeMultiNewtoff::build(NeighList *list)
|
||||
for (jcollection = 0; jcollection < ncollections; jcollection++) {
|
||||
|
||||
// if same collection use own bin
|
||||
if(icollection == jcollection) jbin = ibin;
|
||||
if (icollection == jcollection) jbin = ibin;
|
||||
else jbin = coord2bin(x[i], jcollection);
|
||||
|
||||
// loop over all atoms in other bins in stencil including self
|
||||
@ -93,7 +93,7 @@ void NPairHalfSizeMultiNewtoff::build(NeighList *list)
|
||||
|
||||
for (k = 0; k < ns; k++) {
|
||||
js = binhead_multi[jcollection][jbin + s[k]];
|
||||
for (j = js; j >=0; j = bins[j]) {
|
||||
for (j = js; j >= 0; j = bins[j]) {
|
||||
if (j <= i) continue;
|
||||
|
||||
jtype = type[j];
|
||||
|
||||
@ -76,13 +76,13 @@ void NPairHalfSizeMultiNewton::build(NeighList *list)
|
||||
for (jcollection = 0; jcollection < ncollections; jcollection++) {
|
||||
|
||||
// if same collection use own bin
|
||||
if(icollection == jcollection) jbin = ibin;
|
||||
if (icollection == jcollection) jbin = ibin;
|
||||
else jbin = coord2bin(x[i], jcollection);
|
||||
|
||||
// if same size: uses half stencil so check central bin
|
||||
if(cutcollectionsq[icollection][icollection] == cutcollectionsq[jcollection][jcollection]){
|
||||
if (cutcollectionsq[icollection][icollection] == cutcollectionsq[jcollection][jcollection]){
|
||||
|
||||
if(icollection == jcollection) js = bins[i];
|
||||
if (icollection == jcollection) js = bins[i];
|
||||
else js = binhead_multi[jcollection][jbin];
|
||||
|
||||
// if same collection,
|
||||
@ -94,7 +94,7 @@ void NPairHalfSizeMultiNewton::build(NeighList *list)
|
||||
// if j is ghost, only store if j coords are "above and to the right" of i
|
||||
|
||||
for (j = js; j >= 0; j = bins[j]) {
|
||||
if(icollection != jcollection and j < i) continue;
|
||||
if ((icollection != jcollection) && (j < i)) continue;
|
||||
|
||||
if (j >= nlocal) {
|
||||
if (x[j][2] < ztmp) continue;
|
||||
|
||||
@ -76,7 +76,7 @@ void NPairHalfSizeMultiNewtonTri::build(NeighList *list)
|
||||
for (jcollection = 0; jcollection < ncollections; jcollection++) {
|
||||
|
||||
// if same collection use own bin
|
||||
if(icollection == jcollection) jbin = ibin;
|
||||
if (icollection == jcollection) jbin = ibin;
|
||||
else jbin = coord2bin(x[i], jcollection);
|
||||
|
||||
// loop over all atoms in bins in stencil
|
||||
@ -96,7 +96,7 @@ void NPairHalfSizeMultiNewtonTri::build(NeighList *list)
|
||||
for (j = js; j >= 0; j = bins[j]) {
|
||||
|
||||
// if same size (same collection), use half stencil
|
||||
if(cutcollectionsq[icollection][icollection] == cutcollectionsq[jcollection][jcollection]){
|
||||
if (cutcollectionsq[icollection][icollection] == cutcollectionsq[jcollection][jcollection]){
|
||||
if (x[j][2] < ztmp) continue;
|
||||
if (x[j][2] == ztmp) {
|
||||
if (x[j][1] < ytmp) continue;
|
||||
|
||||
@ -272,10 +272,10 @@ void NStencil::create_setup()
|
||||
double stencil_range;
|
||||
int n = ncollections;
|
||||
|
||||
if(nb) copy_bin_info_multi();
|
||||
if (nb) copy_bin_info_multi();
|
||||
|
||||
// Deallocate arrays if previously allocated
|
||||
if(n > maxcollections and stencil_multi){
|
||||
if((n > maxcollections) && stencil_multi){
|
||||
memory->destroy(nstencil_multi);
|
||||
for (i = 0; i < maxcollections; i++) {
|
||||
for (j = 0; j < maxcollections; j++)
|
||||
@ -299,7 +299,7 @@ void NStencil::create_setup()
|
||||
}
|
||||
|
||||
// Allocate arrays
|
||||
if(!maxstencil_multi) {
|
||||
if (!maxstencil_multi) {
|
||||
memory->create(flag_half_multi, n, n,
|
||||
"neighstencil:flag_half_multi");
|
||||
memory->create(flag_skip_multi, n, n,
|
||||
|
||||
@ -1083,9 +1083,9 @@ double PairHybrid::atom2cut(int i)
|
||||
|
||||
cut = 0.0;
|
||||
for (int m = 0; m < nstyles; m++) {
|
||||
if (styles[m]->finitecutflag){
|
||||
if (styles[m]->finitecutflag) {
|
||||
temp = styles[m]->atom2cut(i);
|
||||
if(temp > cut) cut = temp;
|
||||
if (temp > cut) cut = temp;
|
||||
}
|
||||
}
|
||||
return cut;
|
||||
@ -1101,9 +1101,9 @@ double PairHybrid::radii2cut(double r1, double r2)
|
||||
|
||||
cut = 0.0;
|
||||
for (int m = 0; m < nstyles; m++) {
|
||||
if (styles[m]->finitecutflag){
|
||||
if (styles[m]->finitecutflag) {
|
||||
temp = styles[m]->radii2cut(r1,r2);
|
||||
if(temp > cut) cut = temp;
|
||||
if (temp > cut) cut = temp;
|
||||
}
|
||||
}
|
||||
return cut;
|
||||
|
||||
Reference in New Issue
Block a user