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(lj/charmmfsw/coul/charmmfsh,PairLJCharmmfswCoulCharmmfsh);
17 // clang-format on
18 #else
19 
20 #ifndef LMP_PAIR_LJ_CHARMMFSW_COUL_CHARMMFSH_H
21 #define LMP_PAIR_LJ_CHARMMFSW_COUL_CHARMMFSH_H
22 
23 #include "pair.h"
24 
25 namespace LAMMPS_NS {
26 
27 class PairLJCharmmfswCoulCharmmfsh : public Pair {
28  public:
29   PairLJCharmmfswCoulCharmmfsh(class LAMMPS *);
30   virtual ~PairLJCharmmfswCoulCharmmfsh();
31   virtual void compute(int, int);
32   virtual void settings(int, char **);
33   void coeff(int, char **);
34   virtual void init_style();
35   virtual double init_one(int, int);
36   void write_restart(FILE *);
37   void read_restart(FILE *);
38   void write_restart_settings(FILE *);
39   void read_restart_settings(FILE *);
40   void write_data(FILE *);
41   void write_data_all(FILE *);
42   virtual double single(int, int, int, int, double, double, double, double &);
43   virtual void *extract(const char *, int &);
44 
45  protected:
46   int implicit;
47   int dihedflag;
48 
49   double cut_lj_inner, cut_lj, cut_coul, cut_coulinv, cut_ljinv, cut_lj_innerinv;
50   double cut_lj_innersq, cut_ljsq, cut_coulsq, cut_bothsq;
51   double cut_lj3inv, cut_lj_inner3inv, cut_lj3, cut_lj_inner3;
52   double cut_lj6inv, cut_lj_inner6inv, cut_lj6, cut_lj_inner6;
53   double denom_lj, denom_lj12, denom_lj6;
54 
55   double **epsilon, **sigma, **eps14, **sigma14;
56   double **lj1, **lj2, **lj3, **lj4;
57   double **lj14_1, **lj14_2, **lj14_3, **lj14_4;
58 
59   virtual void allocate();
60 };
61 
62 }    // namespace LAMMPS_NS
63 
64 #endif
65 #endif
66 
67 /* ERROR/WARNING messages:
68 
69 E: Illegal ... command
70 
71 Self-explanatory.  Check the input script syntax and compare to the
72 documentation for the command.  You can use -echo screen as a
73 command-line option when running LAMMPS to see the offending line.
74 
75 E: Incorrect args for pair coefficients
76 
77 Self-explanatory.  Check the input script or data file.
78 
79 E: Pair style lj/charmmfsw/coul/charmmfsh requires atom attribute q
80 
81 The atom style defined does not have these attributes.
82 
83 E: Pair inner lj cutoff >= Pair outer lj cutoff
84 
85 UNDOCUMENTED
86 
87 U: Pair inner cutoff >= Pair outer cutoff
88 
89 The specified cutoffs for the pair style are inconsistent.
90 
91 */
92