apply clang-format

This commit is contained in:
Axel Kohlmeyer
2021-05-12 00:17:12 -04:00
parent d5c7ef113d
commit 8dad40ea49
2 changed files with 82 additions and 98 deletions

View File

@ -16,58 +16,51 @@
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
#include "pair_lj_smooth_gpu.h" #include "pair_lj_smooth_gpu.h"
#include <cmath>
#include <cstdio>
#include <cstring>
#include "atom.h" #include "atom.h"
#include "atom_vec.h" #include "atom_vec.h"
#include "comm.h" #include "comm.h"
#include "domain.h"
#include "error.h"
#include "force.h" #include "force.h"
#include "neighbor.h" #include "gpu_extra.h"
#include "neigh_list.h"
#include "integrate.h" #include "integrate.h"
#include "memory.h" #include "memory.h"
#include "error.h" #include "neigh_list.h"
#include "neigh_request.h" #include "neigh_request.h"
#include "neighbor.h"
#include "suffix.h"
#include "universe.h" #include "universe.h"
#include "update.h" #include "update.h"
#include "domain.h"
#include "gpu_extra.h" #include <cmath>
#include "suffix.h" #include <cstring>
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
// External functions from cuda library for atom decomposition // External functions from gpu library for atom decomposition
int ljsmt_gpu_init(const int ntypes, double **cutsq, double **host_lj1, int ljsmt_gpu_init(const int ntypes, double **cutsq, double **host_lj1, double **host_lj2,
double **host_lj2, double **host_lj3, double **host_lj4, double **host_lj3, double **host_lj4, double **offset, double *special_lj,
double **offset, double *special_lj, const int nlocal, const int nlocal, const int nall, const int max_nbors, const int maxspecial,
const int nall, const int max_nbors, const int maxspecial, const double cell_size, int &gpu_mode, FILE *screen, double **host_ljsw0,
const double cell_size, int &gpu_mode, FILE *screen, double **host_ljsw1, double **host_ljsw2, double **host_ljsw3,
double **host_ljsw0, double **host_ljsw1, double **host_ljsw2, double **host_ljsw4, double **cut_inner, double **cut_innersq);
double **host_ljsw3, double **host_ljsw4,
double **cut_inner, double **cut_innersq);
void ljsmt_gpu_reinit(const int ntypes, double **cutsq, double **host_lj1, void ljsmt_gpu_reinit(const int ntypes, double **cutsq, double **host_lj1, double **host_lj2,
double **host_lj2, double **host_lj3, double **host_lj4, double **host_lj3, double **host_lj4, double **offset, double **host_ljsw0,
double **offset, double **host_ljsw1, double **host_ljsw2, double **host_ljsw3,
double **host_ljsw0, double **host_ljsw1, double **host_ljsw2, double **host_ljsw4, double **cut_inner, double **cut_innersq);
double **host_ljsw3, double **host_ljsw4,
double **cut_inner, double **cut_innersq);
void ljsmt_gpu_clear(); void ljsmt_gpu_clear();
int ** ljsmt_gpu_compute_n(const int ago, const int inum, int **ljsmt_gpu_compute_n(const int ago, const int inum, const int nall, double **host_x,
const int nall, double **host_x, int *host_type, int *host_type, double *sublo, double *subhi, tagint *tag, int **nspecial,
double *sublo, double *subhi, tagint *tag, int **nspecial, tagint **special, const bool eflag, const bool vflag, const bool eatom,
tagint **special, const bool eflag, const bool vflag, const bool vatom, int &host_start, int **ilist, int **jnum,
const bool eatom, const bool vatom, int &host_start,
int **ilist, int **jnum,
const double cpu_time, bool &success); const double cpu_time, bool &success);
void ljsmt_gpu_compute(const int ago, const int inum, const int nall, void ljsmt_gpu_compute(const int ago, const int inum, const int nall, double **host_x,
double **host_x, int *host_type, int *ilist, int *numj, int *host_type, int *ilist, int *numj, int **firstneigh, const bool eflag,
int **firstneigh, const bool eflag, const bool vflag, const bool vflag, const bool eatom, const bool vatom, int &host_start,
const bool eatom, const bool vatom, int &host_start,
const double cpu_time, bool &success); const double cpu_time, bool &success);
double ljsmt_gpu_bytes(); double ljsmt_gpu_bytes();
@ -94,7 +87,7 @@ PairLJSmoothGPU::~PairLJSmoothGPU()
void PairLJSmoothGPU::compute(int eflag, int vflag) void PairLJSmoothGPU::compute(int eflag, int vflag)
{ {
ev_init(eflag,vflag); ev_init(eflag, vflag);
int nall = atom->nlocal + atom->nghost; int nall = atom->nlocal + atom->nghost;
int inum, host_start; int inum, host_start;
@ -102,7 +95,7 @@ void PairLJSmoothGPU::compute(int eflag, int vflag)
bool success = true; bool success = true;
int *ilist, *numneigh, **firstneigh; int *ilist, *numneigh, **firstneigh;
if (gpu_mode != GPU_FORCE) { if (gpu_mode != GPU_FORCE) {
double sublo[3],subhi[3]; double sublo[3], subhi[3];
if (domain->triclinic == 0) { if (domain->triclinic == 0) {
sublo[0] = domain->sublo[0]; sublo[0] = domain->sublo[0];
sublo[1] = domain->sublo[1]; sublo[1] = domain->sublo[1];
@ -111,28 +104,24 @@ void PairLJSmoothGPU::compute(int eflag, int vflag)
subhi[1] = domain->subhi[1]; subhi[1] = domain->subhi[1];
subhi[2] = domain->subhi[2]; subhi[2] = domain->subhi[2];
} else { } else {
domain->bbox(domain->sublo_lamda,domain->subhi_lamda,sublo,subhi); domain->bbox(domain->sublo_lamda, domain->subhi_lamda, sublo, subhi);
} }
inum = atom->nlocal; inum = atom->nlocal;
firstneigh = ljsmt_gpu_compute_n(neighbor->ago, inum, nall, firstneigh =
atom->x, atom->type, sublo, ljsmt_gpu_compute_n(neighbor->ago, inum, nall, atom->x, atom->type, sublo, subhi, atom->tag,
subhi, atom->tag, atom->nspecial, atom->nspecial, atom->special, eflag, vflag, eflag_atom, vflag_atom,
atom->special, eflag, vflag, eflag_atom, host_start, &ilist, &numneigh, cpu_time, success);
vflag_atom, host_start,
&ilist, &numneigh, cpu_time, success);
} else { } else {
inum = list->inum; inum = list->inum;
ilist = list->ilist; ilist = list->ilist;
numneigh = list->numneigh; numneigh = list->numneigh;
firstneigh = list->firstneigh; firstneigh = list->firstneigh;
ljsmt_gpu_compute(neighbor->ago, inum, nall, atom->x, atom->type, ljsmt_gpu_compute(neighbor->ago, inum, nall, atom->x, atom->type, ilist, numneigh, firstneigh,
ilist, numneigh, firstneigh, eflag, vflag, eflag_atom, eflag, vflag, eflag_atom, vflag_atom, host_start, cpu_time, success);
vflag_atom, host_start, cpu_time, success);
} }
if (!success) if (!success) error->one(FLERR, "Insufficient memory on accelerator");
error->one(FLERR,"Insufficient memory on accelerator");
if (host_start<inum) { if (host_start < inum) {
cpu_time = MPI_Wtime(); cpu_time = MPI_Wtime();
cpu_compute(host_start, inum, eflag, vflag, ilist, numneigh, firstneigh); cpu_compute(host_start, inum, eflag, vflag, ilist, numneigh, firstneigh);
cpu_time = MPI_Wtime() - cpu_time; cpu_time = MPI_Wtime() - cpu_time;
@ -148,8 +137,7 @@ void PairLJSmoothGPU::init_style()
{ {
//cut_respa = nullptr; //cut_respa = nullptr;
if (force->newton_pair) if (force->newton_pair) error->all(FLERR, "Cannot use newton pair with lj/smooth/gpu pair style");
error->all(FLERR,"Cannot use newton pair with lj/smooth/gpu pair style");
// Repeat cutsq calculation because done after call to init_style // Repeat cutsq calculation because done after call to init_style
double maxcut = -1.0; double maxcut = -1.0;
@ -157,10 +145,9 @@ void PairLJSmoothGPU::init_style()
for (int i = 1; i <= atom->ntypes; i++) { for (int i = 1; i <= atom->ntypes; i++) {
for (int j = i; j <= atom->ntypes; j++) { for (int j = i; j <= atom->ntypes; j++) {
if (setflag[i][j] != 0 || (setflag[i][i] != 0 && setflag[j][j] != 0)) { if (setflag[i][j] != 0 || (setflag[i][i] != 0 && setflag[j][j] != 0)) {
cut = init_one(i,j); cut = init_one(i, j);
cut *= cut; cut *= cut;
if (cut > maxcut) if (cut > maxcut) maxcut = cut;
maxcut = cut;
cutsq[i][j] = cutsq[j][i] = cut; cutsq[i][j] = cutsq[j][i] = cut;
} else } else
cutsq[i][j] = cutsq[j][i] = 0.0; cutsq[i][j] = cutsq[j][i] = 0.0;
@ -168,19 +155,17 @@ void PairLJSmoothGPU::init_style()
} }
double cell_size = sqrt(maxcut) + neighbor->skin; double cell_size = sqrt(maxcut) + neighbor->skin;
int maxspecial=0; int maxspecial = 0;
if (atom->molecular) if (atom->molecular) maxspecial = atom->maxspecial;
maxspecial=atom->maxspecial;
int mnf = 5e-2 * neighbor->oneatom; int mnf = 5e-2 * neighbor->oneatom;
int success = ljsmt_gpu_init(atom->ntypes+1, cutsq, lj1, lj2, lj3, lj4, int success =
offset, force->special_lj, atom->nlocal, ljsmt_gpu_init(atom->ntypes + 1, cutsq, lj1, lj2, lj3, lj4, offset, force->special_lj,
atom->nlocal+atom->nghost, mnf, maxspecial, atom->nlocal, atom->nlocal + atom->nghost, mnf, maxspecial, cell_size,
cell_size, gpu_mode, screen, ljsw0, ljsw1, ljsw2, gpu_mode, screen, ljsw0, ljsw1, ljsw2, ljsw3, ljsw4, cut_inner, cut_inner_sq);
ljsw3, ljsw4, cut_inner, cut_inner_sq); GPU_EXTRA::check_flag(success, error, world);
GPU_EXTRA::check_flag(success,error,world);
if (gpu_mode == GPU_FORCE) { if (gpu_mode == GPU_FORCE) {
int irequest = neighbor->request(this,instance_me); int irequest = neighbor->request(this, instance_me);
neighbor->requests[irequest]->half = 0; neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->full = 1; neighbor->requests[irequest]->full = 1;
} }
@ -192,7 +177,8 @@ void PairLJSmoothGPU::reinit()
{ {
Pair::reinit(); Pair::reinit();
ljsmt_gpu_reinit(atom->ntypes+1, cutsq, lj1, lj2, lj3, lj4, offset, ljsw0, ljsw1, ljsw2, ljsw3, ljsw4, cut_inner, cut_inner_sq); ljsmt_gpu_reinit(atom->ntypes + 1, cutsq, lj1, lj2, lj3, lj4, offset, ljsw0, ljsw1, ljsw2, ljsw3,
ljsw4, cut_inner, cut_inner_sq);
} }
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
@ -205,12 +191,13 @@ double PairLJSmoothGPU::memory_usage()
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
void PairLJSmoothGPU::cpu_compute(int start, int inum, int eflag, int /* vflag */, void PairLJSmoothGPU::cpu_compute(int start, int inum, int eflag, int /* vflag */, int *ilist,
int *ilist, int *numneigh, int **firstneigh) { int *numneigh, int **firstneigh)
int i,j,ii,jj,jnum,itype,jtype; {
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; int i, j, ii, jj, jnum, itype, jtype;
double rsq,r2inv,r6inv,forcelj,factor_lj; double xtmp, ytmp, ztmp, delx, dely, delz, evdwl, fpair;
double r,t,tsq,fskin; double rsq, r2inv, r6inv, forcelj, factor_lj;
double r, t, tsq, fskin;
int *jlist; int *jlist;
double **x = atom->x; double **x = atom->x;
@ -237,43 +224,41 @@ void PairLJSmoothGPU::cpu_compute(int start, int inum, int eflag, int /* vflag *
delx = xtmp - x[j][0]; delx = xtmp - x[j][0];
dely = ytmp - x[j][1]; dely = ytmp - x[j][1];
delz = ztmp - x[j][2]; delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz; rsq = delx * delx + dely * dely + delz * delz;
jtype = type[j]; jtype = type[j];
if (rsq < cutsq[itype][jtype]) { if (rsq < cutsq[itype][jtype]) {
r2inv = 1.0/rsq; r2inv = 1.0 / rsq;
if (rsq < cut_inner_sq[itype][jtype]) { if (rsq < cut_inner_sq[itype][jtype]) {
r6inv = r2inv*r2inv*r2inv; r6inv = r2inv * r2inv * r2inv;
forcelj = r6inv * (lj1[itype][jtype]*r6inv-lj2[itype][jtype]); forcelj = r6inv * (lj1[itype][jtype] * r6inv - lj2[itype][jtype]);
} else { } else {
r = sqrt(rsq); r = sqrt(rsq);
t = r - cut_inner[itype][jtype]; t = r - cut_inner[itype][jtype];
tsq = t*t; tsq = t * t;
fskin = ljsw1[itype][jtype] + ljsw2[itype][jtype]*t + fskin = ljsw1[itype][jtype] + ljsw2[itype][jtype] * t + ljsw3[itype][jtype] * tsq +
ljsw3[itype][jtype]*tsq + ljsw4[itype][jtype]*tsq*t; ljsw4[itype][jtype] * tsq * t;
forcelj = fskin*r; forcelj = fskin * r;
} }
fpair = factor_lj*forcelj*r2inv; fpair = factor_lj * forcelj * r2inv;
f[i][0] += delx*fpair; f[i][0] += delx * fpair;
f[i][1] += dely*fpair; f[i][1] += dely * fpair;
f[i][2] += delz*fpair; f[i][2] += delz * fpair;
if (eflag) { if (eflag) {
if (rsq < cut_inner_sq[itype][jtype]) if (rsq < cut_inner_sq[itype][jtype])
evdwl = r6inv * (lj3[itype][jtype]*r6inv - evdwl = r6inv * (lj3[itype][jtype] * r6inv - lj4[itype][jtype]) - offset[itype][jtype];
lj4[itype][jtype]) - offset[itype][jtype];
else else
evdwl = ljsw0[itype][jtype] - ljsw1[itype][jtype]*t - evdwl = ljsw0[itype][jtype] - ljsw1[itype][jtype] * t -
ljsw2[itype][jtype]*tsq/2.0 - ljsw3[itype][jtype]*tsq*t/3.0 - ljsw2[itype][jtype] * tsq / 2.0 - ljsw3[itype][jtype] * tsq * t / 3.0 -
ljsw4[itype][jtype]*tsq*tsq/4.0 - offset[itype][jtype]; ljsw4[itype][jtype] * tsq * tsq / 4.0 - offset[itype][jtype];
evdwl *= factor_lj; evdwl *= factor_lj;
} }
if (evflag) ev_tally_full(i,evdwl,0.0,fpair,delx,dely,delz); if (evflag) ev_tally_full(i, evdwl, 0.0, fpair, delx, dely, delz);
} }
} }
} }
} }

View File

@ -12,9 +12,9 @@
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
#ifdef PAIR_CLASS #ifdef PAIR_CLASS
// clang-format off
PairStyle(lj/smooth/gpu,PairLJSmoothGPU) PairStyle(lj/smooth/gpu, PairLJSmoothGPU);
// clang-format on
#else #else
#ifndef LMP_PAIR_LJ_SMOOTH_GPU_H #ifndef LMP_PAIR_LJ_SMOOTH_GPU_H
@ -41,7 +41,7 @@ class PairLJSmoothGPU : public PairLJSmooth {
double cpu_time; double cpu_time;
}; };
} } // namespace LAMMPS_NS
#endif #endif
#endif #endif
@ -57,4 +57,3 @@ E: Cannot use newton pair with lj/smooth/gpu pair style
Self-explanatory. Self-explanatory.
*/ */