initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / thermophysicalModels / thermophysicalFunctions / NSRDSfunctions / NSRDSfunc0 / NSRDSfunc0.H
blob1cde9d896c6995b8b2079b37dd644d5077f7bd9d
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-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::NSRDSfunc0
28 Description
29     NSRDS function number 100
31     Source:
32     @verbatim
33                       NSRDS - AICHE
34                  Data Compilation Tables
35                     of Properties of
36                      Pure Compounds
38         Design Institute for Physical Property Data
39           American Institute of Chemical Engineers
40                   345 East 47th Street
41                 New York, New York 10017
43          National Standard Reference Data System
44          American Institute of Chemical Engineers
46           T.E. Daubert       -       R.P. Danner
48             Department of Chemical Engineering
49             The Pennsylvania State University
50                 University Park, PA 16802
51     @endverbatim
53 \*---------------------------------------------------------------------------*/
55 #ifndef NSRDSfunc0_H
56 #define NSRDSfunc0_H
58 #include "thermophysicalFunction.H"
60 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
62 namespace Foam
65 /*---------------------------------------------------------------------------*\
66                            Class NSRDSfunc0 Declaration
67 \*---------------------------------------------------------------------------*/
69 class NSRDSfunc0
71     public thermophysicalFunction
73     // Private data
75         // NSRDS function 100 coefficients
76         scalar a_, b_, c_, d_, e_, f_;
79 public:
81     //- Runtime type information
82     TypeName("NSRDSfunc0");
85     // Constructors
87         //- Construct from components
88         NSRDSfunc0(scalar a, scalar b, scalar c, scalar d, scalar e, scalar f)
89         :
90             a_(a),
91             b_(b),
92             c_(c),
93             d_(d),
94             e_(e),
95             f_(f)
96         {}
98         //- Construct from Istream
99         NSRDSfunc0(Istream& is)
100         :
101             a_(readScalar(is)),
102             b_(readScalar(is)),
103             c_(readScalar(is)),
104             d_(readScalar(is)),
105             e_(readScalar(is)),
106             f_(readScalar(is))
107         {}
110     // Member Functions
112         //- Evaluate the function and return the result
113         scalar f(scalar, scalar T) const
114         {
115             return ((((f_*T + e_)*T + d_)*T + c_)*T + b_)*T + a_;
116         }
119         //- Write the function coefficients
120         void writeData(Ostream& os) const
121         {
122             os  << a_ << token::SPACE
123                 << b_ << token::SPACE
124                 << c_ << token::SPACE
125                 << d_ << token::SPACE
126                 << e_ << token::SPACE
127                 << f_;
128         }
131     // Ostream Operator
133         friend Ostream& operator<<(Ostream& os, const NSRDSfunc0& f)
134         {
135             f.writeData(os);
136             return os;
137         }
141 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
143 } // End namespace Foam
145 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
147 #endif
149 // ************************************************************************* //