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_NTOPO_H
15 #define LMP_NTOPO_H
16 
17 #include "pointers.h"
18 
19 namespace LAMMPS_NS {
20 
21 class NTopo : protected Pointers {
22  public:
23   int nbondlist, nanglelist, ndihedrallist, nimproperlist;
24   int **bondlist, **anglelist, **dihedrallist, **improperlist;
25 
26   NTopo(class LAMMPS *);
27   virtual ~NTopo();
28 
29   virtual void build() = 0;
30 
31   double memory_usage();
32 
33  protected:
34   int me, nprocs;
35   int maxbond, maxangle, maxdihedral, maximproper;
36   int cluster_check;    // copy from Neighbor
37 
38   void allocate_bond();
39   void allocate_angle();
40   void allocate_dihedral();
41   void allocate_improper();
42 
43   void bond_check();
44   void angle_check();
45   void dihedral_check(int, int **);
46 };
47 
48 }    // namespace LAMMPS_NS
49 
50 #endif
51 
52 /* ERROR/WARNING messages:
53 
54 E: Bond extent > half of periodic box length
55 
56 UNDOCUMENTED
57 
58 E: Angle extent > half of periodic box length
59 
60 UNDOCUMENTED
61 
62 E: Dihedral/improper extent > half of periodic box length
63 
64 UNDOCUMENTED
65 
66 */
67