basicSpecieMixture.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 | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2014-2017 OpenFOAM Foundation
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 Class
27  Foam::basicSpecieMixture
28 
29 Group
30  grpReactionThermophysicalMixtures
31 
32 Description
33  Specialization of basicMultiComponentMixture for a mixture consisting
34  of a number for molecular species.
35 
36 SourceFiles
37  basicSpecieMixture.C
38 
39 \*---------------------------------------------------------------------------*/
40 
41 #ifndef basicSpecieMixture_H
42 #define basicSpecieMixture_H
43 
45 
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 
48 namespace Foam
49 {
50 
51 /*---------------------------------------------------------------------------*\
52  Class basicSpecieMixture Declaration
53 \*---------------------------------------------------------------------------*/
54 
56 :
58 {
59 
60 public:
61 
62  //- Run time type information
63  TypeName("basicSpecieMixture");
64 
65  //- The base class of the mixture
67 
68 
69  // Constructors
70 
71  //- Construct from dictionary, species names, mesh and phase name
73  (
74  const dictionary& thermoDict,
75  const wordList& specieNames,
76  const fvMesh& mesh,
77  const word& phaseName
78  );
79 
80 
81  //- Destructor
82  virtual ~basicSpecieMixture() = default;
83 
84 
85  // Member functions
86 
87  // Per specie properties
88 
89  //- Molecular weight of the given specie [kg/kmol]
90  virtual scalar W(const label speciei) const = 0;
91 
92  //- Chemical enthalpy [J/kg]
93  virtual scalar Hc(const label speciei) const = 0;
94 
95 
96  // Per specie thermo properties
97 
98  //- Heat capacity at constant pressure [J/(kg K)]
99  virtual scalar Cp
100  (
101  const label speciei,
102  const scalar p,
103  const scalar T
104  ) const = 0;
105 
106  //- Heat capacity at constant volume [J/(kg K)]
107  virtual scalar Cv
108  (
109  const label speciei,
110  const scalar p,
111  const scalar T
112  ) const = 0;
113 
114  //- Enthalpy/Internal energy [J/kg]
115  virtual scalar HE
116  (
117  const label speciei,
118  const scalar p,
119  const scalar T
120  ) const = 0;
121 
122  //- Absolute enthalpy [J/kg]
123  virtual scalar Ha
124  (
125  const label speciei,
126  const scalar p,
127  const scalar T
128  ) const = 0;
129 
130  //- Sensible enthalpy [J/kg]
131  virtual scalar Hs
132  (
133  const label speciei,
134  const scalar p,
135  const scalar T
136  ) const = 0;
137 
138 
139  //- Entropy [J/(kg K)]
140  virtual scalar S
141  (
142  const label speciei,
143  const scalar p,
144  const scalar T
145  ) const = 0;
146 
147  //- Sensible internal energy [J/kg]
148  virtual scalar Es
149  (
150  const label speciei,
151  const scalar p,
152  const scalar T
153  ) const = 0;
154 
155  //- Gibbs free energy [J/kg]
156  virtual scalar G
157  (
158  const label speciei,
159  const scalar p,
160  const scalar T
161  ) const = 0;
162 
163  //- Helmholtz free energy [J/kg]
164  virtual scalar A
165  (
166  const label speciei,
167  const scalar p,
168  const scalar T
169  ) const = 0;
170 
171 
172  // Per specie transport properties
173 
174  //- Dynamic viscosity [kg/m/s]
175  virtual scalar mu
176  (
177  const label speciei,
178  const scalar p,
179  const scalar T
180  ) const = 0;
181 
182  //- Thermal conductivity [W/m/K]
183  virtual scalar kappa
184  (
185  const label speciei,
186  const scalar p,
187  const scalar T
188  ) const = 0;
189 
190  //- Thermal diffusivity of enthalpy [kg/m/s]
191  virtual scalar alphah
192  (
193  const label speciei,
194  const scalar p,
195  const scalar T
196  ) const = 0;
197 
198  //- Density [kg/m3]
199  virtual scalar rho
200  (
201  const label speciei,
202  const scalar p,
203  const scalar T
204  ) const = 0;
205 };
206 
207 
208 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
209 
210 } // End namespace Foam
211 
212 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
213 
214 #endif
215 
216 // ************************************************************************* //
p
volScalarField & p
Definition: createFieldRefs.H:8
Foam::basicSpecieMixture::rho
virtual scalar rho(const label speciei, const scalar p, const scalar T) const =0
Density [kg/m3].
Foam::word
A class for handling words, derived from Foam::string.
Definition: word.H:62
Foam::basicSpecieMixture::basicMixtureType
basicSpecieMixture basicMixtureType
The base class of the mixture.
Definition: basicSpecieMixture.H:65
Foam::basicSpecieMixture::HE
virtual scalar HE(const label speciei, const scalar p, const scalar T) const =0
Enthalpy/Internal energy [J/kg].
Foam::basicSpecieMixture
Specialization of basicMultiComponentMixture for a mixture consisting of a number for molecular speci...
Definition: basicSpecieMixture.H:54
Foam::basicSpecieMixture::basicSpecieMixture
basicSpecieMixture(const dictionary &thermoDict, const wordList &specieNames, const fvMesh &mesh, const word &phaseName)
Construct from dictionary, species names, mesh and phase name.
Definition: basicSpecieMixture.C:41
Foam::basicSpecieMixture::mu
virtual scalar mu(const label speciei, const scalar p, const scalar T) const =0
Dynamic viscosity [kg/m/s].
Foam::basicSpecieMixture::TypeName
TypeName("basicSpecieMixture")
Run time type information.
Foam::basicSpecieMixture::Hs
virtual scalar Hs(const label speciei, const scalar p, const scalar T) const =0
Sensible enthalpy [J/kg].
Foam::basicSpecieMixture::kappa
virtual scalar kappa(const label speciei, const scalar p, const scalar T) const =0
Thermal conductivity [W/m/K].
Foam::basicSpecieMixture::S
virtual scalar S(const label speciei, const scalar p, const scalar T) const =0
Entropy [J/(kg K)].
Foam::basicSpecieMixture::Ha
virtual scalar Ha(const label speciei, const scalar p, const scalar T) const =0
Absolute enthalpy [J/kg].
Foam::basicSpecieMixture::Es
virtual scalar Es(const label speciei, const scalar p, const scalar T) const =0
Sensible internal energy [J/kg].
Foam::basicSpecieMixture::Cv
virtual scalar Cv(const label speciei, const scalar p, const scalar T) const =0
Heat capacity at constant volume [J/(kg K)].
Foam::T
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
Definition: FieldFieldFunctions.C:58
Foam::basicSpecieMixture::W
virtual scalar W(const label speciei) const =0
Molecular weight of the given specie [kg/kmol].
Foam::basicSpecieMixture::alphah
virtual scalar alphah(const label speciei, const scalar p, const scalar T) const =0
Thermal diffusivity of enthalpy [kg/m/s].
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:121
mesh
dynamicFvMesh & mesh
Definition: createDynamicFvMesh.H:6
Foam::fvMesh
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:84
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
basicMultiComponentMixture.H
thermoDict
const dictionary & thermoDict
Definition: EEqn.H:16
Foam::List< word >
Foam::basicSpecieMixture::~basicSpecieMixture
virtual ~basicSpecieMixture()=default
Destructor.
Foam::basicSpecieMixture::A
virtual scalar A(const label speciei, const scalar p, const scalar T) const =0
Helmholtz free energy [J/kg].
Foam::basicSpecieMixture::G
virtual scalar G(const label speciei, const scalar p, const scalar T) const =0
Gibbs free energy [J/kg].
Foam::basicMultiComponentMixture
Multi-component mixture.
Definition: basicMultiComponentMixture.H:60
Foam::basicSpecieMixture::Hc
virtual scalar Hc(const label speciei) const =0
Chemical enthalpy [J/kg].
Foam::basicSpecieMixture::Cp
virtual scalar Cp(const label speciei, const scalar p, const scalar T) const =0
Heat capacity at constant pressure [J/(kg K)].