Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / thermophysicalModels / thermophysicalFunctions / NSRDSfunctions / NSRDSfunc4 / NSRDSfunc4.H
blob14b07967b83ee5acdc96a0a559c944aa4055b2cb
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2004-2011 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::NSRDSfunc4
27 Description
28     NSRDS function number 104
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 NSRDSfunc4_H
55 #define NSRDSfunc4_H
57 #include "thermophysicalFunction.H"
59 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
61 namespace Foam
64 /*---------------------------------------------------------------------------*\
65                            Class NSRDSfunc4 Declaration
66 \*---------------------------------------------------------------------------*/
68 class NSRDSfunc4
70     public thermophysicalFunction
72     // Private data
74         // NSRDS function 104 coefficients
75         scalar a_, b_, c_, d_, e_;
78 public:
80     //- Runtime type information
81     TypeName("NSRDSfunc4");
84     // Constructors
86         //- Construct from components
87         NSRDSfunc4
88         (
89             const scalar a,
90             const scalar b,
91             const scalar c,
92             const scalar d,
93             const scalar e
94         );
96         //- Construct from Istream
97         NSRDSfunc4(Istream& is);
99         //- Construct from dictionary
100         NSRDSfunc4(const dictionary& dict);
103     // Member Functions
105         //- Evaluate the function and return the result
106         scalar f(scalar, scalar T) const
107         {
108             return a_ + b_/T + c_/pow(T, 3) + d_/pow(T, 8) + e_/pow(T, 9);
109         }
111         //- Write the function coefficients
112         void writeData(Ostream& os) const
113         {
114             os  << a_ << token::SPACE
115                 << b_ << token::SPACE
116                 << c_ << token::SPACE
117                 << d_ << token::SPACE
118                 << e_;
119         }
122     // Ostream Operator
124         friend Ostream& operator<<(Ostream& os, const NSRDSfunc4& f)
125         {
126             f.writeData(os);
127             return os;
128         }
132 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
134 } // End namespace Foam
136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
138 #endif
140 // ************************************************************************* //