1 /* -*- c++ -*- ---------------------------------------------------------- 2 LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator 3 https://www.lammps.org/, Sandia National Laboratories 4 Steve Plimpton, sjplimp@sandia.gov 5 6 Copyright (2003) Sandia Corporation. Under the terms of Contract 7 DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains 8 certain rights in this software. This software is distributed under 9 the GNU General Public License. 10 11 See the README file in the top-level LAMMPS directory. 12 ------------------------------------------------------------------------- */ 13 14 #ifdef PAIR_CLASS 15 // clang-format off 16 PairStyle(ilp/graphene/hbn,PairILPGrapheneHBN); 17 // clang-format on 18 #else 19 20 #ifndef LMP_PAIR_ILP_GRAPHENE_HBN_H 21 #define LMP_PAIR_ILP_GRAPHENE_HBN_H 22 23 #include "pair.h" 24 25 namespace LAMMPS_NS { 26 27 class PairILPGrapheneHBN : public Pair { 28 public: 29 PairILPGrapheneHBN(class LAMMPS *); 30 virtual ~PairILPGrapheneHBN(); 31 32 virtual void compute(int, int); 33 void settings(int, char **); 34 void coeff(int, char **); 35 double init_one(int, int); 36 void init_style(); 37 void ILP_neigh(); 38 void calc_normal(); 39 void calc_FRep(int, int); 40 void calc_FvdW(int, int); 41 double single(int, int, int, int, double, double, double, double &); 42 43 static constexpr int NPARAMS_PER_LINE = 13; 44 45 protected: 46 int me; 47 int maxlocal; // size of numneigh, firstneigh arrays 48 int pgsize; // size of neighbor page 49 int oneatom; // max # of neighbors for one atom 50 MyPage<int> *ipage; // neighbor list pages 51 int *ILP_numneigh; // # of pair neighbors for each atom 52 int **ILP_firstneigh; // ptr to 1st neighbor of each atom 53 int tap_flag; // flag to turn on/off taper function 54 55 struct Param { 56 double z0, alpha, epsilon, C, delta, d, sR, reff, C6, S; 57 double delta2inv, seff, lambda, rcut; 58 int ielement, jelement; 59 }; 60 Param *params; // parameter set for I-J interactions 61 int nmax; // max # of atoms 62 63 double cut_global; 64 double cut_normal; 65 double **cutILPsq; // mapping the cutoff from element pairs to parameters 66 double **offset; 67 double **normal; 68 double ***dnormdri; 69 double ****dnormal; 70 71 void read_file(char *); 72 void allocate(); 73 }; 74 75 } // namespace LAMMPS_NS 76 77 #endif 78 #endif 79 80 /* ERROR/WARNING messages: 81 82 E: Illegal ... command 83 84 Self-explanatory. Check the input script syntax and compare to the 85 documentation for the command. You can use -echo screen as a 86 command-line option when running LAMMPS to see the offending line. 87 88 E: Incorrect args for pair coefficients 89 90 Self-explanatory. Check the input script or data file. 91 92 E: All pair coeffs are not set 93 94 All pair coefficients must be set in the data file or by the 95 pair_coeff command before running a simulation. 96 97 */ 98