Feb2021 GPU Package Update - Core LAMMPS Files
This commit is contained in:
33
src/atom.cpp
33
src/atom.cpp
@ -40,6 +40,10 @@
|
||||
#include "neigh_request.h"
|
||||
#endif
|
||||
|
||||
#ifdef LMP_GPU
|
||||
#include "fix_gpu.h"
|
||||
#endif
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
using namespace MathConst;
|
||||
|
||||
@ -2196,6 +2200,35 @@ void Atom::setup_sort_bins()
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef LMP_GPU
|
||||
if (userbinsize == 0.0) {
|
||||
int ifix = modify->find_fix("package_gpu");
|
||||
if (ifix >= 0) {
|
||||
const double subx = domain->subhi[0] - domain->sublo[0];
|
||||
const double suby = domain->subhi[1] - domain->sublo[1];
|
||||
const double subz = domain->subhi[2] - domain->sublo[2];
|
||||
|
||||
FixGPU *fix = static_cast<FixGPU *>(modify->fix[ifix]);
|
||||
binsize = fix->binsize(subx, suby, subz, atom->nlocal,
|
||||
neighbor->cutneighmax);
|
||||
bininv = 1.0 / binsize;
|
||||
|
||||
nbinx = static_cast<int> (ceil(subx * bininv));
|
||||
nbiny = static_cast<int> (ceil(suby * bininv));
|
||||
nbinz = static_cast<int> (ceil(subz * bininv));
|
||||
if (domain->dimension == 2) nbinz = 1;
|
||||
|
||||
if (nbinx == 0) nbinx = 1;
|
||||
if (nbiny == 0) nbiny = 1;
|
||||
if (nbinz == 0) nbinz = 1;
|
||||
|
||||
bininvx = bininv;
|
||||
bininvy = bininv;
|
||||
bininvz = bininv;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (1.0*nbinx*nbiny*nbinz > INT_MAX)
|
||||
error->one(FLERR,"Too many atom sorting bins");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user