Forward compatibility: flex
[foam-extend-3.2.git] / src / thermophysicalModels / thermophysicalFunctions / NSRDSfunctions / NSRDSfunc0 / NSRDSfunc0.H
blobb044a43e001a2772532b14f6e00f6a2c8342ca3e
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::NSRDSfunc0
27 Description
28     NSRDS function number 100
30     Source:
31     @verbatim
32                       NSRDS - AICHE
33                  Data Compilation Tables
34                     of Properties of
35                      Pure Compounds
37         Design Institute for Physical Property Data
38           American Institute of Chemical Engineers
39                   345 East 47th Street
40                 New York, New York 10017
42          National Standard Reference Data System
43          American Institute of Chemical Engineers
45           T.E. Daubert       -       R.P. Danner
47             Department of Chemical Engineering
48             The Pennsylvania State University
49                 University Park, PA 16802
50     @endverbatim
52 \*---------------------------------------------------------------------------*/
54 #ifndef NSRDSfunc0_H
55 #define NSRDSfunc0_H
57 #include "thermophysicalFunction.H"
59 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
61 namespace Foam
64 /*---------------------------------------------------------------------------*\
65                            Class NSRDSfunc0 Declaration
66 \*---------------------------------------------------------------------------*/
68 class NSRDSfunc0
70     public thermophysicalFunction
72     // Private data
74         // NSRDS function 100 coefficients
75         scalar a_, b_, c_, d_, e_, f_;
78 public:
80     //- Runtime type information
81     TypeName("NSRDSfunc0");
84     // Constructors
86         //- Construct from components
87         NSRDSfunc0(scalar a, scalar b, scalar c, scalar d, scalar e, scalar f)
88         :
89             a_(a),
90             b_(b),
91             c_(c),
92             d_(d),
93             e_(e),
94             f_(f)
95         {}
97         //- Construct from Istream
98         NSRDSfunc0(Istream& is)
99         :
100             a_(readScalar(is)),
101             b_(readScalar(is)),
102             c_(readScalar(is)),
103             d_(readScalar(is)),
104             e_(readScalar(is)),
105             f_(readScalar(is))
106         {}
109     // Member Functions
111         //- Evaluate the function and return the result
112         scalar f(scalar, scalar T) const
113         {
114             return ((((f_*T + e_)*T + d_)*T + c_)*T + b_)*T + a_;
115         }
118         //- Write the function coefficients
119         void writeData(Ostream& os) const
120         {
121             os  << a_ << token::SPACE
122                 << b_ << token::SPACE
123                 << c_ << token::SPACE
124                 << d_ << token::SPACE
125                 << e_ << token::SPACE
126                 << f_;
127         }
130     // Ostream Operator
132         friend Ostream& operator<<(Ostream& os, const NSRDSfunc0& f)
133         {
134             f.writeData(os);
135             return os;
136         }
140 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
142 } // End namespace Foam
144 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
146 #endif
148 // ************************************************************************* //