Commit 71fce2e4 authored by Axel Kohlmeyer's avatar Axel Kohlmeyer
Browse files

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

parent 994fd2af
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -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);
  }
+0 −1
Original line number Diff line number Diff line
@@ -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

/* ---------------------------------------------------------------------- */
+7 −9
Original line number Diff line number Diff line
@@ -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;
+2 −0
Original line number Diff line number Diff line
@@ -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
+11 −12
Original line number Diff line number Diff line
@@ -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);
  }
Loading