Forward compatibility: flex
[foam-extend-3.2.git] / applications / utilities / thermophysical / mixtureAdiabaticFlameT / substance.H
blob00955d6af6fd325de371fa2a71452c2f2d828467
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::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 // ************************************************************************* //