Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / applications / utilities / thermophysical / mixtureAdiabaticFlameT / substance.H
blobcae49bf23329d5c203fef7a34574036c7dcff360
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2004-2010 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
13     the Free Software Foundation, either version 3 of the License, or
14     (at your 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, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::substance
27 Description
29 SourceFiles
30     substanceI.H
31     substance.C
32     substanceIO.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef substance_H
37 #define substance_H
39 #include "scalar.H"
40 #include "word.H"
41 #include "Istream.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 namespace Foam
48 /*---------------------------------------------------------------------------*\
49                            Class substance Declaration
50 \*---------------------------------------------------------------------------*/
52 class substance
54     // Private data
56         word name_;
57         scalar volFrac_;
60 public:
62     // Constructors
64         //- Construct null
65         substance()
66         {}
69     // Member Functions
71         // Access
73             const word& name() const
74             {
75                 return name_;
76             }
78             scalar volFrac() const
79             {
80                 return volFrac_;
81             }
83             bool operator==(const substance& s) const
84             {
85                 return name_ == s.name_ && volFrac_ == s.volFrac_;
86             }
88             bool operator!=(const substance& s) const
89             {
90                 return !operator==(s);
91             }
94     // IOstream Operators
96         friend Istream& operator>>(Istream& is, substance& s)
97         {
98             is  >> s.name_ >> s.volFrac_;
99             return is;
100         }
102         friend Ostream& operator<<(Ostream& os, const substance& s)
103         {
104             os  << s.name_ << token::SPACE << s.volFrac_;
105             return os;
106         }
110 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
112 } // End namespace Foam
114 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
116 #endif
118 // ************************************************************************* //