initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / lagrangian / intermediate / submodels / Reacting / CompositionModel / SinglePhaseMixture / SinglePhaseMixture.H
blobf7fda36a90829efd6e821d9b5638f28c7add25b4
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2008-2009 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
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 the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
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.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Class
26     Foam::SinglePhaseMixture
28 Description
29     Templated parcel single phase, multi-component class
31 SourceFiles
32     SinglePhaseMixture.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef SinglePhaseMixture_H
37 #define SinglePhaseMixture_H
39 #include "CompositionModel.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 /*---------------------------------------------------------------------------*\
47                       Class SinglePhaseMixture Declaration
48 \*---------------------------------------------------------------------------*/
50 template<class CloudType>
51 class SinglePhaseMixture
53     public CompositionModel<CloudType>
55     // Private data
57         // Indices of the phases - only 1 will be set
59             //- Gas
60             label idGas_;
62             //- Liquid
63             label idLiquid_;
65             //- Solid
66             label idSolid_;
69     // Private member functions
71         //- Construct the indices and check correct specification of
72         //  1 gas or 1 liquid or 1 solid
73         void constructIds();
76 public:
78     //- Runtime type information
79     TypeName("SinglePhaseMixture");
82     // Constructors
84         //- Construct from dictionary
85         SinglePhaseMixture(const dictionary& dict, CloudType& owner);
88     //- Destructor
89     virtual ~SinglePhaseMixture();
92     // Member Functions
94         // Access
96             // Gas properties
98                 //- Return the list of gas mass fractions
99                 const scalarField& YGas0() const;
101                 //- Return the total gas mass fraction
102                 scalar YGasTot0() const;
105             // Liquid properties
107                 //- Return the list of liquid mass fractions
108                 const scalarField& YLiquid0() const;
110                 //- Return the total liquid mass fraction
111                 scalar YLiquidTot0() const;
114             // Solid properties
116                 //- Return the list of solid mass fractions
117                 const scalarField& YSolid0() const;
119                 //- Return the total solid mass fraction
120                 scalar YSolidTot0() const;
123             // Mixture properties
125                 //- Return the list of mixture mass fractions
126                 virtual const scalarField& YMixture0() const;
128                 // Indices of gas, liquid and solid phases in phase properties
129                 // list
131                     //- Gas id
132                     virtual label idGas() const;
134                     //- Liquid id
135                     virtual label idLiquid() const;
137                     //- Solid id
138                     virtual label idSolid() const;
142 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
144 } // End namespace Foam
146 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
148 #ifdef NoRepository
149 #   include "SinglePhaseMixture.C"
150 #endif
152 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
154 #endif
156 // ************************************************************************* //