initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / thermophysicalModels / thermophysicalFunctions / NSRDSfunctions / NSRDSfunc5 / NSRDSfunc5.H
blob92070e9f9ef4f91516f3988a6085545906b6e01b
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::NSRDSfunc5
28 Description
29     NSRDS function number 105
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 NSRDSfunc5_H
56 #define NSRDSfunc5_H
58 #include "thermophysicalFunction.H"
60 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
62 namespace Foam
65 /*---------------------------------------------------------------------------*\
66                            Class NSRDSfunc5 Declaration
67 \*---------------------------------------------------------------------------*/
69 class NSRDSfunc5
71     public thermophysicalFunction
73     // Private data
75         // NSRDS function 105 coefficients
76         scalar a_, b_, c_, d_;
79 public:
81     //- Runtime type information
82     TypeName("NSRDSfunc5");
85     // Constructors
87         //- Construct from components
88         NSRDSfunc5(scalar a, scalar b, scalar c, scalar d)
89         :
90             a_(a),
91             b_(b),
92             c_(c),
93             d_(d)
94         {}
96         //- Construct from Istream
97         NSRDSfunc5(Istream& is)
98         :
99             a_(readScalar(is)),
100             b_(readScalar(is)),
101             c_(readScalar(is)),
102             d_(readScalar(is))
103         {}
106     // Member Functions
108         //- Evaluate the function and return the result
109         scalar f(scalar, scalar T) const
110         {
111             return a_/pow(b_, 1 + pow(1 - T/c_, d_));
112         }
115         //- Write the function coefficients
116         void writeData(Ostream& os) const
117         {
118             os  << a_ << token::SPACE
119                 << b_ << token::SPACE
120                 << c_ << token::SPACE
121                 << d_;
122         }
125     // Ostream Operator
127         friend Ostream& operator<<(Ostream& os, const NSRDSfunc5& f)
128         {
129             f.writeData(os);
130             return os;
131         }
135 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
137 } // End namespace Foam
139 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
141 #endif
143 // ************************************************************************* //