TableFileReader.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2020-2024 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::TableFileReader
26 
27 Description
28  Base class to read table data for tables
29 
30 SourceFiles
31  TableFileReader.C
32 
33 \*---------------------------------------------------------------------------*/
34 
35 #ifndef TableFileReader_H
36 #define TableFileReader_H
37 
38 #include "TableReader.H"
39 
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
41 
42 namespace Foam
43 {
44 
45 /*---------------------------------------------------------------------------*\
46  Class TableFileReader Declaration
47 \*---------------------------------------------------------------------------*/
48 
49 template<class Type>
50 class TableFileReader
51 :
52  public TableReader<Type>
53 {
54  // Private Data
55 
56  //- File name for table
57  const fileName fName_;
58 
59  //- Unit conversions
61 
62 
63  // Private Member Functions
64 
65  //- Read the units, if any
67  (
68  const Function1s::unitConversions& defaultUnits,
69  const dictionary& dict
70  ) const;
71 
72  //- Read a 1D table
73  virtual void read(ISstream&, List<Tuple2<scalar, Type>>&) const = 0;
74 
75 
76 protected:
77 
78  // Protected Member Functions
79 
80  //- Read a 1D table
81  void read
82  (
83  const Function1s::unitConversions& defaultUnits,
84  const dictionary& dict,
86  ) const;
87 
88 
89 public:
90 
91  // Constructors
92 
93  //- Construct from dictionary
95  (
96  const Function1s::unitConversions& defaultUnits,
97  const dictionary& dict
98  );
99 
100  //- Copy construct
102 
103 
104  //- Destructor
105  virtual ~TableFileReader();
106 
107 
108  // Member Functions
109 
110  //- Read values
111  virtual List<Tuple2<scalar, Type>> read
112  (
114  const dictionary& dict
115  ) const;
116 
117  //- Write additional information
118  virtual void write
119  (
120  Ostream& os,
122  const List<Tuple2<scalar, Type>>& table
123  ) const;
124 };
125 
126 
127 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
128 
129 } // End namespace Foam
130 
131 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
132 
133 #ifdef NoRepository
134  #include "TableFileReader.C"
135 #endif
136 
137 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
138 
139 #endif
140 
141 // ************************************************************************* //
Generic input stream.
Definition: ISstream.H:55
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: List.H:91
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:57
Base class to read table data for tables.
virtual ~TableFileReader()
Destructor.
virtual void write(Ostream &os, const Function1s::unitConversions &units, const List< Tuple2< scalar, Type >> &table) const
Write additional information.
TableFileReader(const Function1s::unitConversions &defaultUnits, const dictionary &dict)
Construct from dictionary.
Macros for creating standard TableReader-s.
Definition: TableReader.H:51
A 2-tuple for storing two objects of different types.
Definition: Tuple2.H:66
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:162
A class for handling file names.
Definition: fileName.H:82
Namespace for OpenFOAM.
const HashTable< unitConversion > & units()
Get the table of unit conversions.
dictionary dict