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 INTEGRATE_CLASS
15 // clang-format off
16 IntegrateStyle(respa/omp,RespaOMP);
17 // clang-format on
18 #else
19 
20 #ifndef LMP_RESPA_OMP_H
21 #define LMP_RESPA_OMP_H
22 
23 #include "respa.h"
24 #include "thr_omp.h"
25 
26 namespace LAMMPS_NS {
27 
28 class RespaOMP : public Respa, public ThrOMP {
29  public:
30   RespaOMP(class LAMMPS *, int, char **);
~RespaOMP()31   virtual ~RespaOMP() {}
32   virtual void init();
33   virtual void setup(int);
34   virtual void setup_minimal(int);
35 
36  protected:
37   virtual void recurse(int);
38 };
39 
40 }    // namespace LAMMPS_NS
41 
42 #endif
43 #endif
44 
45 /* ERROR/WARNING messages:
46 
47 E: Illegal ... command
48 
49 Self-explanatory.  Check the input script syntax and compare to the
50 documentation for the command.  You can use -echo screen as a
51 command-line option when running LAMMPS to see the offending line.
52 
53 E: Respa levels must be >= 1
54 
55 Self-explanatory.
56 
57 E: Cannot set both respa pair and inner/middle/outer
58 
59 In the rRESPA integrator, you must compute pairwise potentials either
60 all together (pair), or in pieces (inner/middle/outer).  You can't do
61 both.
62 
63 E: Must set both respa inner and outer
64 
65 Cannot use just the inner or outer option with respa without using the
66 other.
67 
68 E: Cannot set respa middle without inner/outer
69 
70 In the rRESPA integrator, you must define both a inner and outer
71 setting in order to use a middle setting.
72 
73 E: Invalid order of forces within respa levels
74 
75 For respa, ordering of force computations within respa levels must
76 obey certain rules.  E.g. bonds cannot be compute less frequently than
77 angles, pairwise forces cannot be computed less frequently than
78 kspace, etc.
79 
80 W: One or more respa levels compute no forces
81 
82 This is computationally inefficient.
83 
84 E: Respa inner cutoffs are invalid
85 
86 The first cutoff must be <= the second cutoff.
87 
88 E: Respa middle cutoffs are invalid
89 
90 The first cutoff must be <= the second cutoff.
91 
92 W: No fixes defined, atoms won't move
93 
94 If you are not using a fix like nve, nvt, npt then atom velocities and
95 coordinates will not be updated during timestepping.
96 
97 W: Fix shake with rRESPA computes invalid pressures
98 
99 This is a known bug in LAMMPS that has not yet been fixed.  If you use
100 SHAKE with rRESPA and perform a constant volume simulation (e.g. using
101 fix npt) this only affects the output pressure, not the dynamics of
102 the simulation.  If you use SHAKE with rRESPA and perform a constant
103 pressure simulation (e.g. using fix npt) then you will be
104 equilibrating to the wrong volume.
105 
106 E: Pair style does not support rRESPA inner/middle/outer
107 
108 You are attempting to use rRESPA options with a pair style that
109 does not support them.
110 
111 */
112