basicMultiComponentMixture.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-2016 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::basicMultiComponentMixture
26 
27 Description
28  Multi-component mixture.
29 
30  Provides a list of mass fraction fields and helper functions to
31  query mixture composition.
32 
33 SourceFiles
34  basicMultiComponentMixture.C
35 
36 \*---------------------------------------------------------------------------*/
37 
38 #ifndef basicMultiComponentMixture_H
39 #define basicMultiComponentMixture_H
40 
41 #include "volFields.H"
42 #include "PtrList.H"
43 #include "speciesTable.H"
44 #include "typeInfo.H"
45 
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 
48 namespace Foam
49 {
50 
51 /*---------------------------------------------------------------------------*\
52  Class basicMultiComponentMixture Declaration
53 \*---------------------------------------------------------------------------*/
54 
56 {
57 
58 protected:
59 
60  // Protected data
61 
62  //- Table of specie names
64 
65  //- List of specie active flags
67 
68  //- Species mass fractions
70 
71 
72 public:
73 
74  //- Run time type information
75  TypeName("basicMultiComponentMixture");
76 
77 
78  //- The base class of the mixture
80 
81 
82  // Constructors
83 
84  //- Construct from dictionary, species names, mesh and phase name
86  (
87  const dictionary&,
88  const wordList& specieNames,
89  const fvMesh&,
90  const word&
91  );
92 
93 
94  //- Destructor
96  {}
97 
98 
99  // Member functions
100 
101  //- Return the table of species
102  inline const speciesTable& species() const;
103 
104  //- Does the mixture include this specie?
105  inline bool contains(const word& specieName) const;
106 
107  //- Return true for active species
108  inline bool active(label speciei) const;
109 
110  //- Return the bool list of active species
111  inline const List<bool>& active() const;
112 
113  //- Set speciei active
114  inline void setActive(label speciei);
115 
116  //- Set speciei inactive
117  inline void setInactive(label speciei);
118 
119  //- Return the mass-fraction fields
120  inline PtrList<volScalarField>& Y();
121 
122  //- Return the const mass-fraction fields
123  inline const PtrList<volScalarField>& Y() const;
124 
125  //- Return the mass-fraction field for a specie given by index
126  inline volScalarField& Y(const label i);
127 
128  //- Return the const mass-fraction field for a specie given by index
129  inline const volScalarField& Y(const label i) const;
130 
131  //- Return the mass-fraction field for a specie given by name
132  inline volScalarField& Y(const word& specieName);
133 
134  //- Return the const mass-fraction field for a specie given by name
135  inline const volScalarField& Y(const word& specieName) const;
136 };
137 
138 
139 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
140 
141 } // End namespace Foam
142 
143 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
144 
146 
147 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
148 
149 #endif
150 
151 // ************************************************************************* //
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
PtrList< volScalarField > Y_
Species mass fractions.
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:137
basicMultiComponentMixture basicMixtureType
The base class of the mixture.
basicMultiComponentMixture(const dictionary &, const wordList &specieNames, const fvMesh &, const word &)
Construct from dictionary, species names, mesh and phase name.
const speciesTable & species() const
Return the table of species.
TypeName("basicMultiComponentMixture")
Run time type information.
PtrList< volScalarField > & Y()
Return the mass-fraction fields.
List< bool > active_
List of specie active flags.
void setInactive(label speciei)
Set speciei inactive.
speciesTable species_
Table of specie names.
A class for handling words, derived from string.
Definition: word.H:59
void setActive(label speciei)
Set speciei active.
const List< bool > & active() const
Return the bool list of active species.
A wordList with hashed indices for faster lookup by name.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
Definition: List.H:63
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:78
bool contains(const word &specieName) const
Does the mixture include this specie?
Namespace for OpenFOAM.