move enum{SINGLE,MULTI} and enum{MULTIPLE} to Comm in comm.h

This commit is contained in:
Axel Kohlmeyer
2018-05-09 23:57:24 -04:00
parent 994fd2af0e
commit 71fce2e413
7 changed files with 27 additions and 34 deletions

View File

@ -36,8 +36,6 @@ using namespace LAMMPS_NS;
#define BUFMIN 10000
#define BUFEXTRA 1000
enum{SINGLE,MULTI};
/* ----------------------------------------------------------------------
setup MPI and allocate buffer space
------------------------------------------------------------------------- */
@ -709,7 +707,7 @@ void CommKokkos::borders()
if (!exchange_comm_classic) {
static int print = 1;
if (style != SINGLE || bordergroup || ghost_velocity) {
if (style != Comm::SINGLE || bordergroup || ghost_velocity) {
if (print && comm->me==0) {
error->warning(FLERR,"Required border comm not yet implemented in Kokkos communication, "
"switching to classic communication");
@ -817,7 +815,7 @@ void CommKokkos::borders_device() {
// store sent atom indices in list for use in future timesteps
x = atom->x;
if (style == SINGLE) {
if (style == Comm::SINGLE) {
lo = slablo[iswap];
hi = slabhi[iswap];
} else {
@ -846,7 +844,7 @@ void CommKokkos::borders_device() {
if (sendflag) {
if (!bordergroup || ineed >= 2) {
if (style == SINGLE) {
if (style == Comm::SINGLE) {
k_total_send.h_view() = 0;
k_total_send.template modify<LMPHostType>();
k_total_send.template sync<LMPDeviceType>();
@ -894,7 +892,7 @@ void CommKokkos::borders_device() {
} else {
error->all(FLERR,"Required border comm not yet "
"implemented with Kokkos");
if (style == SINGLE) {
if (style == Comm::SINGLE) {
ngroup = atom->nfirst;
for (i = 0; i < ngroup; i++)
if (x[i][dim] >= lo && x[i][dim] <= hi) {
@ -1099,7 +1097,7 @@ void CommKokkos::grow_swap(int n)
{
free_swap();
allocate_swap(n);
if (style == MULTI) {
if (style == Comm::MULTI) {
free_multi();
allocate_multi(n);
}

View File

@ -39,7 +39,6 @@ using namespace LAMMPS_NS;
#define DELTA_PROCS 16
enum{SINGLE,MULTI}; // same as in Comm
enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files
/* ---------------------------------------------------------------------- */

View File

@ -40,8 +40,6 @@ using namespace LAMMPS_NS;
#define BUFMIN 1000 // also in comm styles
enum{SINGLE,MULTI}; // same as in Comm sub-styles
enum{MULTIPLE}; // same as in ProcMap
enum{ONELEVEL,TWOLEVEL,NUMA,CUSTOM};
enum{CART,CARTREORDER,XYZ};
enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files
@ -244,14 +242,14 @@ void Comm::modify_params(int narg, char **arg)
if (iarg+2 > narg) error->all(FLERR,"Illegal comm_modify command");
if (strcmp(arg[iarg+1],"single") == 0) {
// need to reset cutghostuser when switching comm mode
if (mode == MULTI) cutghostuser = 0.0;
if (mode == Comm::MULTI) cutghostuser = 0.0;
memory->destroy(cutusermulti);
cutusermulti = NULL;
mode = SINGLE;
mode = Comm::SINGLE;
} else if (strcmp(arg[iarg+1],"multi") == 0) {
// need to reset cutghostuser when switching comm mode
if (mode == SINGLE) cutghostuser = 0.0;
mode = MULTI;
if (mode == Comm::SINGLE) cutghostuser = 0.0;
mode = Comm::MULTI;
} else error->all(FLERR,"Illegal comm_modify command");
iarg += 2;
} else if (strcmp(arg[iarg],"group") == 0) {
@ -265,7 +263,7 @@ void Comm::modify_params(int narg, char **arg)
iarg += 2;
} else if (strcmp(arg[iarg],"cutoff") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal comm_modify command");
if (mode == MULTI)
if (mode == Comm::MULTI)
error->all(FLERR,
"Use cutoff/multi keyword to set cutoff in multi mode");
cutghostuser = force->numeric(FLERR,arg[iarg+1]);
@ -275,7 +273,7 @@ void Comm::modify_params(int narg, char **arg)
} else if (strcmp(arg[iarg],"cutoff/multi") == 0) {
int i,nlo,nhi;
double cut;
if (mode == SINGLE)
if (mode == Comm::SINGLE)
error->all(FLERR,"Use cutoff keyword to set cutoff in single mode");
if (domain->box_exist == 0)
error->all(FLERR,
@ -415,7 +413,7 @@ void Comm::set_processors(int narg, char **arg)
if (strcmp(arg[iarg+3],"multiple") == 0) {
if (universe->iworld == irecv-1) {
otherflag = 1;
other_style = MULTIPLE;
other_style = Comm::MULTIPLE;
}
} else error->all(FLERR,"Illegal processors command");
iarg += 4;

View File

@ -25,6 +25,7 @@ class Comm : protected Pointers {
// LAYOUT_NONUNIFORM = logical bricks, but diff sizes via LB
// LAYOUT_TILED = general tiling, due to RCB LB
int mode; // 0 = single cutoff, 1 = multi-type cutoff
enum{SINGLE,MULTI};
int me,nprocs; // proc info
int ghost_velocity; // 1 if ghost atoms have velocity, 0 if not
@ -132,6 +133,7 @@ class Comm : protected Pointers {
int otherflag; // 1 if this partition dependent on another
int other_style; // style of dependency
enum{MULTIPLE};
int other_procgrid[3]; // proc layout of another partition
int other_coregrid[3]; // core layout of another partition
int ncores; // # of cores per node

View File

@ -46,7 +46,6 @@ using namespace LAMMPS_NS;
#define BUFEXTRA 1000
#define BIG 1.0e20
enum{SINGLE,MULTI}; // same as in Comm
enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files
/* ---------------------------------------------------------------------- */
@ -71,7 +70,7 @@ CommBrick::CommBrick(LAMMPS *lmp) :
CommBrick::~CommBrick()
{
free_swap();
if (mode == MULTI) {
if (mode == Comm::MULTI) {
free_multi();
memory->destroy(cutghostmulti);
}
@ -144,11 +143,11 @@ void CommBrick::init()
// memory for multi-style communication
if (mode == MULTI && multilo == NULL) {
if (mode == Comm::MULTI && multilo == NULL) {
allocate_multi(maxswap);
memory->create(cutghostmulti,atom->ntypes+1,3,"comm:cutghostmulti");
}
if (mode == SINGLE && multilo) {
if (mode == Comm::SINGLE && multilo) {
free_multi();
memory->destroy(cutghostmulti);
}
@ -184,7 +183,7 @@ void CommBrick::setup()
subhi = domain->subhi;
cutghost[0] = cutghost[1] = cutghost[2] = cut;
if (mode == MULTI) {
if (mode == Comm::MULTI) {
double *cuttype = neighbor->cuttype;
for (i = 1; i <= ntypes; i++) {
cut = 0.0;
@ -208,7 +207,7 @@ void CommBrick::setup()
length2 = h_inv[2];
cutghost[2] = cut * length2;
if (mode == MULTI) {
if (mode == Comm::MULTI) {
double *cuttype = neighbor->cuttype;
for (i = 1; i <= ntypes; i++) {
cut = 0.0;
@ -357,7 +356,7 @@ void CommBrick::setup()
if (ineed % 2 == 0) {
sendproc[iswap] = procneigh[dim][0];
recvproc[iswap] = procneigh[dim][1];
if (mode == SINGLE) {
if (mode == Comm::SINGLE) {
if (ineed < 2) slablo[iswap] = -BIG;
else slablo[iswap] = 0.5 * (sublo[dim] + subhi[dim]);
slabhi[iswap] = sublo[dim] + cutghost[dim];
@ -380,7 +379,7 @@ void CommBrick::setup()
} else {
sendproc[iswap] = procneigh[dim][1];
recvproc[iswap] = procneigh[dim][0];
if (mode == SINGLE) {
if (mode == Comm::SINGLE) {
slablo[iswap] = subhi[dim] - cutghost[dim];
if (ineed < 2) slabhi[iswap] = BIG;
else slabhi[iswap] = 0.5 * (sublo[dim] + subhi[dim]);
@ -737,7 +736,7 @@ void CommBrick::borders()
// store sent atom indices in sendlist for use in future timesteps
x = atom->x;
if (mode == SINGLE) {
if (mode == Comm::SINGLE) {
lo = slablo[iswap];
hi = slabhi[iswap];
} else {
@ -766,7 +765,7 @@ void CommBrick::borders()
if (sendflag) {
if (!bordergroup || ineed >= 2) {
if (mode == SINGLE) {
if (mode == Comm::SINGLE) {
for (i = nfirst; i < nlast; i++)
if (x[i][dim] >= lo && x[i][dim] <= hi) {
if (nsend == maxsendlist[iswap]) grow_list(iswap,nsend);
@ -783,7 +782,7 @@ void CommBrick::borders()
}
} else {
if (mode == SINGLE) {
if (mode == Comm::SINGLE) {
ngroup = atom->nfirst;
for (i = 0; i < ngroup; i++)
if (x[i][dim] >= lo && x[i][dim] <= hi) {
@ -1396,7 +1395,7 @@ void CommBrick::grow_swap(int n)
{
free_swap();
allocate_swap(n);
if (mode == MULTI) {
if (mode == Comm::MULTI) {
free_multi();
allocate_multi(n);
}

View File

@ -38,7 +38,6 @@ using namespace LAMMPS_NS;
#define DELTA_PROCS 16
enum{SINGLE,MULTI}; // same as in Comm
enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files
/* ---------------------------------------------------------------------- */
@ -115,7 +114,7 @@ void CommTiled::init()
if (triclinic)
error->all(FLERR,"Cannot yet use comm_style tiled with triclinic box");
if (mode == MULTI)
if (mode == Comm::MULTI)
error->all(FLERR,"Cannot yet use comm_style tiled with multi-mode comm");
}

View File

@ -29,8 +29,6 @@ using namespace LAMMPS_NS;
#define MAXLINE 128
enum{MULTIPLE}; // same as in Comm
/* ---------------------------------------------------------------------- */
ProcMap::ProcMap(LAMMPS *lmp) : Pointers(lmp) {}
@ -811,7 +809,7 @@ int ProcMap::cull_other(int n, int **factors, int m,
{
int i = 0;
while (i < n) {
if (other_style == MULTIPLE) {
if (other_style == Comm::MULTIPLE) {
int flag = 0;
if ((other_procgrid[0]/other_coregrid[0]) % factors[i][0]) flag = 1;
if ((other_procgrid[1]/other_coregrid[1]) % factors[i][1]) flag = 1;