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(ave/histo,FixAveHisto);
17 // clang-format on
18 #else
19 
20 #ifndef LMP_FIX_AVE_HISTO_H
21 #define LMP_FIX_AVE_HISTO_H
22 
23 #include "fix.h"
24 
25 namespace LAMMPS_NS {
26 
27 class FixAveHisto : public Fix {
28  public:
29   FixAveHisto(class LAMMPS *, int, char **);
30   virtual ~FixAveHisto();
31   int setmask();
32   void init();
33   void setup(int);
34   virtual void end_of_step();
35   double compute_vector(int);
36   double compute_array(int, int);
37 
38  protected:
39   int me, nvalues;
40   int nrepeat, nfreq, irepeat;
41   bigint nvalid, nvalid_last;
42   int *which, *argindex, *value2index;
43   char **ids;
44   FILE *fp;
45   double lo, hi, binsize, bininv;
46   int kind, beyond, overwrite;
47   long filepos;
48 
49   double stats[4], stats_total[4], stats_all[4];
50   double **stats_list;
51 
52   int nbins;
53   double *bin, *bin_total, *bin_all;
54   double **bin_list;
55   double *coord;
56 
57   double *vector;
58   int maxatom;
59 
60   int ave, nwindow, startstep, mode;
61   char *title1, *title2, *title3;
62   int iwindow, window_limit;
63 
64   void bin_one(double);
65   void bin_vector(int, double *, int);
66   void bin_atoms(double *, int);
67   void options(int, int, char **);
68   bigint nextvalid();
69 };
70 
71 }    // namespace LAMMPS_NS
72 
73 #endif
74 #endif
75 
76 /* ERROR/WARNING messages:
77 
78 E: Illegal ... command
79 
80 Self-explanatory.  Check the input script syntax and compare to the
81 documentation for the command.  You can use -echo screen as a
82 command-line option when running LAMMPS to see the offending line.
83 
84 E: No values in fix ave/histo command
85 
86 UNDOCUMENTED
87 
88 E: Fix ave/histo input is invalid compute
89 
90 Self-explanatory.
91 
92 E: Fix ave/histo input is invalid fix
93 
94 Self-explanatory.
95 
96 E: Fix ave/histo input is invalid variable
97 
98 Self-explanatory.
99 
100 E: Fix ave/histo inputs are not all global, peratom, or local
101 
102 All inputs in a single fix ave/histo command must be of the
103 same style.
104 
105 E: Fix ave/histo cannot input per-atom values in scalar mode
106 
107 Self-explanatory.
108 
109 E: Fix ave/histo cannot input local values in scalar mode
110 
111 Self-explanatory.
112 
113 E: Compute ID for fix ave/histo does not exist
114 
115 Self-explanatory.
116 
117 E: Fix ave/histo compute does not calculate a global scalar
118 
119 Self-explanatory.
120 
121 E: Fix ave/histo compute does not calculate a global vector
122 
123 Self-explanatory.
124 
125 E: Fix ave/histo compute vector is accessed out-of-range
126 
127 Self-explanatory.
128 
129 E: Fix ave/histo compute does not calculate a global array
130 
131 Self-explanatory.
132 
133 E: Fix ave/histo compute array is accessed out-of-range
134 
135 Self-explanatory.
136 
137 E: Fix ave/histo compute does not calculate per-atom values
138 
139 Self-explanatory.
140 
141 E: Fix ave/histo compute does not calculate a per-atom vector
142 
143 Self-explanatory.
144 
145 E: Fix ave/histo compute does not calculate a per-atom array
146 
147 Self-explanatory.
148 
149 E: Fix ave/histo compute does not calculate local values
150 
151 Self-explanatory.
152 
153 E: Fix ave/histo compute does not calculate a local vector
154 
155 Self-explanatory.
156 
157 E: Fix ave/histo compute does not calculate a local array
158 
159 Self-explanatory.
160 
161 E: Fix ID for fix ave/histo does not exist
162 
163 Self-explanatory.
164 
165 E: Fix ave/histo fix does not calculate a global scalar
166 
167 Self-explanatory.
168 
169 E: Fix ave/histo fix does not calculate a global vector
170 
171 Self-explanatory.
172 
173 E: Fix ave/histo fix vector is accessed out-of-range
174 
175 Self-explanatory.
176 
177 E: Fix for fix ave/histo not computed at compatible time
178 
179 Fixes generate their values on specific timesteps.  Fix ave/histo is
180 requesting a value on a non-allowed timestep.
181 
182 E: Fix ave/histo fix does not calculate a global array
183 
184 Self-explanatory.
185 
186 E: Fix ave/histo fix array is accessed out-of-range
187 
188 Self-explanatory.
189 
190 E: Fix ave/histo fix does not calculate per-atom values
191 
192 Self-explanatory.
193 
194 E: Fix ave/histo fix does not calculate a per-atom vector
195 
196 Self-explanatory.
197 
198 E: Fix ave/histo fix does not calculate a per-atom array
199 
200 Self-explanatory.
201 
202 E: Fix ave/histo fix does not calculate local values
203 
204 Self-explanatory.
205 
206 E: Fix ave/histo fix does not calculate a local vector
207 
208 Self-explanatory.
209 
210 E: Fix ave/histo fix does not calculate a local array
211 
212 Self-explanatory.
213 
214 E: Variable name for fix ave/histo does not exist
215 
216 Self-explanatory.
217 
218 E: Fix ave/histo variable is not equal-style variable
219 
220 UNDOCUMENTED
221 
222 E: Fix ave/histo variable is not vector-style variable
223 
224 UNDOCUMENTED
225 
226 E: Fix ave/histo variable cannot be indexed
227 
228 UNDOCUMENTED
229 
230 E: Fix ave/histo variable is not atom-style variable
231 
232 UNDOCUMENTED
233 
234 E: Error writing file header
235 
236 Something in the output to the file triggered an error.
237 
238 E: Invalid timestep reset for fix ave/histo
239 
240 Resetting the timestep has invalidated the sequence of timesteps this
241 fix needs to process.
242 
243 E: Error writing out histogram data
244 
245 Something in the output to the file triggered an error.
246 
247 E: Cannot open fix ave/histo file %s
248 
249 The specified file cannot be opened.  Check that the path and name are
250 correct.
251 
252 */
253