foamChemistryReader.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) 2011-2018 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::foamChemistryReader
26 
27 Description
28  Chemistry reader for OpenFOAM format
29 
30 SourceFiles
31  foamChemistryReader.C
32 
33 \*---------------------------------------------------------------------------*/
34 
35 #ifndef foamChemistryReader_H
36 #define foamChemistryReader_H
37 
38 #include "chemistryReader.H"
39 #include "fileName.H"
40 #include "typeInfo.H"
41 #include "HashPtrTable.H"
42 #include "labelList.H"
43 #include "speciesTable.H"
44 #include "atomicWeights.H"
45 
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 
48 namespace Foam
49 {
50 
51 /*---------------------------------------------------------------------------*\
52  Class foamChemistry Declaration
53 \*---------------------------------------------------------------------------*/
54 
55 template<class ThermoType>
57 :
58  public chemistryReader<ThermoType>
59 {
60  //- Chemistry/reactions dictionary
61  dictionary chemDict_;
62 
63  //- Thermo properties dictionary
64  dictionary thermoDict_;
65 
66  //- List of elements
67  DynamicList<word> elementNames_;
68 
69  //- Element indices
70  HashTable<label> elementIndices_;
71 
72  //- Table of species
73  speciesTable& speciesTable_;
74 
75  //- Table of species composition
76  speciesCompositionTable speciesComposition_;
77 
78  //- Table of the thermodynamic data given in the foamChemistry file
79  HashPtrTable<ThermoType> speciesThermo_;
80 
81  //- List of the reactions
82  ReactionList<ThermoType> reactions_;
83 
84 
85  // Private Member Functions
86 
87  //- Set the species list
88  speciesTable& setSpecies(const dictionary& dict, speciesTable& species);
89 
90  //- Read the species composition
91  void readSpeciesComposition();
92 
93  //- Disallow default bitwise copy construct
95 
96  //- Disallow default bitwise assignment
97  void operator=(const foamChemistryReader&);
98 
99 
100 public:
101 
102  //- Runtime type information
103  TypeName("foamChemistryReader");
104 
105 
106  // Constructors
107 
108  //- Construct from foamChemistry and thermodynamics file names
110  (
111  const fileName& reactionsFileName,
112  speciesTable& species,
113  const fileName& thermoFileName
114  );
115 
116  //- Construct by getting the foamChemistry and thermodynamics file names
117  // from dictionary
119  (
120  const dictionary& thermoDict,
121  speciesTable& species
122  );
123 
124 
125  //- Destructor
126  virtual ~foamChemistryReader()
127  {}
128 
129 
130  // Member functions
131 
132  //- List of elements
133  const wordList& elementNames() const
134  {
135  return elementNames_;
136  }
137 
138  //- Element indices
139  const HashTable<label>& elementIndices() const
140  {
141  return elementIndices_;
142  }
143 
144  //- Table of species
145  const speciesTable& species() const
146  {
147  return speciesTable_;
148  }
149 
150  //- Table of species composition
152  {
153  return speciesComposition_;
154  }
155 
156  //- Table of the thermodynamic data given in the foamChemistry file
158  {
159  return speciesThermo_;
160  }
161 
162  //- List of the reactions
163  const ReactionList<ThermoType>& reactions() const
164  {
165  return reactions_;
166  }
167 };
168 
169 
170 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
171 
172 } // End namespace Foam
173 
174 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
175 
176 #ifdef NoRepository
177  #include "foamChemistryReader.C"
178 #endif
179 
180 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
181 
182 #endif
183 
184 // ************************************************************************* //
const speciesCompositionTable & specieComposition() const
Table of species composition.
dictionary dict
A class for handling file names.
Definition: fileName.H:69
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:137
const HashPtrTable< ThermoType > & speciesThermo() const
Table of the thermodynamic data given in the foamChemistry file.
const wordList & elementNames() const
List of elements.
const HashTable< label > & elementIndices() const
Element indices.
Chemistry reader for OpenFOAM format.
virtual ~foamChemistryReader()
Destructor.
TypeName("foamChemistryReader")
Runtime type information.
const ReactionList< ThermoType > & reactions() const
List of the reactions.
List of templated reactions.
Definition: ReactionList.H:54
A wordList with hashed indices for faster lookup by name.
const speciesTable & species() const
Table of species.
Abstract class for reading chemistry.
Namespace for OpenFOAM.