basicMultiComponentMixture.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::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 "basicMixture.H"
44 #include "speciesTable.H"
45 #include "typeInfo.H"
46 
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 
49 namespace Foam
50 {
51 
52 /*---------------------------------------------------------------------------*\
53  Class basicMultiComponentMixture Declaration
54 \*---------------------------------------------------------------------------*/
55 
57 :
58  public basicMixture
59 {
60 
61 protected:
62 
63  // Protected data
64 
65  //- Table of specie names
67 
68  //- List of specie active flags
70 
71  //- Species mass fractions
73 
74 
75 public:
76 
77  //- Run time type information
78  TypeName("basicMultiComponentMixture");
79 
80 
81  //- The base class of the mixture
83 
84 
85  // Constructors
86 
87  //- Construct from dictionary, species names, mesh and phase name
89  (
90  const dictionary&,
91  const wordList& specieNames,
92  const fvMesh&,
93  const word&
94  );
95 
96 
97  //- Destructor
99  {}
100 
101 
102  // Member functions
103 
104  //- Return the table of species
105  inline const speciesTable& species() const;
106 
107  //- Does the mixture include this specie?
108  inline bool contains(const word& specieName) const;
109 
110  //- Return true for active species
111  inline bool active(label speciei) const;
112 
113  //- Return the bool list of active species
114  inline const List<bool>& active() const;
115 
116  //- Set speciei active
117  inline void setActive(label speciei);
118 
119  //- Set speciei inactive
120  inline void setInactive(label speciei);
121 
122  //- Return the mass-fraction fields
123  inline PtrList<volScalarField>& Y();
124 
125  //- Return the const mass-fraction fields
126  inline const PtrList<volScalarField>& Y() const;
127 
128  //- Return the mass-fraction field for a specie given by index
129  inline volScalarField& Y(const label i);
130 
131  //- Return the const mass-fraction field for a specie given by index
132  inline const volScalarField& Y(const label i) const;
133 
134  //- Return the mass-fraction field for a specie given by name
135  inline volScalarField& Y(const word& specieName);
136 
137  //- Return the const mass-fraction field for a specie given by name
138  inline const volScalarField& Y(const word& specieName) const;
139 };
140 
141 
142 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
143 
144 } // End namespace Foam
145 
146 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
147 
149 
150 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
151 
152 #endif
153 
154 // ************************************************************************* //
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.
Foam::basicMixture.
Definition: basicMixture.H:49
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.