ensightFileTemplates.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2020-2022 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 \*---------------------------------------------------------------------------*/
27 
28 // * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
29 
30 template<class Addr>
32 {
33  for (const float val : field)
34  {
35  if (std::isnan(val))
36  {
37  return true;
38  }
39  }
40 
41  return true;
42 }
43 
44 
45 template<class Addr>
46 bool Foam::ensightFile::hasUndef(const IndirectListBase<double, Addr>& field)
47 {
48  for (const double val : field)
49  {
50  if (std::isnan(val))
51  {
52  return true;
53  }
54  }
55 
56  return true;
57 }
58 
59 
60 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
61 
62 template<class Addr>
64 {
65  for (const label val : list)
66  {
67  write(val);
68  newline();
69  }
70 }
71 
72 
73 template<class Addr>
74 void Foam::ensightFile::writeList(const IndirectListBase<float, Addr>& field)
75 {
76  for (const float val : field)
77  {
78  if (std::isnan(val))
79  {
80  writeUndef();
81  }
82  else
83  {
84  write(val);
85  }
86  newline();
87  }
88 }
89 
90 
91 template<class Addr>
92 void Foam::ensightFile::writeList(const IndirectListBase<double, Addr>& field)
93 {
94  for (const double val : field)
95  {
96  if (std::isnan(val))
97  {
98  writeUndef();
99  }
100  else
101  {
102  write(val);
103  }
104  newline();
105  }
106 }
107 
108 
109 // ************************************************************************* //
rDeltaTY field()
Base for lists with indirect addressing, templated on the list contents type and the addressing type...
void write(vtk::formatter &fmt, const Type &val, const label n=1)
Component-wise write of a value (N times)
void writeLabels(const UList< label > &list)
Write a list of integers.
Definition: ensightFile.C:377
void writeList(const UList< label > &field)
Write a list of integers as float values.
Definition: ensightFile.C:387
static bool hasUndef(const UList< float > &field)
Check for any NaN in the field.
Definition: ensightFile.C:39