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 #ifndef LMP_SPECIAL_H 15 #define LMP_SPECIAL_H 16 17 #include "pointers.h" 18 19 namespace LAMMPS_NS { 20 21 class Special : protected Pointers { 22 public: 23 Special(class LAMMPS *); 24 ~Special(); 25 void build(); 26 27 private: 28 int me, nprocs; 29 int maxall; 30 tagint **onetwo, **onethree, **onefour; 31 32 // data used by rendezvous callback methods 33 34 int nrvous; 35 tagint *atomIDs; 36 int *procowner; 37 38 struct IDRvous { 39 int me; 40 tagint atomID; 41 }; 42 43 struct PairRvous { 44 tagint atomID, partnerID; 45 }; 46 47 // private methods 48 49 void atom_owners(); 50 void onetwo_build_newton(); 51 void onetwo_build_newton_off(); 52 void onethree_build(); 53 void onefour_build(); 54 55 void dedup(); 56 void angle_trim(); 57 void dihedral_trim(); 58 void combine(); 59 void fix_alteration(); 60 void timer_output(double); 61 62 // callback functions for rendezvous communication 63 64 static int rendezvous_ids(int, char *, int &, int *&, char *&, void *); 65 static int rendezvous_pairs(int, char *, int &, int *&, char *&, void *); 66 }; 67 68 } // namespace LAMMPS_NS 69 70 #endif 71 72 /* ERROR/WARNING messages: 73 74 E: 1-3 bond count is inconsistent 75 76 An inconsistency was detected when computing the number of 1-3 77 neighbors for each atom. This likely means something is wrong with 78 the bond topologies you have defined. 79 80 E: 1-4 bond count is inconsistent 81 82 An inconsistency was detected when computing the number of 1-4 83 neighbors for each atom. This likely means something is wrong with 84 the bond topologies you have defined. 85 86 */ 87