Unverified Commit 6b7e0df7 authored by Axel Kohlmeyer's avatar Axel Kohlmeyer Committed by GitHub
Browse files

Merge pull request #2073 from ndtrung81/gpu-triclinic

GPU package pair styles to support neighbor list builds on the GPU with triclinic boxes
parents 095801e1 bd87b112
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -225,12 +225,6 @@ void FixGPU::init()
    error->all(FLERR,"GPU package does not (yet) work with "
               "atom_style template");

  // neighbor list builds on the GPU with triclinic box is not yet supported

  if ((_gpu_mode == GPU_NEIGH || _gpu_mode == GPU_HYB_NEIGH) &&
      domain->triclinic)
    error->all(FLERR,"Cannot use package gpu neigh yes with triclinic box");

  // give a warning if no pair style is defined

  if (!force->pair)
+13 −2
Original line number Diff line number Diff line
@@ -94,10 +94,21 @@ void PairBeckGPU::compute(int eflag, int vflag)
  bool success = true;
  int *ilist, *numneigh, **firstneigh;
  if (gpu_mode != GPU_FORCE) {
    double sublo[3],subhi[3];
    if (domain->triclinic == 0) {
      sublo[0] = domain->sublo[0];
      sublo[1] = domain->sublo[1];
      sublo[2] = domain->sublo[2];
      subhi[0] = domain->subhi[0];
      subhi[1] = domain->subhi[1];
      subhi[2] = domain->subhi[2];
    } else {
      domain->bbox(domain->sublo_lamda,domain->subhi_lamda,sublo,subhi);
    }
    inum = atom->nlocal;
    firstneigh = beck_gpu_compute_n(neighbor->ago, inum, nall,
                                     atom->x, atom->type, domain->sublo,
                                     domain->subhi, atom->tag, atom->nspecial,
                                     atom->x, atom->type, sublo,
                                     subhi, atom->tag, atom->nspecial,
                                     atom->special, eflag, vflag, eflag_atom,
                                     vflag_atom, host_start,
                                     &ilist, &numneigh, cpu_time, success);
+12 −1
Original line number Diff line number Diff line
@@ -116,9 +116,20 @@ void PairBornCoulLongCSGPU::compute(int eflag, int vflag)
  bool success = true;
  int *ilist, *numneigh, **firstneigh;
  if (gpu_mode != GPU_FORCE) {
    double sublo[3],subhi[3];
    if (domain->triclinic == 0) {
      sublo[0] = domain->sublo[0];
      sublo[1] = domain->sublo[1];
      sublo[2] = domain->sublo[2];
      subhi[0] = domain->subhi[0];
      subhi[1] = domain->subhi[1];
      subhi[2] = domain->subhi[2];
    } else {
      domain->bbox(domain->sublo_lamda,domain->subhi_lamda,sublo,subhi);
    }
    inum = atom->nlocal;
    firstneigh = bornclcs_gpu_compute_n(neighbor->ago, inum, nall, atom->x,
                                      atom->type, domain->sublo, domain->subhi,
                                      atom->type, sublo, subhi,
                                      atom->tag, atom->nspecial, atom->special,
                                      eflag, vflag, eflag_atom, vflag_atom,
                                      host_start, &ilist, &numneigh, cpu_time,
+12 −1
Original line number Diff line number Diff line
@@ -111,9 +111,20 @@ void PairBornCoulLongGPU::compute(int eflag, int vflag)
  bool success = true;
  int *ilist, *numneigh, **firstneigh;
  if (gpu_mode != GPU_FORCE) {
    double sublo[3],subhi[3];
    if (domain->triclinic == 0) {
      sublo[0] = domain->sublo[0];
      sublo[1] = domain->sublo[1];
      sublo[2] = domain->sublo[2];
      subhi[0] = domain->subhi[0];
      subhi[1] = domain->subhi[1];
      subhi[2] = domain->subhi[2];
    } else {
      domain->bbox(domain->sublo_lamda,domain->subhi_lamda,sublo,subhi);
    }
    inum = atom->nlocal;
    firstneigh = borncl_gpu_compute_n(neighbor->ago, inum, nall, atom->x,
                                      atom->type, domain->sublo, domain->subhi,
                                      atom->type, sublo, subhi,
                                      atom->tag, atom->nspecial, atom->special,
                                      eflag, vflag, eflag_atom, vflag_atom,
                                      host_start, &ilist, &numneigh, cpu_time,
+13 −2
Original line number Diff line number Diff line
@@ -104,10 +104,21 @@ void PairBornCoulWolfCSGPU::compute(int eflag, int vflag)
  bool success = true;
  int *ilist, *numneigh, **firstneigh;
  if (gpu_mode != GPU_FORCE) {
    double sublo[3],subhi[3];
    if (domain->triclinic == 0) {
      sublo[0] = domain->sublo[0];
      sublo[1] = domain->sublo[1];
      sublo[2] = domain->sublo[2];
      subhi[0] = domain->subhi[0];
      subhi[1] = domain->subhi[1];
      subhi[2] = domain->subhi[2];
    } else {
      domain->bbox(domain->sublo_lamda,domain->subhi_lamda,sublo,subhi);
    }
    inum = atom->nlocal;
    firstneigh = borncwcs_gpu_compute_n(neighbor->ago, inum, nall,
                                      atom->x, atom->type, domain->sublo,
                                      domain->subhi, atom->tag, atom->nspecial,
                                      atom->x, atom->type, sublo,
                                      subhi, atom->tag, atom->nspecial,
                                      atom->special, eflag, vflag, eflag_atom,
                                      vflag_atom, host_start,
                                      &ilist, &numneigh, cpu_time, success,
Loading