UInhomogeneousMixture.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) 2025-2026 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::UInhomogeneousMixture
26 
27 Description
28  Templated unburnt gas combustion mixture for inhomogeneous lean,
29  stoichiometric or rich conditions
30 
31  in which the fuel mass-fraction \c fu defines the composition.
32 
33 See also
34  Foam::uInhomogeneousMixture
35 
36 SourceFiles
37  UInhomogeneousMixture.C
38 
39 \*---------------------------------------------------------------------------*/
40 
41 #ifndef UInhomogeneousMixture_H
42 #define UInhomogeneousMixture_H
43 
44 #include "uInhomogeneousMixture.H"
45 
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 
48 namespace Foam
49 {
50 
51 /*---------------------------------------------------------------------------*\
52  Class UInhomogeneousMixture Declaration
53 \*---------------------------------------------------------------------------*/
54 
55 template<class ThermoType>
57 :
59 {
60 public:
61 
62  // Public Typedefs
63 
64  //- The type of thermodynamics this mixture is instantiated for
65  typedef ThermoType thermoType;
66 
67  //- Mixing type for thermodynamic properties
68  typedef ThermoType thermoMixtureType;
69 
70  //- Mixing type for transport properties
71  typedef ThermoType transportMixtureType;
72 
73 
74 private:
75 
76  // Private Data
77 
78  //- Fuel thermodynamic model
79  thermoType fuel_;
80 
81  //- Oxidant thermodynamic model
82  thermoType oxidant_;
83 
84  //- List of specie active flags
85  boolList active_;
86 
87  //- Mutable storage for the mixed thermodynamic model
88  mutable thermoType mixture_;
89 
90 
91  // Private Member Functions
92 
93  //- Return the mixture for the given composition
94  const thermoType& mixture(const scalar fu) const;
95 
96 
97 public:
98 
99  // Constructors
100 
101  //- Construct from a dictionary
103 
104  //- Disallow default bitwise copy construction
106  (
108  ) = delete;
109 
110 
111  // Member Functions
112 
113  //- Return the instantiated type name
114  static word typeName()
115  {
116  return
118  + '<' + ThermoType::typeName() + '>';
119  }
120 
121  inline const ThermoType& specieThermo(const label speciei) const
122  {
123  return fuel_;
124  }
125 
126  //- Return the mixture for thermodynamic properties
128  (
129  const scalarFieldListSlice&
130  ) const;
131 
132  //- Return the mixture for transport properties
134  (
135  const scalarFieldListSlice&
136  ) const;
137 
138  //- Return the mixture for transport properties
140  (
141  const scalarFieldListSlice&,
142  const thermoMixtureType&
143  ) const;
144 
145  //- Read dictionary
146  void read(const dictionary&);
147 
148 
149  // Member Operators
150 
151  //- Disallow default bitwise assignment
152  void operator=(const UInhomogeneousMixture<ThermoType>&) = delete;
153 };
154 
155 
156 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
157 
158 } // End namespace Foam
159 
160 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
161 
162 #ifdef NoRepository
163  #include "UInhomogeneousMixture.C"
164 #endif
165 
166 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
167 
168 #endif
169 
170 // ************************************************************************* //
Templated unburnt gas combustion mixture for inhomogeneous lean, stoichiometric or rich conditions.
const ThermoType & specieThermo(const label speciei) const
const thermoMixtureType & thermoMixture(const scalarFieldListSlice &) const
Return the mixture for thermodynamic properties.
ThermoType thermoType
The type of thermodynamics this mixture is instantiated for.
static word typeName()
Return the instantiated type name.
ThermoType transportMixtureType
Mixing type for transport properties.
void operator=(const UInhomogeneousMixture< ThermoType > &)=delete
Disallow default bitwise assignment.
ThermoType thermoMixtureType
Mixing type for thermodynamic properties.
void read(const dictionary &)
Read dictionary.
const transportMixtureType & transportMixture(const scalarFieldListSlice &) const
Return the mixture for transport properties.
UInhomogeneousMixture(const dictionary &)
Construct from a dictionary.
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Definition: dictionary.H:162
Unburnt gas combustion mixture for inhomogeneous lean, stoichiometric or rich conditions.
A class for handling words, derived from string.
Definition: word.H:63
Namespace for OpenFOAM.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
String typeName(const std::type_info &info)
Return the un-mangled name given the standard type info.