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 DIHEDRAL_CLASS
15 // clang-format off
16 DihedralStyle(hybrid,DihedralHybrid);
17 // clang-format on
18 #else
19 
20 #ifndef LMP_DIHEDRAL_HYBRID_H
21 #define LMP_DIHEDRAL_HYBRID_H
22 
23 #include "dihedral.h"
24 
25 namespace LAMMPS_NS {
26 
27 class DihedralHybrid : public Dihedral {
28  public:
29   int nstyles;          // # of different dihedral styles
30   Dihedral **styles;    // class list for each Dihedral style
31   char **keywords;      // keyword for each dihedral style
32 
33   DihedralHybrid(class LAMMPS *);
34   ~DihedralHybrid();
35   void compute(int, int);
36   void settings(int, char **);
37   void coeff(int, char **);
38   void init_style();
39   void write_restart(FILE *);
40   void read_restart(FILE *);
41   double memory_usage();
42 
43  private:
44   int *map;    // which style each dihedral type points to
45 
46   int *ndihedrallist;     // # of dihedrals in sub-style dihedrallists
47   int *maxdihedral;       // max # of dihedrals sub-style lists can store
48   int ***dihedrallist;    // dihedrallist for each sub-style
49 
50   void allocate();
51 };
52 
53 }    // namespace LAMMPS_NS
54 
55 #endif
56 #endif
57 
58 /* ERROR/WARNING messages:
59 
60 E: Illegal ... command
61 
62 Self-explanatory.  Check the input script syntax and compare to the
63 documentation for the command.  You can use -echo screen as a
64 command-line option when running LAMMPS to see the offending line.
65 
66 E: Dihedral style hybrid cannot use same dihedral style twice
67 
68 Self-explanatory.
69 
70 E: Dihedral style hybrid cannot have hybrid as an argument
71 
72 Self-explanatory.
73 
74 E: Dihedral style hybrid cannot have none as an argument
75 
76 Self-explanatory.
77 
78 E: Dihedral coeff for hybrid has invalid style
79 
80 Dihedral style hybrid uses another dihedral style as one of its
81 coefficients.  The dihedral style used in the dihedral_coeff command
82 or read from a restart file is not recognized.
83 
84 */
85