fieldAverageItem.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::fieldAverageItem
26 
27 Description
28  Helper class to describe what form of averaging to apply. A set will be
29  applied to each base field in Foam::fieldAverage, of the form:
30 
31  \verbatim
32  {
33  mean on;
34  prime2Mean on;
35  base time; // iteration
36  window 200; // optional averaging window
37  windowName w1; // optional window name (default = "")
38  }
39  \endverbatim
40 
41  The averaging window corresponds to the averaging interval (iters or time)
42  If not specified, the averaging is over 'all iters/time'
43 
44 SourceFiles
45  fieldAverageItem.C
46  fieldAverageItemIO.C
47 
48 \*---------------------------------------------------------------------------*/
49 
50 #ifndef fieldAverageItem_H
51 #define fieldAverageItem_H
52 
53 #include "NamedEnum.H"
54 #include "Switch.H"
55 
56 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
57 
58 namespace Foam
59 {
60 
61 // Forward declaration of classes
62 class Istream;
63 class Ostream;
64 
65 // Forward declaration of friend functions and operators
66 class fieldAverageItem;
67 Istream& operator>>(Istream&, fieldAverageItem&);
68 Ostream& operator<<(Ostream&, const fieldAverageItem&);
69 
70 
71 /*---------------------------------------------------------------------------*\
72  Class fieldAverageItem Declaration
73 \*---------------------------------------------------------------------------*/
74 
75 class fieldAverageItem
76 {
77 public:
78 
79  // Public data
80 
81  // File and field name extensions
82 
83  //- Mean average
84  static const word EXT_MEAN;
85 
86  //- Prime-squared average
87  static const word EXT_PRIME2MEAN;
88 
89  //- Enumeration defining the averaging base type
90  enum baseType
91  {
93  TIME
94  };
95 
96 
97 private:
98 
99  // Private data
100 
101  //- Active flag
102  Switch active_;
103 
104  //- Field name
106 
107  //- Compute mean flag
108  Switch mean_;
109 
110  //- Name of mean field
112 
113  //- Compute prime-squared mean flag
115 
116  //- Name of prime-squared mean field
118 
119  //- Averaging base type names
121 
122  //- Averaging base type
123  baseType base_;
124 
125  //- Averaging window - defaults to -1 for 'all iters/time'
126  scalar window_;
127 
128  //- Averaging window name - defaults to 'window'
130 
131 
132 public:
133 
134  // Constructors
135 
136  //- Construct null
138 
139  //- Construct from Istream
141 
142  //- Construct as copy
144 
145 
146  //- Destructor
148 
149 
150  // Member Functions
151 
152  // Access
153 
154  //- Return const access to the active flag
155  const Switch& active() const
156  {
157  return active_;
158  }
159 
160  //- Return non-const access to the active flag
161  Switch& active()
162  {
163  return active_;
164  }
165 
166  //- Return const access to the field name
167  const word& fieldName() const
168  {
169  return fieldName_;
170  }
171 
172  //- Return const access to the mean flag
173  const Switch& mean() const
174  {
175  return mean_;
176  }
177 
178  //- Return non-const access to the mean flag
179  Switch& mean()
180  {
181  return mean_;
182  }
183 
184  //- Return const access to the mean field name
185  const word& meanFieldName() const
186  {
187  return meanFieldName_;
188  }
189 
190  //- Return const access to the prime-squared mean flag
191  const Switch& prime2Mean() const
192  {
193  return prime2Mean_;
194  }
195 
196  //- Return non-const access to the prime-squared mean flag
197  Switch& prime2Mean()
198  {
199  return prime2Mean_;
200  }
201 
202  //- Return const access to the prime-squared mean field name
203  const word& prime2MeanFieldName() const
204  {
205  return prime2MeanFieldName_;
206  }
207 
208  //- Return averaging base type name
209  const word base() const
210  {
211  return baseTypeNames_[base_];
212  }
213 
214  //- Return true if base is ITER
215  Switch iterBase() const
216  {
217  return base_ == ITER;
218  }
219 
220  //- Return true if base is time
221  Switch timeBase() const
222  {
223  return base_ == TIME;
224  }
225 
226  scalar window() const
227  {
228  return window_;
229  }
230 
231  const word& windowName() const
232  {
233  return windowName_;
234  }
235 
236 
237  // Member Operators
238 
239  void operator=(const fieldAverageItem&);
240 
241 
242  // Friend Operators
243 
244  friend bool operator==
245  (
246  const fieldAverageItem& a,
247  const fieldAverageItem& b
248  )
249  {
250  return
251  a.fieldName_ == b.fieldName_
252  && a.mean_ == b.mean_
253  && a.meanFieldName_ == b.meanFieldName_
254  && a.prime2Mean_ == b.prime2Mean_
255  && a.prime2MeanFieldName_ == b.prime2MeanFieldName_
256  && a.base_ == b.base_
257  && a.window_ == b.window_
258  && a.windowName_ == b.windowName_;
259  }
260 
261  friend bool operator!=
262  (
263  const fieldAverageItem& a,
264  const fieldAverageItem& b
265  )
266  {
267  return !(a == b);
268  }
269 
270 
271  // IOstream Operators
272 
274  friend Ostream& operator<<(Ostream&, const fieldAverageItem&);
275 };
276 
277 
278 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
279 
280 } // End namespace Foam
281 
282 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
283 
284 #endif
285 
286 // ************************************************************************* //
Foam::fieldAverageItem
Helper class to describe what form of averaging to apply. A set will be applied to each base field in...
Definition: fieldAverageItem.H:74
Foam::fieldAverageItem::fieldName
const word & fieldName() const
Return const access to the field name.
Definition: fieldAverageItem.H:166
Foam::fieldAverageItem::EXT_MEAN
static const word EXT_MEAN
Mean average.
Definition: fieldAverageItem.H:83
Foam::fieldAverageItem::fieldAverageItem
fieldAverageItem()
Construct null.
Definition: fieldAverageItem.C:54
Foam::Switch
A simple wrapper around bool so that it can be read as a word: true/false, on/off,...
Definition: Switch.H:60
Foam::fieldAverageItem::mean
const Switch & mean() const
Return const access to the mean flag.
Definition: fieldAverageItem.H:172
Foam::word
A class for handling words, derived from string.
Definition: word.H:59
Foam::fieldAverageItem::~fieldAverageItem
~fieldAverageItem()
Destructor.
Definition: fieldAverageItem.C:84
Foam::fieldAverageItem::mean
Switch & mean()
Return non-const access to the mean flag.
Definition: fieldAverageItem.H:178
NamedEnum.H
Foam::fieldAverageItem::window_
scalar window_
Averaging window - defaults to -1 for 'all iters/time'.
Definition: fieldAverageItem.H:125
Foam::fieldAverageItem::mean_
Switch mean_
Compute mean flag.
Definition: fieldAverageItem.H:107
Foam::fieldAverageItem::active
Switch & active()
Return non-const access to the active flag.
Definition: fieldAverageItem.H:160
Foam::fieldAverageItem::meanFieldName
const word & meanFieldName() const
Return const access to the mean field name.
Definition: fieldAverageItem.H:184
Foam::constant::physicoChemical::b
const dimensionedScalar b
Wien displacement law constant: default SI units: [m.K].
Definition: createFields.H:28
Foam::Istream
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Definition: Istream.H:57
Foam::fieldAverageItem::windowName
const word & windowName() const
Definition: fieldAverageItem.H:230
Foam::fieldAverageItem::base_
baseType base_
Averaging base type.
Definition: fieldAverageItem.H:122
Foam::fieldAverageItem::base
const word base() const
Return averaging base type name.
Definition: fieldAverageItem.H:208
Foam::fieldAverageItem::window
scalar window() const
Definition: fieldAverageItem.H:225
Switch.H
Foam::fieldAverageItem::operator<<
friend Ostream & operator<<(Ostream &, const fieldAverageItem &)
Foam::operator<<
Ostream & operator<<(Ostream &, const edgeMesh &)
Definition: edgeMeshIO.C:130
Foam::fieldAverageItem::windowName_
word windowName_
Averaging window name - defaults to 'window'.
Definition: fieldAverageItem.H:128
Foam::fieldAverageItem::prime2Mean
const Switch & prime2Mean() const
Return const access to the prime-squared mean flag.
Definition: fieldAverageItem.H:190
Foam
Namespace for OpenFOAM.
Definition: combustionModel.C:30
Foam::fieldAverageItem::prime2Mean_
Switch prime2Mean_
Compute prime-squared mean flag.
Definition: fieldAverageItem.H:113
Foam::fieldAverageItem::iterBase
Switch iterBase() const
Return true if base is ITER.
Definition: fieldAverageItem.H:214
Foam::fieldAverageItem::prime2MeanFieldName
const word & prime2MeanFieldName() const
Return const access to the prime-squared mean field name.
Definition: fieldAverageItem.H:202
Foam::fieldAverageItem::active_
Switch active_
Active flag.
Definition: fieldAverageItem.H:101
Foam::fieldAverageItem::operator>>
friend Istream & operator>>(Istream &, fieldAverageItem &)
Foam::fieldAverageItem::ITER
@ ITER
Definition: fieldAverageItem.H:91
Foam::fieldAverageItem::fieldName_
word fieldName_
Field name.
Definition: fieldAverageItem.H:104
Foam::fieldAverageItem::TIME
@ TIME
Definition: fieldAverageItem.H:92
Foam::fieldAverageItem::baseType
baseType
Enumeration defining the averaging base type.
Definition: fieldAverageItem.H:89
Foam::fieldAverageItem::active
const Switch & active() const
Return const access to the active flag.
Definition: fieldAverageItem.H:154
Foam::operator>>
Istream & operator>>(Istream &, edgeMesh &)
Definition: edgeMeshIO.C:141
Foam::fieldAverageItem::EXT_PRIME2MEAN
static const word EXT_PRIME2MEAN
Prime-squared average.
Definition: fieldAverageItem.H:86
Foam::fieldAverageItem::operator=
void operator=(const fieldAverageItem &)
Definition: fieldAverageItem.C:90
Foam::fieldAverageItem::baseTypeNames_
static const NamedEnum< baseType, 2 > baseTypeNames_
Averaging base type names.
Definition: fieldAverageItem.H:119
Foam::fieldAverageItem::prime2Mean
Switch & prime2Mean()
Return non-const access to the prime-squared mean flag.
Definition: fieldAverageItem.H:196
Foam::fieldAverageItem::prime2MeanFieldName_
word prime2MeanFieldName_
Name of prime-squared mean field.
Definition: fieldAverageItem.H:116
Foam::Ostream
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:53
Foam::fieldAverageItem::timeBase
Switch timeBase() const
Return true if base is time.
Definition: fieldAverageItem.H:220
Foam::NamedEnum< baseType, 2 >
Foam::fieldAverageItem::meanFieldName_
word meanFieldName_
Name of mean field.
Definition: fieldAverageItem.H:110