Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / lagrangian / intermediate / submodels / Reacting / CompositionModel / SinglePhaseMixture / SinglePhaseMixture.H
blob4b953aa33bd2a5c7fc3b16e195f27dec9e26717b
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::SinglePhaseMixture
27 Description
28     Templated parcel single phase, multi-component class
30 SourceFiles
31     SinglePhaseMixture.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef SinglePhaseMixture_H
36 #define SinglePhaseMixture_H
38 #include "CompositionModel.H"
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 namespace Foam
45 /*---------------------------------------------------------------------------*\
46                       Class SinglePhaseMixture Declaration
47 \*---------------------------------------------------------------------------*/
49 template<class CloudType>
50 class SinglePhaseMixture
52     public CompositionModel<CloudType>
54     // Private data
56         // Indices of the phases - only 1 will be set
58             //- Gas
59             label idGas_;
61             //- Liquid
62             label idLiquid_;
64             //- Solid
65             label idSolid_;
68     // Private member functions
70         //- Construct the indices and check correct specification of
71         //  1 gas or 1 liquid or 1 solid
72         void constructIds();
75 public:
77     //- Runtime type information
78     TypeName("SinglePhaseMixture");
81     // Constructors
83         //- Construct from dictionary
84         SinglePhaseMixture(const dictionary& dict, CloudType& owner);
87     //- Destructor
88     virtual ~SinglePhaseMixture();
91     // Member Functions
93         // Access
95             // Gas properties
97                 //- Return the list of gas mass fractions
98                 const scalarField& YGas0() const;
100                 //- Return the total gas mass fraction
101                 scalar YGasTot0() const;
104             // Liquid properties
106                 //- Return the list of liquid mass fractions
107                 const scalarField& YLiquid0() const;
109                 //- Return the total liquid mass fraction
110                 scalar YLiquidTot0() const;
113             // Solid properties
115                 //- Return the list of solid mass fractions
116                 const scalarField& YSolid0() const;
118                 //- Return the total solid mass fraction
119                 scalar YSolidTot0() const;
122             // Mixture properties
124                 //- Return the list of mixture mass fractions
125                 virtual const scalarField& YMixture0() const;
127                 // Indices of gas, liquid and solid phases in phase properties
128                 // list
130                     //- Gas id
131                     virtual label idGas() const;
133                     //- Liquid id
134                     virtual label idLiquid() const;
136                     //- Solid id
137                     virtual label idSolid() const;
141 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
143 } // End namespace Foam
145 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
147 #ifdef NoRepository
148 #   include "SinglePhaseMixture.C"
149 #endif
151 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
153 #endif
155 // ************************************************************************* //