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(hbond/dreiding/lj,PairHbondDreidingLJ);
17 // clang-format on
18 #else
19 
20 #ifndef LMP_PAIR_HBOND_DREIDING_LJ_H
21 #define LMP_PAIR_HBOND_DREIDING_LJ_H
22 
23 #include "pair.h"
24 
25 namespace LAMMPS_NS {
26 
27 class PairHbondDreidingLJ : public Pair {
28  public:
29   PairHbondDreidingLJ(class LAMMPS *);
30   virtual ~PairHbondDreidingLJ();
31   virtual void compute(int, int);
32   void settings(int, char **);
33   virtual void coeff(int, char **);
34   virtual void init_style();
35   double init_one(int, int);
36   virtual double single(int, int, int, int, double, double, double, double &);
37 
38  protected:
39   double cut_inner_global, cut_outer_global, cut_angle_global;
40   int ap_global;
41 
42   struct Param {
43     double epsilon, sigma;
44     double lj1, lj2, lj3, lj4;
45     double d0, alpha, r0;
46     double morse1;
47     double denom_vdw;
48     double cut_inner, cut_outer, cut_innersq, cut_outersq, cut_angle, offset;
49     int ap;
50   };
51 
52   Param *params;    // parameter set for an I-J-K interaction
53   int nparams;      // number of parameters read
54   int maxparam;
55 
56   int *donor;           // 1 if this type is ever a donor, else 0
57   int *acceptor;        // 1 if this type is ever an acceptor, else 0
58   int ***type2param;    // mapping from D,A,H to params, -1 if no map
59 
60   void allocate();
61 };
62 
63 }    // namespace LAMMPS_NS
64 
65 #endif
66 #endif
67 
68 /* ERROR/WARNING messages:
69 
70 E: Illegal ... command
71 
72 Self-explanatory.  Check the input script syntax and compare to the
73 documentation for the command.  You can use -echo screen as a
74 command-line option when running LAMMPS to see the offending line.
75 
76 E: Incorrect args for pair coefficients
77 
78 Self-explanatory.  Check the input script or data file.
79 
80 E: Pair inner cutoff >= Pair outer cutoff
81 
82 The specified cutoffs for the pair style are inconsistent.
83 
84 E: Pair style hbond/dreiding requires molecular system
85 
86 Self-explanatory.
87 
88 E: Pair style hbond/dreiding requires atom IDs
89 
90 Self-explanatory.
91 
92 E: Pair style hbond/dreiding requires an atom map, see atom_modify
93 
94 Self-explanatory.
95 
96 E: Pair style hbond/dreiding requires newton pair on
97 
98 See the newton command for details.
99 
100 E: No pair hbond/dreiding coefficients set
101 
102 Self-explanatory.
103 
104 */
105