From a9c6d6f117a72829823b2a3f99ceca8992086a71 Mon Sep 17 00:00:00 2001 From: Joel Clemmer Date: Sat, 19 Dec 2020 14:11:46 -0700 Subject: [PATCH] Removing temporary utilities --- src/compute_property_local.cpp | 48 ++--- src/pair_full_print.cpp | 341 --------------------------------- src/pair_full_print.h | 72 ------- 3 files changed, 15 insertions(+), 446 deletions(-) delete mode 100644 src/pair_full_print.cpp delete mode 100644 src/pair_full_print.h diff --git a/src/compute_property_local.cpp b/src/compute_property_local.cpp index fd0391831c..651e1190b1 100644 --- a/src/compute_property_local.cpp +++ b/src/compute_property_local.cpp @@ -35,7 +35,7 @@ enum{TYPE,RADIUS}; ComputePropertyLocal::ComputePropertyLocal(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg), - vlocal(nullptr), alocal(nullptr), indices(nullptr), pack_choice(nullptr) + vlocal(NULL), alocal(NULL), indices(NULL), pack_choice(NULL) { if (narg < 4) error->all(FLERR,"Illegal compute property/local command"); @@ -233,7 +233,7 @@ ComputePropertyLocal::ComputePropertyLocal(LAMMPS *lmp, int narg, char **arg) : // error check - if (atom->molecular == Atom::TEMPLATE && (kindflag == BOND || kindflag == ANGLE || + if (atom->molecular == 2 && (kindflag == BOND || kindflag == ANGLE || kindflag == DIHEDRAL || kindflag == IMPROPER)) error->all(FLERR,"Compute property/local does not (yet) work " "with atom_style template"); @@ -254,8 +254,8 @@ ComputePropertyLocal::ComputePropertyLocal(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Compute property/local requires atom attribute radius"); nmax = 0; - vlocal = nullptr; - alocal = nullptr; + vlocal = NULL; + alocal = NULL; } /* ---------------------------------------------------------------------- */ @@ -273,7 +273,7 @@ ComputePropertyLocal::~ComputePropertyLocal() void ComputePropertyLocal::init() { if (kindflag == NEIGH || kindflag == PAIR) { - if (force->pair == nullptr) + if (force->pair == NULL) error->all(FLERR,"No pair style is defined for compute property/local"); if (force->pair->single_enable == 0) error->all(FLERR,"Pair style does not support compute property/local"); @@ -665,16 +665,12 @@ double ComputePropertyLocal::memory_usage() void ComputePropertyLocal::pack_patom1(int n) { - int i,j; + int i; tagint *tag = atom->tag; for (int m = 0; m < ncount; m++) { i = indices[m][0]; - j = indices[m][1]; - if(tag[i] < tag[j]) - buf[n] = tag[i]; - else - buf[n] = tag[j]; + buf[n] = tag[i]; n += nvalues; } } @@ -683,16 +679,12 @@ void ComputePropertyLocal::pack_patom1(int n) void ComputePropertyLocal::pack_patom2(int n) { - int i,j; + int i; tagint *tag = atom->tag; for (int m = 0; m < ncount; m++) { - i = indices[m][0]; - j = indices[m][1]; - if(tag[i] > tag[j]) - buf[n] = tag[i]; - else - buf[n] = tag[j]; + i = indices[m][1]; + buf[n] = tag[i]; n += nvalues; } } @@ -701,17 +693,12 @@ void ComputePropertyLocal::pack_patom2(int n) void ComputePropertyLocal::pack_ptype1(int n) { - int i,j; + int i; int *type = atom->type; - tagint *tag = atom->tag; for (int m = 0; m < ncount; m++) { i = indices[m][0]; - j = indices[m][1]; - if(tag[i] < tag[j]) - buf[n] = type[i]; - else - buf[n] = type[j]; + buf[n] = type[i]; n += nvalues; } } @@ -720,17 +707,12 @@ void ComputePropertyLocal::pack_ptype1(int n) void ComputePropertyLocal::pack_ptype2(int n) { - int i,j; + int i; int *type = atom->type; - tagint *tag = atom->tag; for (int m = 0; m < ncount; m++) { - i = indices[m][0]; - j = indices[m][1]; - if(tag[i] > tag[j]) - buf[n] = type[i]; - else - buf[n] = type[j]; + i = indices[m][1]; + buf[n] = type[i]; n += nvalues; } } diff --git a/src/pair_full_print.cpp b/src/pair_full_print.cpp deleted file mode 100644 index bf42a81288..0000000000 --- a/src/pair_full_print.cpp +++ /dev/null @@ -1,341 +0,0 @@ -/* ---------------------------------------------------------------------- - LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator - http://lammps.sandia.gov, Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov - - Copyright (2003) Sandia Corporation. Under the terms of Contract - DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains - certain rights in this software. This software is distributed under - the GNU General Public License. - - See the README file in the top-level LAMMPS directory. -------------------------------------------------------------------------- */ - -#include "pair_full_print.h" - -#include -#include -#include "atom.h" -#include "comm.h" -#include "force.h" -#include "neigh_list.h" -#include "neigh_request.h" -#include "neighbor.h" -#include "math_const.h" -#include "memory.h" -#include "error.h" - - -using namespace LAMMPS_NS; -using namespace MathConst; - -/* ---------------------------------------------------------------------- */ - -PairFullPrint::PairFullPrint(LAMMPS *lmp) : Pair(lmp) -{ - writedata = 1; -} - -/* ---------------------------------------------------------------------- */ - -PairFullPrint::~PairFullPrint() -{ - if (allocated) { - memory->destroy(setflag); - memory->destroy(cutsq); - - memory->destroy(prefactor); - memory->destroy(cut); - } -} - -/* ---------------------------------------------------------------------- */ - -void PairFullPrint::compute(int eflag, int vflag) -{ - int i,j,ii,jj,inum,jnum,itype,jtype; - double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; - double r,rsq,arg,factor_lj; - int *ilist,*jlist,*numneigh,**firstneigh; - - evdwl = 0.0; - ev_init(eflag,vflag); - - double **x = atom->x; - double **f = atom->f; - tagint *tag = atom->tag; - int *type = atom->type; - int nlocal = atom->nlocal; - double *special_lj = force->special_lj; - int newton_pair = force->newton_pair; - - inum = list->inum; - ilist = list->ilist; - numneigh = list->numneigh; - firstneigh = list->firstneigh; - - // loop over neighbors of my atoms - - for (ii = 0; ii < inum; ii++) { - i = ilist[ii]; - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; - itype = type[i]; - jlist = firstneigh[i]; - jnum = numneigh[i]; - - for (jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - factor_lj = special_lj[sbmask(j)]; - j &= NEIGHMASK; - - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; - jtype = type[j]; - - if (rsq < cutsq[itype][jtype]) { - printf("NLIST %d %d %d %d\n", tag[i], tag[j], type[i], type[j]); - r = sqrt(rsq); - arg = MY_PI*r/cut[itype][jtype]; - if (r > 0.0) fpair = factor_lj * prefactor[itype][jtype] * - sin(arg) * MY_PI/cut[itype][jtype]/r; - else fpair = 0.0; - - f[i][0] += delx*fpair; - f[i][1] += dely*fpair; - f[i][2] += delz*fpair; - - if (eflag) - evdwl = factor_lj * prefactor[itype][jtype] * (1.0+cos(arg)); - - if (evflag) ev_tally(i,j,nlocal,newton_pair, - evdwl,0.0,fpair,delx,dely,delz); - } - } - } - - if (vflag_fdotr) virial_fdotr_compute(); -} - -/* ---------------------------------------------------------------------- - allocate all arrays -------------------------------------------------------------------------- */ - -void PairFullPrint::allocate() -{ - allocated = 1; - int n = atom->ntypes; - - memory->create(setflag,n+1,n+1,"pair:setflag"); - for (int i = 1; i <= n; i++) - for (int j = i; j <= n; j++) - setflag[i][j] = 0; - - memory->create(cutsq,n+1,n+1,"pair:cutsq"); - - memory->create(prefactor,n+1,n+1,"pair:prefactor"); - memory->create(cut,n+1,n+1,"pair:cut"); -} - -/* ---------------------------------------------------------------------- - global settings -------------------------------------------------------------------------- */ - -void PairFullPrint::settings(int narg, char **arg) -{ - if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - - cut_global = utils::numeric(FLERR,arg[0],false,lmp); - - // reset cutoffs that have been explicitly set - - if (allocated) { - int i,j; - for (i = 1; i <= atom->ntypes; i++) - for (j = i; j <= atom->ntypes; j++) - if (setflag[i][j]) cut[i][j] = cut_global; - } -} - -/* ---------------------------------------------------------------------- - set coeffs for one or more type pairs -------------------------------------------------------------------------- */ - -void PairFullPrint::coeff(int narg, char **arg) -{ - if (narg < 3 || narg > 4) - error->all(FLERR,"Incorrect args for pair coefficients"); - if (!allocated) allocate(); - - int ilo,ihi,jlo,jhi; - utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); - utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - - double prefactor_one = utils::numeric(FLERR,arg[2],false,lmp); - - double cut_one = cut_global; - if (narg == 4) cut_one = utils::numeric(FLERR,arg[3],false,lmp); - - int count = 0; - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - prefactor[i][j] = prefactor_one; - cut[i][j] = cut_one; - setflag[i][j] = 1; - count++; - } - } - - if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); -} - -/* ---------------------------------------------------------------------- - init specific to this pair style - ------------------------------------------------------------------------- */ - -void PairFullPrint::init_style() { - // need a full neighbor list - int irequest = neighbor->request(this,instance_me); - neighbor->requests[irequest]->half = 0; - neighbor->requests[irequest]->full = 1; -} - - -/* ---------------------------------------------------------------------- - init for one type pair i,j and corresponding j,i -------------------------------------------------------------------------- */ - -double PairFullPrint::init_one(int i, int j) -{ - // always mix prefactors geometrically - - if (setflag[i][j] == 0) { - prefactor[i][j] = sqrt(prefactor[i][i]*prefactor[j][j]); - cut[i][j] = mix_distance(cut[i][i],cut[j][j]); - } - - prefactor[j][i] = prefactor[i][j]; - cut[j][i] = cut[i][j]; - - return cut[i][j]; -} - -/* ---------------------------------------------------------------------- - proc 0 writes to restart file -------------------------------------------------------------------------- */ - -void PairFullPrint::write_restart(FILE *fp) -{ - write_restart_settings(fp); - - int i,j; - for (i = 1; i <= atom->ntypes; i++) - for (j = i; j <= atom->ntypes; j++) { - fwrite(&setflag[i][j],sizeof(int),1,fp); - if (setflag[i][j]) { - fwrite(&prefactor[i][j],sizeof(double),1,fp); - fwrite(&cut[i][j],sizeof(double),1,fp); - } - } -} - -/* ---------------------------------------------------------------------- - proc 0 reads from restart file, bcasts -------------------------------------------------------------------------- */ - -void PairFullPrint::read_restart(FILE *fp) -{ - read_restart_settings(fp); - - allocate(); - - int i,j; - int me = comm->me; - for (i = 1; i <= atom->ntypes; i++) - for (j = i; j <= atom->ntypes; j++) { - if (me == 0) utils::sfread(FLERR,&setflag[i][j],sizeof(int),1,fp,nullptr,error); - MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); - if (setflag[i][j]) { - if (me == 0) { - utils::sfread(FLERR,&prefactor[i][j],sizeof(double),1,fp,nullptr,error); - utils::sfread(FLERR,&cut[i][j],sizeof(double),1,fp,nullptr,error); - } - MPI_Bcast(&prefactor[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world); - } - } -} - -/* ---------------------------------------------------------------------- - proc 0 writes to restart file -------------------------------------------------------------------------- */ - -void PairFullPrint::write_restart_settings(FILE *fp) -{ - fwrite(&cut_global,sizeof(double),1,fp); - fwrite(&mix_flag,sizeof(int),1,fp); -} - -/* ---------------------------------------------------------------------- - proc 0 reads from restart file, bcasts -------------------------------------------------------------------------- */ - -void PairFullPrint::read_restart_settings(FILE *fp) -{ - if (comm->me == 0) { - utils::sfread(FLERR,&cut_global,sizeof(double),1,fp,nullptr,error); - utils::sfread(FLERR,&mix_flag,sizeof(int),1,fp,nullptr,error); - } - MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world); - MPI_Bcast(&mix_flag,1,MPI_INT,0,world); -} - -/* ---------------------------------------------------------------------- - proc 0 writes to data file -------------------------------------------------------------------------- */ - -void PairFullPrint::write_data(FILE *fp) -{ - for (int i = 1; i <= atom->ntypes; i++) - fprintf(fp,"%d %g\n",i,prefactor[i][i]); -} - -/* ---------------------------------------------------------------------- - proc 0 writes all pairs to data file -------------------------------------------------------------------------- */ - -void PairFullPrint::write_data_all(FILE *fp) -{ - for (int i = 1; i <= atom->ntypes; i++) - for (int j = i; j <= atom->ntypes; j++) - fprintf(fp,"%d %d %g %g\n",i,j,prefactor[i][j],cut[i][j]); -} - -/* ---------------------------------------------------------------------- */ - -double PairFullPrint::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, - double /*factor_coul*/, double factor_lj, - double &fforce) -{ - double r,arg,philj; - - r = sqrt(rsq); - arg = MY_PI*r/cut[itype][jtype]; - fforce = factor_lj * prefactor[itype][jtype] * - sin(arg) * MY_PI/cut[itype][jtype]/r; - - philj = prefactor[itype][jtype] * (1.0+cos(arg)); - return factor_lj*philj; -} - -/* ---------------------------------------------------------------------- */ - -void *PairFullPrint::extract(const char *str, int &dim) -{ - dim = 2; - if (strcmp(str,"a") == 0) return (void *) prefactor; - return nullptr; -} diff --git a/src/pair_full_print.h b/src/pair_full_print.h deleted file mode 100644 index 31b51f4e97..0000000000 --- a/src/pair_full_print.h +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- c++ -*- ---------------------------------------------------------- - LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator - http://lammps.sandia.gov, Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov - - Copyright (2003) Sandia Corporation. Under the terms of Contract - DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains - certain rights in this software. This software is distributed under - the GNU General Public License. - - See the README file in the top-level LAMMPS directory. -------------------------------------------------------------------------- */ - -#ifdef PAIR_CLASS - -PairStyle(full/print,PairFullPrint) - -#else - -#ifndef LMP_PAIR_FULL_PRINT_H -#define LMP_PAIR_FULL_PRINT_H - -#include "pair.h" - -namespace LAMMPS_NS { - -class PairFullPrint : public Pair { - friend class Pair; - - public: - PairFullPrint(class LAMMPS *); - virtual ~PairFullPrint(); - void init_style(); - virtual void compute(int, int); - void settings(int, char **); - void coeff(int, char **); - double init_one(int, int); - void write_restart(FILE *); - void read_restart(FILE *); - void write_restart_settings(FILE *); - void read_restart_settings(FILE *); - void write_data(FILE *); - void write_data_all(FILE *); - double single(int, int, int, int, double, double, double, double &); - void *extract(const char *, int &); - - protected: - double cut_global; - double **prefactor; - double **cut; - - void allocate(); -}; - -} - -#endif -#endif - -/* ERROR/WARNING messages: - -E: Illegal ... command - -Self-explanatory. Check the input script syntax and compare to the -documentation for the command. You can use -echo screen as a -command-line option when running LAMMPS to see the offending line. - -E: Incorrect args for pair coefficients - -Self-explanatory. Check the input script or data file. - -*/