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 FIX_CLASS
15 // clang-format off
16 FixStyle(temp/csld,FixTempCSLD);
17 // clang-format on
18 #else
19 
20 #ifndef LMP_FIX_TEMP_CSLD_H
21 #define LMP_FIX_TEMP_CSLD_H
22 
23 #include "fix.h"
24 
25 namespace LAMMPS_NS {
26 
27 class FixTempCSLD : public Fix {
28  public:
29   FixTempCSLD(class LAMMPS *, int, char **);
30   ~FixTempCSLD();
31   int setmask();
32   void init();
33   void end_of_step();
34   int modify_param(int, char **);
35   void reset_target(double);
36   virtual double compute_scalar();
37   void write_restart(FILE *);
38   void restart(char *buf);
39   virtual void *extract(const char *, int &);
40 
41  private:
42   double t_start, t_stop, t_period, t_target;
43   double **vhold;
44   double energy;
45   int nmax, which;
46   int tstyle, tvar;
47   char *tstr;
48 
49   char *id_temp;
50   class Compute *temperature;
51   int tflag;
52 
53   class RanMars *random;
54 };
55 
56 }    // namespace LAMMPS_NS
57 
58 #endif
59 #endif
60 
61 /* ERROR/WARNING messages:
62 
63 E: Illegal ... command
64 
65 Self-explanatory.  Check the input script syntax and compare to the
66 documentation for the command.  You can use -echo screen as a
67 command-line option when running LAMMPS to see the offending line.
68 
69 E: Fix temp/csld is not compatible with fix rattle or fix shake
70 
71 These two commands cannot currently be used together with fix temp/csld.
72 
73 E: Variable name for fix temp/csld does not exist
74 
75 Self-explanatory.
76 
77 E: Variable for fix temp/csld is invalid style
78 
79 Only equal-style variables can be used.
80 
81 E: Temperature ID for fix temp/csld does not exist
82 
83 Self-explanatory.
84 
85 W: Cannot thermostat atoms in rigid bodies
86 
87 UNDOCUMENTED
88 
89 E: Fix temp/csld variable returned negative temperature
90 
91 Self-explanatory.
92 
93 E: Could not find fix_modify temperature ID
94 
95 The compute ID for computing temperature does not exist.
96 
97 E: Fix_modify temperature ID does not compute temperature
98 
99 The compute ID assigned to the fix must compute temperature.
100 
101 W: Group for fix_modify temp != fix group
102 
103 The fix_modify command is specifying a temperature computation that
104 computes a temperature on a different group of atoms than the fix
105 itself operates on.  This is probably not what you want to do.
106 
107 */
108